文章目录
1.rpm包命名规则
首先我们知道所有的rpm的包都在光盘中,他们的名称都有一定的规则。先解读一个rpm包:
centos中的rpm包:
httpd-2.2.15-15.el6.centos.l.i686.rpm
- httpd:软件包报名
- 2.2.15:版本
- 15:发布次数
- el6.centos :适合的linux平台(适合centos企业6版本)
- i686:适合的硬件平台
- rpm:rpm包扩展名
redhat中的rpm包:
httpd-2.4.6-45.el7.x86_64.rpm
- httpd:软件包报名
- 2.4.6:版本
- 45:发布次数
- el7:适合企业7版本
- x86_64:适合64位操作系统
- rpm:rpm包扩展名
这里的扩展名其实只是为了方便管理员区分文件,所有的rpm包都必须以.rpm
结尾。如果我们自己组建rpm包,必须以rpm包都必须以.rpm结尾。
注意以下几点:
- noarch:表示任何平台都可以安装
- 如果没有写定适合哪个linux平台,表示任何linux平台都可以使用。
- 包名:httpd,包全名:httpd-2.4.6-45.el7.x86_64.rpm
linux系统严格区分包名与包全名,有些命令必须使用包全名,有些就可以直接跟包名。
2.RPM包依赖性
依赖性是一个RPM包的缺点,最典型有以下机中依赖方式:
2.1 树形依赖
装软件包a,需要软件包b,装软件包b,需要软件包c。
a->b->c
这时候我们就只能先装软件包c,再装b,最后才可以装a。
卸载的时候就要先卸载a,再卸载b,最后卸载c。
有的时候装一个包可能需要解决十几个依赖性,这是因为你再装系统的时候不想给服务器过大的压力,所以尽量少的安装了软件,所以你再安装一个软件的时候就要一次解决多个依赖性。如果系统装的越大,首先占用太多内存空建,并且宝座的可能性被攻击的可能性都会大幅度的增加。所以生产服务器都是最小化安装。
2.2 环形依赖
我们还可能遇到更复杂的一种依赖方式就是环形依赖,装软件包a,需要软件包b,装软件包b,需要软件包c,装软件包c,又需要软件包a。
a->b->c->a
这种方式也可以很简单的解决,用一条命令把软件包abc一起安装就可以解决了。
卸载的时候一台命令一起卸载。
2.3 模块依赖
所有以.so.数字
结尾的都是库依赖,这种库依赖包不是单独存在的,他是某一个软件包中的一个软件,只需要把这个软件所在的包安装就可以解决库依赖的问题。
那么我们如何确定这个文件属于哪个rpm包呢,这时候rpm包个的解决方案是一个网站可以查询:
就可以看到查询结果
下载即可。
3.安装升级与卸载
3.1 包全名与包名
- 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径(这些包没有安装过,系统要找到他),一般是安装和升级的时候需要
- 包名&