一、rpm包命名规则
httpd-2.2.15-15.e16.centos.1.i686.rpm
- httpd:软件包名。
- 2.2.15:软件版本。
- 15:软件发布的次数。
- el6/centos:软件发行商。el6是RedHat公司发布,适合RHEL6.x(Red Hat Enterprise Linux)和CentOS6.x下使用。(el6指的就是RHEL6.x平台)
- i686:适合的硬件平台。RPM包可以在不同的硬件平台安装,选择适合不同CPU的软件版本,可以最大化的发挥CPU性能,所以出现了所谓的i386(386以上计算机都可以安装)、i586(586以上的计算机都可以安装)、i686(奔腾II以上计算机都可以安装,目前所有的CPU都是奔腾II以上,所以这个软件版本居多)、x86_64(64位CPU可以安装)和noarch(没有硬件限制)等文件名。
- rpm:rpm包的扩展名。我们说过Linux下文件不是靠扩展名区分文件类型,也就是Linux中扩展名没有任何含义。可是这里怎么又出现了扩展名呢?原因很简单,如果我不把RPM的扩展名叫做“.rpm”,管理员很难知道这是一个RPM包,当然也就无法正确安装了。也就是说如果RPM包不用“.rpm”作为扩展名,系统可以正确识别没有问题,可是管理员很难识别这是个什么样的文件。
注意
- 包全名:如果操作的是未安装软件包,则使用包全名,而且需要注意使用绝对路径(一般会进入到软件包目录进行安装)。
- 包名:如果操作的是已经安装的软件包,则使用包名即可。系统会生成RPM包的数据库(/var/lib/rpm/),只要安装过的软件包,就会出现在这个数据库中。而且可以在任意路径下操作(因为是从数据库中查找)。
提示:/var/lib/rpm/这里边的文件都是二进制的,不能用vim来查看。
二、rpm包安装
1、安装命令
#注意一定是包全名。如果跟包全名的命令要注意路径
rpm -ivh 包全名
选项:
-i:install安装(install)
-v:显示更详细的信息(verbose)
-h:显示安装进度(hash)
2、常用选项
- --nodeps不检测依赖性安装。软件时会检测依赖性,确定所需的底层软件是否安装。如果没有安装则会报错。如果我不管依赖性,想强行安装,可以使用这个选项。
注意:这样不检测依赖性安装的软件基本是不能使用的,所以不建议这样做。
(这个选项在实际工作中,不要使用。) - --replacefiles替换文件安装。如果安装软件包,可是包中部分文件已经存在,那么正常安装时候,会报错“某个文件已经存在”从而导致软件无法安装,使用这个选项可以忽视这个报错,而覆盖安装。(请看--force)
- --replacepkgs 替换软件包安装。如果软件包已经安装,此选项可以把软件包重复安装一遍。(请看--force)
- --force 强制安装。不管是否已经安装,都重新安装。就是一replacefiles和一replacepkgs的集合。
(所以上边两个选项 --replacefiles和--replacepkgs不用记忆,只要记住--force就好。应对误删除软件中文件的时候。覆盖安装代价最小,先不要考虑卸载。) - --test 测试安装。不会实际安装,只是检测一下依赖性。
- --prefix 指定安装路径。为安装软件指定安装路径,而不使用默认安装路径(默认安装路径是软件作者决定的,他觉得安装在什么位置好,才设定的位置)。注意:如果指定了安装路径,软件没有安装到系统默认路径中的话,系统会找不到这些安装的软件,需要进行手工配置才能被系统识别。所以rpm包我们一般都采用默认路径安装。
不指定安装位置的好处:
1)默认安装位置是系统的习惯位置。
2)RPM包管理系统是有卸载命令的。(通过rpm数据库记录软件的安装位置),一条命令卸载,非常方便,并且卸载的很干净。如果你指定了安装目录,则rpm的删除命令就不好用了。
注:源码包安装的时候一定要指定软件的安装位置。
3、rpm包默认安装位置
一般情况下rpm包的安装位置,不是所有的rpm包软件的安装位置都是这样。
安装的时候一定要两个进度条都100%才算安装成功,第一个进度条100%是准备安装。第二个进度条才是软件真正安装成功。
注意:每个rpm软件包的安装,随着不同的Linux系统版本,不同版本的rpm软件包,Linux上已安装程序的多少,所需要安装的软件包的数量是不同的。(因为安装的软件越多,已经安装的依赖包就越多,后边再安装的软件包有相同的依赖,就不再需要安装了。)