Linux安装光盘中的软件安装包是以.rpm为后缀的文件,简称rpm包。rpm包也是Redhat(CentOS)发行的Linux中大多数软件安装包的打包格式,安装这些软件包可以使用rpm命令来实现。以dhcp软件的安装为例,安装管理软件的命令如下。
①mount /dev/sr0 /media:挂载光盘。
②cd /media/Packages:进入安装包存放路径。
③ls | grep dhcp:查看抓取指定的包是否存在。如下执行结果(此处采用了CentOS-7-x86_64-DVD-2009.iso官方下载的系统安装光盘)
[root@linux Packages]# ls | grep dhcp
dhcp-4.2.5-82.el7.centos.x86_64.rpm
dhcp-common-4.2.5-82.el7.centos.x86_64.rpm
dhcp-libs-4.2.5-82.el7.centos.x86_64.rpm
④rpm -ivh dhcp-4.2.5-XXX.rpm:安装指定软件包,这里使用XXX替代包名中的中间字符。其中,-i表示安装,-v表示显示安装过程的详细信息,查看该软件是否已安装过及指定的包是否可用,-h表示以“#”显示安装进度,功能类似进度条,参见如下操作结果所示。
[root@linux Packages]# rpm -ivh dhcp-4.2.5-82.el7.centos.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:dhcp-12:4.2.5-82.el7.centos ################################# [100%]
[root@linux Packages]#
在安装之前,可以使用rpm -q dhcp命令或rpm -qa|grep dhcp查询指定包是否已安装过。参见如下操作结果:
[root@linux ~]# rpm -q dhcp
未安装软件包 dhcp
[root@linux ~]# rpm -qa|grep dhcp
dhcp-common-4.2.5-82.el7.centos.x86_64
dhcp-libs-4.2.5-82.el7.centos.x86_64
安装完毕后,再次执行上述命令,参见如下操作结果:
[root@linux Packages]# rpm -q dhcp
dhcp-4.2.5-82.el7.centos.x86_64
[root@linux Packages]# rpm -qa|grep dhcp
dhcp-common-4.2.5-82.el7.centos.x86_64
dhcp-4.2.5-82.el7.centos.x86_64
dhcp-libs-4.2.5-82.el7.centos.x86_64
[root@linux Packages]#
也可以使用rpm -ql dhcp命令查看软件包所有文件的安装位置。参见如下操作结果。
[root@linux Packages]# rpm -ql dhcp
/etc/NetworkManager
/etc/NetworkManager/dispatcher.d
/etc/NetworkManager/dispatcher.d/12-dhcpd
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/dhcp/scripts
/etc/dhcp/scripts/README.scripts
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.2.5
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
/usr/share/doc/dhcp-4.2.5/ldap
/usr/share/doc/dhcp-4.2.5/ldap/README.ldap
/usr/share/doc/dhcp-4.2.5/ldap/dhcp.schema
/usr/share/doc/dhcp-4.2.5/ldap/dhcpd-conf-to-ldap
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/usr/share/systemtap/tapset/dhcpd.stp
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@linux Packages]#
由上述操作结果可知,已安装过的包会显示版本号,未安装过的包会显示未安装。
还可以使用rpm -qa命令显示本机已安装过的所有软件包。例如,命令rpm -qa | grep dhcp表示显示抓取指定包是否安装过。这种格式适合在软件名较长或拼写单词较长时使用。
⑤rpm -qf /etc/dhcp/dhcpd.conf:查看指定文件被哪个软件所使用。参见如下操作结果。
[root@linux Packages]# rpm -qf /etc/dhcp/dhcpd.conf
dhcp-4.2.5-82.el7.centos.x86_64
[root@linux Packages]#
⑥rpm -e dhcp:卸载软件。
软件包的命名规范:软件名-版本号-发行号.硬件平台.rpm。
例如,安装包的完整名称为dhcp-4.2.5-82.el7.centos.x86_64.rpm,其中,dhcp为软件名,4.2.5为版本号,82.el7.centos为发行号, x86_64为所适用的硬件平台,.rpm为文件后缀,表示CentOS企业Linux 7版本的第82次发行,该软件包适用于PC机硬件平台。
软件包的使用规范:只有在安装时才需要指定安装包名,在查询、卸载等非安装类操作时,只需要指定软件名即可。
rpm的参数-Uvh和-Fvh都具备升级软件的功能,区别在于系统是否已安装了低版本的相同软件。若已安装,则-Uvh和-Fvh都能将软件升级为新版;若未安装,则-Uvh会直接安装该软件,-Fvh不会安装。