RPM是RPM Package Manager(RPM軟件包管理器)的縮寫,這一文件格式名稱雖然打上了RedHat的標志,但是其原始設計理念是開放式的。linux環境下制作安裝rpm包的方法如下:
一、制作rpm包
以rp-pppoe-3.10為列進行制作過程。
1.下載rp-pppoe-3.10.tar.gz
[root@localhost home]# pwd
/home
[root@localhost home]#
2.解壓
# tar zxvf rp-pppoe-3.10.tar.gz
3.
# cp /home/rp-pppoe-3.10/rp-pppoe.spec /usr/src/redhat/SOURCES/
# cp /home/rp-pppoe-3.10.tar.gz /usr/src/redhat/SOURCES/
3.制作rpm包
# cd /usr/src/redhat/SOURCES/
# rpmbuild -bb rp-pppoe.spec <==僅編譯成 RPM 檔案
# rpmbuild -ba rp-pppoe.spec <==編譯並同時產生 RPM 與 SRPM 檔案
如果編譯成功,就已經制作好rp-pppoe的rpm包了,查看一下
[root@localhost i386]# pwd
/usr/src/redhat/RPMS/i386
[root@localhost i386]# ll
total 420
-rw-r--r-- 1 root root 186322 01-06 11:09 rp-pppoe-3.10-1.i386.rpm
-rw-r--r-- 1 root root 150356 01-06 11:09 rp-pppoe-debuginfo-3.10-1.i386.rpm
-rw-r--r-- 1 root root 63319 01-06 11:09 rp-pppoe-gui-3.10-1.i386.rpm
[root@localhost i386]#
二、linux下rpm包的安裝
1.查看系統有五安裝過rp-pppoe。
[root@localhost i386]# rpm -qa rp-pppoe
rp-pppoe-3.5-1
2.刪除系統已經安裝過的rpm包
[root@localhost i386]# rpm -e rp-pppoe
[root@localhost i386]# rpm -qa rp-pppoe
3.安裝剛才制作好的rpm包
[root@localhost i386]# ls
rp-pppoe-3.10-1.i386.rpm rp-pppoe-gui-3.10-1.i386.rpm
rp-pppoe-debuginfo-3.10-1.i386.rpm
[root@localhost i386]# rpm -ivh rp-pppoe-3.10-1.i386.rpm
Preparing... ########################################### [100%]
1:rp-pppoe ########################################### [100%]
[root@localhost i386]# rpm -qa rp-pppoe
rp-pppoe-3.10-1
[root@localhost i386]# ls /etc/ppp/pppoe-server-options
/etc/ppp/pppoe-server-options
以上信息說明安裝成功了哦。
三、linux下制作安裝rpm包錯誤的解決
在制作rpm(1.3步)的時候出現錯:
RPM build errors:
Installed (but unpackaged) file(s) found:
解決辦法:
將/usr/lib/rpm/macros 中
%__check_files /usr/lib/rpm/check-files %{buildroot} 注釋掉