二十三)"/>
Linux学习笔记(二十三)
软件安装: RPM, SRPM 与 YUM 功能
Linux 界的两大主流: RPM 与 DPKG
目前在 Linux 界软件安装方式最常见的有两种,分别是:
· dpkg:这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息,实在非常不错。 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的,包括 B2D, Ubuntu 等等。
· RPM:这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distributions 就使用这个机制来作为软件安装的管理方式。包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚。
什么是RPM与SRPM
简单来说,RPM『 RedHat Package Manager 』是一种数据库记录的方式将所需要的套件安装到Linux主机的一套管理程序。它的最大特点是:将要安装的套件先编译(如果需要的话)并打包,通过包装好的套件中默认的数据库记录,记录这个套件在安装的时候需要的依赖属性模块(就是Linux主机需要先存在的几个必须的套件)。在用户的Linux主机安装时,RPM会先根据套件里的记录数据,查询Linux主机的依赖属性套件是否满足,若满足则予以安装,若不满足则不安装。在安装套件的时候将该套件的信息全部写入RPM的数据库中,以方便将来的查询、验证与卸载。这样做的优点如下:
·由于已经编译完并且打包,所以安装很方便(不需要编译)。
·由于套件信息已经记录在Linux主机的数据库中,方便查询、升级与卸载。
不过这样也有一定的缺点:
·安装环境必须与打包时的环境一致。
·需要满足套件的依赖属性需求。
·卸载时需要特别小心,最底层的套件不可先卸载,否则可能造成整个系统出问题。
如何解决RPM的这个缺点问题,就是使用SRPM咯。 顾名思义SRPM是sourec RPM的意思,也就是这个RPM文件里含有源码(Source code)。注意:这个SRPM所提供的套件内容“并没有经过编译”,它提供的是源码。它的格式为 xxxx.src.rpm
SRPM虽然内容是源码但是仍然含有该套件所需要的依赖性说明,以及所有RPM文件所提供的数据,与RPM不同,SRPM也提供了参数配置文件(configure与Makefile)。
如果用的SRPM,那么安装套件时候,RPM套件管理程序会先将该套件以RPM管理的方式编译,然后将编译完成的RPM文件安装到Linux系统中。与RPM文件相比,SRPM多了一个重新编译的操作,而且SRPM编译完成后会产生RPM文件。
SRPM的好处:因为RPM文件必须要在相同的Linux环境下才能安装,而SRPM是源码格式,自然就可以通过修改SRPM内的参数配置文件重新编译产生适合Linux环境的RPM文件,这样可以将该套件安装到系统中而不必与原打包的Linux环境相同。
什么是 i386, i586, i686, noarch, x86_64
那么我们怎么知道这个软件的版本、适用的平台、编译释出的次数呢?只要透过档名就可以知道了!例如 rp-pppoe-3.1-5.i386.rpm
这的档案的意义为:
rp-pppoe - 3.1 - 5 .i386 .rpm
软件名称 软件的版本信息 释出的次数 适合的硬件平台 扩展名
注意:i386的文件可以在任何机器上安装,不论是i586还是i686,但是i686则不一定可以用于386或586的硬件。另外686的机器是用i686的文件性能会较好一些。
RPM的优点
优点:
·RPM文件本身为已经编译过的二进制文件,可以让客户端的用户免除重新编译的麻烦。
·RPM文件在安装之前,RPM会先检查系统的硬盘容量、操作系统版本等,可避免文件安装错误。
·RPM文件本身提供套件版本信息、相关套件名称、套件用途说明、套件所含文件等信息,便于了解套件。
·RPM是用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。
在Linux系统上建立一个RPM套件数据库,在安装某个套件的过程中,RPM会去检验数据库中是否已经存在相关的套件。
由于RPM类型的文件里含有属性相关的消息,分析这些消息再让程序自行去寻找未安装的前去套件,并实现安装,这样就可以解决属性相关的问题。urpmi/apt/yum这些服务的由来。
RPM 默认安装的路径
安装完毕之后rpm会将套件的信息写入/var/lib/rpm中,以后查询或升级时候需要的信息就会从这个文件中获取。
系统默认文件目录 | |
目录 | 说明 |
/etc | 一些配置文件的目录,例如/etc/crontab |
/usr/bin | 一些可执行文件 |
更多推荐
Linux学习笔记(二十三)
发布评论