注意事項:
製作rpm包最好不要使用root使用者,以防止製作過程中不慎執行有害命令
需要安裝的依賴包:
$ yum install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools
step1:
執行如下命令生成工作區目錄:
$ rpmdev-setuptree
生成的工作區目錄結構如下:
directory
usage
build
rpmbuild命令構建軟體的目錄
rpms
用於儲存生成的rpm包
sources
所有要用到的原始檔(.src .conf)都放在這裡,並在spec檔案中用source引用
spec
用於存放.spec檔案,spec檔案是構建rpm包的主要指令碼檔案
srpms
用於存放.src.rpm檔案,此檔案無法直接使用,執行rpm -ivh會將原始檔放到工作區目錄下,仍然需要執行.spec檔案進行編譯
step2:
將要使用的原始碼放到sources目錄當中:
$ cd /root/rpmbuild/sources
$ wget
step3:
建立gcc.spec檔案,編寫rpm包構建過程:
$ cd /root/rpmbuild/specs
$ vim gcc.spec
#gcc.spec
summary: install gcc
name: gcc
version: 4.8.5
release: 1%
license: gpl
group: development/languages
source0: gcc-4.8.5.tar.gz
buildroot: %/%-%-%-root
buildrequires: gcc-c++ tar libstdc++-devel
%define __debug_install_post \
%/find-debuginfo.sh % "%/%"\
%%description
the gcc package contains the gnu compiler collection. this package installs
all compilers in /usr/local/gcc48 directory.
%prep
%setup -q
%build
./contrib/download_prerequisites
mkdir gcc-build-4.8.5
cd gcc-build-4.8.5
#$pwd/../configure --prefix=/usr/local/gcc48 --enable-checking=release --enable-languages=c,c++ --disable-multilib
$pwd/../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
% %%install
% -rf %
cd gcc-build-4.8.5
% install destdir=%
%clean
% -rf %
%pre
%post
echo "/usr/local/lib64" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig &> /dev/null
%postun
%files
%defattr(-, root, root, 0755)
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/lib64
/usr/local/libexec
/usr/local/share
%changelog
* tue apr 23 2019 lei.guo - 4.8.5-2
- change
* mon apr 22 2019 lei.guo - 4.8.5-1
- test
step4:
編譯生成二進位制rpm包:
qa_rpaths=0x0020 rpmbuild -bb gcc.spec
總結:rpmbuild --showrc | grep _prefix
rpm包製作流程
步驟一 安裝rpm build軟體 1.安裝rpm build包 yum y install rpm build 2.生成rpmbuild目錄結構 rpmbuild ba nginx.spec 會報錯,沒有檔案或目錄 可以忽略 會自動生成跟目錄 3.準備工作,將原始碼軟體複製到sources目錄 c...
RPM包製作教程
一 rpm介紹 rpm 前是red hat package manager 的縮寫,本意是red hat 軟體包管理,顧名思義是red hat 貢獻出來的軟體包管理 現在應為rpm package manager的縮寫。在fedora redhat mandriva suse yellowdog等主...
製作puppet的rpm包
製作puppet的rpm包 2012 03 10 22 43 59 分類 linux 製作puppet的rpm包 當前puppet的最新版是 facter的最新穩定版本是 puppet 2.6.6.tar.gz中的conf redhat 目錄下包含了乙個puppet.spec檔案,經過簡單的修改,就...