Linux安装RPMs包

RPMs包是指“*.src.rpm”这类的rpm包。这类软件包是包含了源代码的rpm包,安装时需要进行编译。平时常见的“*.rpm”包是已经将源代码编译成了二进制文件,所以直接用rpm -ivh命令就能安装了。

1、安装所需的软件包:

yum install gcc-c++ automake autoconf rpm-build

2、随便找一个RPMs包下载:

cd /tmp
wget ftp://rpmfind.net/linux/freshrpms/fedora/linux/6/rar/rar-3.7.0-0.1.beta1.fc6.src.rpm

3、开始安装:
1)执行

rpm -ivh rar-3.7.0-0.1.beta1.fc6.src.rpm

2)进入/usr/src/redhat/SPECS目录

cd /usr/src/redhat/SPECS

-bash: cd: /usr/src/redhat/SPECS: No such file or directory

发现没有这个目录,那么src.rpm装到什么地方了呢?

find / -name "*rar*"

搜索带有rar字符串的文件,找到了:

/root/rpmbuild/SOURCES/rarlinux-3.7.b1.tar.gz
/root/rpmbuild/SPECS/rar.spec

原来安装到/root/rpmbuild目录了。

3)查看目录

cd /root/rpmbuild
ls

看到该目录下有两个目录,SOURCES和SPECS,SOURCES目录里是是源代码包,SPECS目录里是.spec脚本。

4)编译RPM包

cd /root/rpmbuild/SPECS
rpmbuild -bb rar.spec

5)在/root/rpmbuild/RPMS/i386目录生成rar-3.7.0-0.1.beta1.fc6.i386.rpm文件

cd /root/rpmbuild/RPMS/i386
rpm -ivh rar-3.7.0-0.1.beta1.fc6.i386.rpm

安装完成。

6)查看rar命令

rar --help

4、其它
rpmbuild命令还有其它选项:
1)rpmbuild -bb xxx.spec
只生成二进制格式的rpm包(*.rpm)。

2)rpmbuild -bs xxx.spec
只生成src格式的rpm包(*.src.rpm)。

3)rpmbuild -ba xxx.spec
生成源代码包和二进制包(生成rpm和src.rpm)。

4)rpmbuild -bp xxx.spec
对SPEC文件%prep部分进行检测。

5)rpmbuild -bc xxx.spec
对SPEC文件%build部分进行检测。

6)rpmbuild -bi xxx.spec
对SPEC文件%install部分进行检测。

参考资料:
http://www.hyzca.com/base/building-rpms.html
http://blog.csdn.net/lphpc/article/details/565823
http://www.php-oa.com/2010/05/11/linux-rpm-build.html
http://www.cnblogs.com/dlbrant/archive/2009/02/17/1392461.html