“ 目录RHCA - 6 软件仓库 - 22 rpm命令安装、升级、卸载和查询 ”RPM包默认采用系统的安装路径可使用命令查询路径也可手动指定但不推荐手动指定后安装文件都会在指定目录查询路径命令也要手动配置后才能查询到手动指定的语法格式为rpm [参数] 包全名/包名源码包安装默认使用手动指定安装路径的方式通常是/usr/local/安装路径不同同一程序的源码包和RPM包可以安装到一台服务器上实际情况下只会装一个同时安装两个相同程序时同一时间只能开启一个因为它们占用同一个端口安装和卸载都需要考虑依赖性安装软件前必须先安装软件的依赖包卸载软件时必须先卸载软件才能卸载依赖包此网站查询rpm包找依赖包等http://www.rpmfind.net/RPM数据库/var/lib/rpm路径作用/etc/配置文件安装目录/usr/bin/可执行的命令安装目录/usr/lib/程序所使用的函数库保存位置/usr/share/doc/基本的软件使用手册保存位置/usr/share/man/帮助文件保存位置用途参数作用安装-i静默安装install-v查看详细信息verbose-vv更详细的信息-h打印#查看安装进度hash每个#表示2%进度--nodeps不检测依赖性安装安装时没有依赖会报错此参数可跳过但跳过后安装软件没依赖也用不了不建议-replacefiles覆盖安装如果软件包的某个文件已存在直接覆盖安装-replacepkgs覆盖软件包安装如果软件包已安装直接重复安装-force强制安装-replacefiles和-replacepkgs的结合重新覆盖安装-test测试安装不实际安装只检测依赖性-prefix指定安装路径--import导入公钥数字证书升级-U大写没安装过则直接安装安装过则升级至最新版本会保留低版本的配置文件-F大写没安装过则不安装必须先安装较低版本才能升级卸载-e卸载软件包erase的首字母--nodeps不检测依赖性直接卸载不推荐用可能使其他软件异常查询-q查询软件包是否安装query的首字母-a查询系统中所有软件包-i查看软件包的详细信息information的首字母-l查看软件包所有文件的安装目录-c查看软件包的配置文件-d查看软件包的帮助文件-p查询未安装的软件包信息package的首字母-f查询系统文件属于哪个软件包file的首字母-R大写查询软件包的依赖性requires的首字母--scripts查询指定包中包含的脚本--last按最后安装时间排序校验-V校验指定软件包其他--rebuilddb修复rpm数据库数据库默认在/var/lib/rpm/目录下--initdb初始化数据库没有数据库时才使用--checksig校验rpm包的完整性一、安装[rootwuzuniao ~]# rpm -ivh /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #安装rpm包依赖包没提前安装的情况下会直接提示报错同时安装多个包时以空格间隔包名即可warning: /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYerror: Failed dependencies:【错误的依赖关系】/etc/mime.types is needed by httpd-2.4.6-17.el7.x86_64httpd-tools 2.4.6-17.el7【需要提前安装的包名】 is needed by httpd-2.4.6-17.el7.x86_64libapr-1.so.0()(64bit)【需要提前安装的包名】 is needed by httpd-2.4.6-17.el7.x86_64libaprutil-1.so.0()(64bit)【需要提前安装的包名】 is needed by httpd-2.4.6-17.el7.x86_64[rootwuzuniao ~]#二、升级[rootwuzuniao ~]# rpm -Uvh /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #若没安装则直接安装并升级到最新版本[rootwuzuniao ~]# rpm -Fvh /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #若没安装则不安装若已安装则升级为最新版本三、卸载软件包被依赖时不允许卸载若强制卸载会导致其他软件不可用[rootwuzuniao ~]# rpm -e httpd #卸载程序当时报错是提示没安装error: package httpd is not installed[rootwuzuniao ~]#四、查询1、查询某个软件包是否安装[rootwuzuniao ~]# rpm -q perl #已安装软件只需用包名使用包全名反而无法识别perl-5.16.3-283.el7.x86_64[rootwuzuniao ~]#2、查询系统中已安装的所有软件包[rootwuzuniao ~]# rpm -qa #查询所有已安装的软件包libXxf86misc-1.0.3-7.1.el7.x86_64perl-HTTP-Tiny-0.033-3.el7.noarchbaobab-3.8.2-4.el7.x86_64[rootwuzuniao ~]# rpm -qa | grep rpm #可以使用管道符过滤筛选找到包含包名的所有软件包rpm-build-libs-4.11.1-16.el7.x86_64rpm-4.11.1-16.el7.x86_64python-deltarpm-3.6-3.el7.x86_64deltarpm-3.6-3.el7.x86_64rpm-python-4.11.1-16.el7.x86_64rpm-libs-4.11.1-16.el7.x86_64[rootwuzuniao ~]#3、查询软件包的详细信息[rootwuzuniao ~]# rpm -qi perl #查询软件包的详细信息Name : perl #包名Epoch : 4Version : 5.16.3 #版本Release : 283.el7 #发行版本Architecture: x86_64Install Date: Sat 01 Jan 2022 10:19:10 PM CST #安装时间Group : Development/Languages #组Size : 23548593 #软件包大小License : (GPL or Artistic) and (GPLv2 or Artistic) and Copyright Only and MIT and Public Domain and UCD #许可协议Signature : RSA/SHA256, Thu 03 Apr 2014 01:33:27 AM CST, Key ID 199e2f91fd431d51 #数字签名Source RPM : perl-5.16.3-283.el7.src.rpm #源RPM包文件名Build Date : Mon 27 Jan 2014 04:10:57 AM CST #建立时间Build Host : x86-021.build.eng.bos.redhat.comRelocations : (not relocatable)Packager : Red Hat, Inc. http://bugzilla.redhat.com/bugzillaVendor : Red Hat, Inc. #厂商URL : http://www.perl.org/ #厂商网址Summary : Practical Extraction and Report Language #软件包说明Description : #描述Perl is a high-level programming language with roots in C, sed, awk and shellscripting. Perl is good at handling processes and files, and is especiallygood at handling text. Perls hallmarks are practicality and efficiency.While it is used to do a lot of different things, Perls most commonapplications are system administration utilities and web programming. A largeproportion of the CGI scripts on the web are written in Perl. You need theperl package installed on your system so that your system can handle Perlscripts.Install this package if you want to program in Perl or enable your system tohandle Perl scripts.[rootwuzuniao ~]# rpm -qip /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #查询未安装软件包的详细信息使用绝对路径包全名方式才能找到包warning: /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYName : httpdVersion : 2.4.6Release : 17.el7Architecture: x86_64Install Date: (not installed)Group : System Environment/DaemonsSize : 3863865License : ASL 2.0Signature : RSA/SHA256, Wed 02 Apr 2014 01:54:28 AM CST, Key ID 199e2f91fd431d51Source RPM : httpd-2.4.6-17.el7.src.rpmBuild Date : Thu 20 Mar 2014 07:17:12 PM CSTBuild Host : x86-024.build.eng.bos.redhat.comRelocations : (not relocatable)Packager : Red Hat, Inc. http://bugzilla.redhat.com/bugzillaVendor : Red Hat, Inc.URL : http://httpd.apache.org/Summary : Apache HTTP ServerDescription :The Apache HTTP Server is a powerful, efficient, and extensibleweb server.[rootwuzuniao ~]#4、查询软件包所有文件路径[rootwuzuniao ~]# rpm -ql perl #查询软件包所有文件及各自安装路径/usr/bin/a2p/usr/bin/c2ph/usr/bin/find2perl/usr/bin/h2ph[rootwuzuniao ~]# rpm -qlp /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #查询未安装软件包所有文件以及默认安装路径使用绝对路径包全名方式才能找到包warning: /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY/etc/httpd/etc/httpd/conf/etc/httpd/conf.d/etc/httpd/conf.d/README[rootwuzuniao ~]#5、查询系统文件属于哪个RPM包rpm方式安装的才能找到手动创建的文件或目录不行[rootwuzuniao ~]# rpm -qf /etc/chrony.conf #查找文件或目录是哪个软件包安装的chrony-1.29.1-1.el7.x86_64[rootwuzuniao ~]#6、查询软件包的依赖关系[rootwuzuniao ~]# rpm -qR perl #查询已安装软件包依赖的其他包/usr/bin/perllibc.so.6()(64bit)libc.so.6(GLIBC_2.11)(64bit)[rootwuzuniao ~]# rpm -qRp /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #查找未安装软件包的依赖性使用绝对路径包全名方式才能找到包warning: /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY/etc/mime.typessystem-logos 7.92.1-1httpd-tools 2.4.6-17.el7[rootwuzuniao ~]#7、查询软件包占用的磁盘空间[rootwuzuniao /]# rpm -q -a --qf %10{SIZE}t%{NAME}n | sort -k1,1n #查看已安装的rpm包所占用磁盘空间29684tlibXxf86miscn 97207tperl-HTTP-Tinyn 1398956tbaobabn 2288470tlibwvstreamsn 5046316txkeyboard-confign 1110971tsoxn[rootwuzuniao /]#