之前有看 Garlic 用,但很複雜的Fu,就…有點給它放在腦後,當沒這件事。
但這次…真的要自已Build了,所以只好努力看看該怎麼弄。
弄起來好像真的不難(如果沒遇到問題的話,有遇到spec沒寫好,就很難…)
使用環境:SUSE 10.1
首先要有環境才能開始學習怎麼 build RPM,下面就先來建立環境。
先用一般使用者登入 (不要使用root)。
- 建立 .rpmmacros 檔於家目錄,內容如下:
%_topdir /home/user/chingwei/rpmbuild - 然後建立要build rpm 的目錄結構。在家目錄下
mkdir rpmbuild
mkdir rpmbuild/BUILD
mkdir rpmbuild/RPMS
mkdir rpmbuild/RPMS/athlon
mkdir rpmbuild/RPMS/i386
mkdir rpmbuild/RPMS/i486
mkdir rpmbuild/RPMS/i586
mkdir rpmbuild/RPMS/i686
mkdir rpmbuild/RPMS/noarch
mkdir rpmbuild/SOURCES
mkdir rpmbuild/SPECS
mkdir rpmbuild/SRPMS
另外,也可以直接從複制 /usr/src/packages 下的目錄結構(如果有的話)
sudo cp -R /usr/src/packages/ /home/user/chingwei/rpmbuild/
這樣子環境就完成了。
接著就是將 Tarball rebuild 成 RPM了
(下面內容,節錄自 鳥哥的 Linux 私房菜 -- RPM 小技巧 )
tarball 分成以下幾種方式:
- tarball with spec
檢查方法,以spamassassin為例,
tar fzt Mail-SpamAssassin-3.0.2.tar.gz | grep .spec
或者是
tar fjt Mail-SpamAssassin-3.0.2.tar.bz2 | grep .spec
建RPM
rpmbuild -tb Mail-SpamAssassin-3.0.2.tar.gz
或者是
rpmbuild -tb --define "srcext .bz2" Mail-SpamAssassin-3.0.2.tar.bz2 - tarball without spec
請先安裝 CheckInstall (http://checkinstall.izto.org/) ,
即可將 tarball without spec 轉成 RPM ,安裝過程如下:
tar xvfz program_name-version.tar.gz
cd program_name-version
./configure
make
checkinstall (註:原來應該是make install,在此換成此命令即可)。 - Perl Modules
請先安裝 cpan2rpm (http://perl.arix.com/cpan2rpm/)
以 perl module Text-Iconv為例,
執行
cpan2rpm Text-Iconv-1.4.tar.gz
這樣就會產生以下兩個檔案:
rpmbuild/RPMS/i386/perl-Text-Iconv-1.4-1.i386.rpm
rpmbuild/SRPMS/perl-Text-Iconv-1.4.1.src.rpm
另外
如果你要自已改SPEC的話,就將xxxx.spec複制到SPECS下修改,tar.gz 放至 SOURCES
rpmbuild -bb xxx.spec
就可以了
參考網站:
不大會寫程式 -- Build software with source rpm
0 comments:
張貼留言