RPM包的製作

2022-06-25 09:36:09 字數 2448 閱讀 5500

注意事項:

製作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檔案,經過簡單的修改,就...