| 文件格式 | 文件名格式 | 直接安裝與否 | 內(nèi)含程序類型 | 可否修改參數(shù)并編譯 |
|---|---|---|---|---|
| RPM | xxx.rpm | 可 | 已編譯 | 不可 |
| SRPM | xxx.src.rpm | 不可 | 未編譯的源代碼 | 可 |
[root@localhost~]#rpm -ivh /mnt/cdroin/Packages/rpm-build-4.8.0-27.el6.i686.rpm
Preparing...
###################
[100%]
1:rpm-build
###################
[100%]
[root@localhost ~]# rpmbuild [選項] 包全名
可使用如下 2 個選項:需要注意的是,SRPM 本質(zhì)上仍屬于 RPM 包,所以安裝時仍需考慮包之間的依賴性,要先安裝它的依賴包,才能正確安裝。
[root@localhost ~]# rpmbuild -rebuild httpd-2.2.15-5.el6.src.rpm
warning: InstallSourcePackage at: psm.c:244: Header V3 RSA/SHA256 Signature, key
ID fd431d51: NOKEY
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
#警告為mockbuild用戶不存在,使用root代替。這里不是報錯,不用緊張
…省略部分輸出…
Wrote: /root/rpmbuild/RPMS/i386/ httpd-2.2.15-5.el6.i386.rpm
Wrote: /root/rpmbuild/RPMS/i386/httpd-devel-2.2.15-5.el6.i386.rpm
Wrote: /root/rpmbuild/RPMS/noarch/httpd-manual-2.2.15-5.el6.noarch.rpm
Wrote: /root/rpmbuild/RPMS/i386/httpd-tools-2.2.15-5.el6.i386.rpm
Wrote: /root/rpmbuild/RPMS/i386/ mod_ssl-2.2.15-5.el6.i386.rpm
#寫入RPM包的位置,只要看到,就說明編譯成功
Executing(%clean): /bin/sh -e/var/tmp/rpm-tmp.Wb8TKa
+ umask 022
+ cd/root/rpmbuild/BUILD
+ cd httpd-2.2.15
+ rm -rf /root/rpmbuild/BUILDROOT/httpd-2.2.15-5.el6.i386
+ exit 0
Executing(-clean): /bin/sh -e/var/tmp/rpm-tmp.3UBWql
+ umask 022
+ cd/root/rpmbuild/BUILD
+ rm-rf httpd-2.2.15
+ exit 0
[root@localhost ~]# ls /root/rpmbuild/
BUILD RPMS SOURCES SPECS SRPMS
| 文件名 | 文件內(nèi)容 |
|---|---|
| BUILD | 編譯過程中產(chǎn)生的數(shù)據(jù)保存位置 |
| RPMS | 編譯成功后,生成的 RPM 包保存位置 |
| SOURCES | 從 SRPM 包中解壓出來的源碼包(*.tar.gz)保存位置 |
| SPECS | 生成的設(shè)置文件的安裝位置。第二種安裝方法就是利用這個文件進行安裝的 |
| SRPMS | 放置 SRPM 包的位置 |
[root@localhost ~]#ll /root/rpmbuild/RPMS/i386/
-rw--r--r-- 1 root root 3039035 11月19 06:30 httpd-2.2.15-5.el6.i386.rpm
-rw--r--r-- 1 root root 154371 11月19 06:30 httpd-devel-2.2.15-5.el6.i386.rpm
-rw--r--r-- 1 root root 124403 11月19 06:30 httpd-tools-2.2.15-5.el6.i386.rpm
-rw--r--r-- 1 root root 383539 11月19 06:30 mod_ssl-2.2.15-5.el6.i386.rpm
rpm -i 命令,如下所示:[root@localhost ~]# rpm -i httpd-2.2.15-5.el6.src.rpm
-i 選項用于安裝 rpm 包時表示安裝,但對于 SRPM 包的安裝來說,這里只會將 .src.rpm 包解開后將個文件放置在當(dāng)前目錄下的 rpmbuild 目錄中,并不涉及安裝操作。[root@localhost ~]# rpmbuild -ba /root/rpmbuild/SPECS/httpd.spec
其中,-ba 選項的含義是編譯,會同時生成 RPM 二進制包和 SRPM 源碼包。這里還可以使用 -bb 選項用來僅生成 RPM 二進制包。以上兩種方式都可實現(xiàn)將 SRPM 包編譯為 RPM 二進制包,剩下的工作就是使用 RPM 包安裝軟件,這部分內(nèi)容已在前面章節(jié)中講過,因此不再贅述。
新聞熱點
疑難解答
圖片精選