一、RPM包管理-rpm包命令管理
1.rpm包命名规则
apache包举例: httpd-2.2.15-15.el6.centos.l.i686.rpm各部分的含义如下表
内容 | 含义 |
---|---|
httpd | 软件包名 |
2.2.15 | 软件版本 |
15 | 软件发布的次数 |
el6.centos | 适合的Linux平台 |
i686 | 适合的硬件平台 |
rpm | rpm包扩展名 |
备注: 1.软件包名是httpb,软件包全名是 httpd-2.2.15-15.el6.centos.l.i686.rpm。这里为什么要区分那,因为有些命令只能跟包名,有的只能跟保全名。
2. 不管是i686,还是i586普通的微机都可以安装,但如果是X64只能是64位的软件包,安装在64位的CPU中。
3. 在Linux中式没有扩展名这个概念的,文件的命名可以为aa,aa.bb,aa.exe扩展名式随意设置的,但是aa.exe,Linux是不会认为它是执行文件的,只是一个普通文件。但是所有的rpm包都应该写成扩展名.rpm。原因很简单,这个事方便给管理员看的,同时方便用户看。
2.RPM包依赖性
真正应用时,rpm包最大的问题就是依赖性。
(1)树形依赖:a->b->c
当安装软件包A时,先要安装软件包B,当安装B时,先安装软件包C。这时安装软件包的顺序时CBA。卸载的时候依次卸载为ABC。也有可能a不止依赖b,还有可能依赖d。b也有可能依赖w。
(2) 环形依赖:a->b->c->a
这种依赖也不难解决,把软件包a,b,c用一条命令同时装就能解决。
(3) 模块依赖:模块依赖查询网站:www.rpmfind.net
什么是模块依赖那? 就是当我们安装一个软件包时,比如安装mysql-connector-adbc-5.15r114的软件包,这个软件包是MySQL和odbc连接的软件包,这时会出现报错,内容是出现一个依赖,这个依赖是libodbc.so.2,这个依赖是库依赖,一般以.so.数字的嗾使库依赖。这种库依赖包不是单独独立的包,是某一个软件包当中的一个软件,只要把这个软件所在的包装上,这个软件会自动安装,依赖就解决了。
那么问题来了,我们如何找到这个依赖软件属于哪个软件包那???
解决方案: 1. 进入模块依赖查询网站 www.rpmfind.net 只要输入这个以来软件的名字,就会出现对应的软件包,进行手动安装这个软件包就解决了。如果不能上网就只能猜了。
2.rpm包管理还有一个yum在线管理,这个在线管理就是解决依赖性的,使用方法是:我们事先准备一个包含多有rpm包的网站(www.rpmfind.net),作为我的在线服务器源。只要用在线命令去安装软件,不管是依赖哪一个包,不管是哪种依赖,都不需要用户有解决,这个yum自动到服务器上,把它需要下载的依赖的包下载下来,所有的依赖性会自动解决。yum比手工管理方便的多。如果没有网络可以吗? 不上网是可以的。除了可以拿网络这个yum源作为文件服务器。还可以拿本地yum源,因为光盘里包含了所有的rpm包。所以可以拿光盘作为yum服务器源。有点小问题的是: 如果是Redhat系列,这个东西需要收费,原因是认为yum是Redhat公司的售后服务。用centos的原因是,centos是社区维护,完全免费,包括yum也是免费的。