製作rpm包(for gcc)
注意事項:
製作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
總結:這裡簡單的介紹了製作gcc的rpm包的大致方法,詳細的rpm包製作過程見rpm包官方指導手冊
spec檔案中_tmppath這類變數是其自帶的巨集,想檢視其真實的值可以使用如下命令:
rpmbuild --showrc | grep _prefix
使用rpm build製作rpm包
本實驗使用rpm build將nginx原始碼包製作成rpm包 nginx版本 nginx 1.16.1 1 1.安裝rpm build軟體 yum y install rpm build 2.生成rpmbuild目錄結構 rpmbuild ba mmm 提示沒有檔案或目錄,此時會在當前目錄下生成乙...
rpmbuild製作rpm安裝包
寫在前面 用源 製作rpm包的方法 1.源 打包 將源 打包,如 stardict 2.0.tar.gz,並將檔案放到spec檔案source段所描述的路徑下,通常為 usr src redhat sources 目錄下 不同的linux發布版本略有不同,如opensuse為 usr src pac...
rpmbuild製作rpm安裝包
寫在前面 用源 製作rpm包的方法 1.源 打包 將源 打包,如 stardict 2.0.tar.gz,並將檔案放到spec檔案source段所描述的路徑下,通常為 usr src redhat sources 目錄下 不同的linux發布版本略有不同,如opensuse為 usr src pac...