【转】Linux中rpm与src.rpm区别及安装

xxxxxxxxx.rpm   <==RPM 的格式,已经经过编译且包装完成的 rpm 档案;
xxxxx.src.rpm   <==SRPM的格式,包含未编译的原始码资讯。

那么我们怎么知道这个套件的版本、适用的平台、打包的次数呢?呵呵!只要透过档名就可以知道了!例如 rp-pppoe-3.1-5.i386.rpm 这的档案的意义为:

rp-pppoe –        3.1    –     5        .i386        .rpm
套件名称   套件的版本资讯 释出的次数 适合的硬体平台 副档名

除了后面适合的硬体平台与副档名外,主要是以‘-’来隔开各个部分, 这样子可以很清楚的发现该套件的名称、版本资讯、打包次数与操作的硬体平台! 好了,来谈一谈每个不同的地方吧:

* 套件名称:
当然就是每一个套件的名称了!上面的范例就是 rp-pppoe 。

* 版本资讯:
每一次更新版本就需要有一个版本的资讯,否则如何知道这一版是新是旧? 这里通常又分为主版本跟次版本,以上面为例,主版本为 3 ,在主版本的架构下更动部分原始码内容,而释出一个新的版本,就是次版本啦! 以上面为例,就是 1 啰!

* 释出版本次数:
也就是编译的次数啦!那么为何需要重复的编译呢? 这是由于同一版的套件中,可能由于有某些 bug 或者是安全上的顾虑,所以必须要重新设定当初打包时候的设定参数, 设定完成之后重新编译并打包成 RPM 档案!因此就有不同的打包数出现了!( 注:这个时候原始码其实还是 3.1 那个版本,只是下达编译时的参数不同而已! )

* 操作硬体平台:
这是个很好玩的地方,由于 RPM 可以适用在不同的操作平台上, 但是由于不同的平台设定的参数还是有所差异性!并且,我们可以针对比较高阶的 CPU 来进行最佳化参数的设定,所以就有所谓的 i386, i586, i686 与 noarch 等的档案名称出现了!

平台名称    适合平台说明
i386     几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 pentum-IV 与 K7 系列的 CPU等等,都可以正常的工作!那个 i 指的是 Intel 相容的 CPU 的意思,至于 386 不用说,就是 CPU 的等级啦!
i586     就是 586 等级的电脑,那是哪些呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU ( socket 7 插脚 ) 等等的 CPU 都算是这个等级;
i686     在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等级的 CPU 都属于这个 686 等级!
noarch     就是没有任何硬体等级上的限制。一般来说,这种类型的 RPM 档案,里面应该没有 binary file 存在。

需要额外说明的是, i386 的档案可以在任何的机器上面安装, 不论是 586 或者是 686 的机器,但是 i686 则不一定可以使用于 386 或者是 586 的硬体上面,这是因为 i686 的 RPM 档案在编译的时候,主要是针对 686 硬体等级的 CPU 来进行最佳化编译,而 386/586 等级的硬体可能由于无法支援该最佳化参数, 所以无法使用呢!另外,在 686 的机器上使用 i686 的档案会比使用 i386 的档案,效能可能比较好一些!无论如何,使用 i386 应该就是比较没有问题的啦!另外,由于不同的 distirbution 会有不同的环境与函式库,所以在 i386 之后也有可能会额外再加上该套件的简写!

==安装============================================
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法:

方法一:
1. 执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install

方法二:
1. 执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS (前两步和方法一相同)
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件

这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。执行:

rpm -i new-package.rpm即可安装完成。

rpm安装方式:rpm -ivh *.rmp

声明:本文采用 BY-NC-SA 协议进行授权,本文链接:【转】Linux中rpm与src.rpm区别及安装

发表评论

电子邮件地址不会被公开。 必填项已用*标注

疑问 开心 悲伤 邪恶 惊叹 微笑 脸红 笑 惊讶 惊奇 迷惑 酷 憨笑 生气 阴险 转眼球 眨眼 主意 箭头 中立 哭 大笑

*