使用rpmbuild製作jdk的包 RPM包的製作

2021-10-19 04:48:37 字數 2463 閱讀 8784

製作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...