RPM包製作與實戰

2021-09-08 16:31:06 字數 3864 閱讀 2645

1、安裝rpm軟體

yum install rpm-build

2、建立目錄結構

mkdir /usr/src/redhat/ -p

/usr/src/redhat/sources    #存放源**、補丁等檔案 

/usr/src/redhat/specs      #存放用於管理rpm製作程序的spec檔案 

/usr/src/redhat/build      #解壓後的檔案存放目錄 

/usr/src/redhat/rpms       #存放由rpmbuild製作好的二進位製包 

/usr/src/redhat/srpms      #存放由rpmbuild製作好的原始碼包 

3、把原始碼包放在sources目錄下

4、生成nginx.spec檔案

5、rpm包製作

首先系統要安裝好必備的製作工具:gcc、rpmbuild等

yum -y install gcc rpm-build pcre-devel 

cd /usr/src/redhat/specs/rpmbuild -bb nginx.spec

通過上面這條命令,會在/usr/src/redhat/rpms/x86_64/下面生成nginx-1.2.0-1.el5.ngx.x86_64.rpm這個檔案

-bb 這個選項就是製作二進位製包(build binary package only from )

對spec檔案內容進行簡單說明:

spec檔案是製作rpm包的核心!

以#開頭的是注釋資訊; 

summary:對相關軟體進行簡單描述說明 

name:定義rpm包的名稱 

version:定義軟體的版本號 

release:發行版本 

license:定義許可證 

group:說明軟體屬於哪種應用型別 

url:軟體相關官方站點 

distribution: 發行版系列 

packager: 製作人的簡單資訊 

%description:軟體詳細描述資訊 

%prep:軟體編譯之前的處理 

%build:編譯軟體 

%install:安裝軟體 

%preun:定義解除安裝之前的動作 

%files:指定要打包的軟體包,這裡是/usr/local/nginx 

下面是乙個經典的事例:

vi .rpmmacros 

%_topdir /home/wb-liqiu/rpm

%packager wb-liqiu

%vendor taobao inc.

%_svn_path unknown_path

%_svn_revision unknown_revision

%_version 0.0.1

%_release 6

%_crondir /etc/cron.d

%_crontab .//

etc/cron.d/%

%_unpackaged_files_terminate_build 0

%build_root %/buildroot

然後

mkdir rpm 

mkdir rpm/ -p

spec事例:

vendor: 公司

packager: 姓名

《郵箱》source: gearmand-%.tar.gz

buildroot: %/-%

buildarch: x86_64

requires: lz-libdrizzle>=1.0

requires: boost libevent

buildrequires: gcc libevent-devel

%description

---%prep

%setup -q

%build

./configure prefix=% --disable-libmemcached --disable-libsqlite3

make

%install

make install destdir=$rpm_build_root

cur_dir=`pwd`

cd $rpm_build_root && (find . -type f | sed -e '

s|^./|/|g

' > $cur_dir/%.manifest)

cd $rpm_build_root && (find . -type l | sed -e '

s|^./|/|g

' >> $cur_dir/%.manifest)

%clean

rm -rf %

%files -f %.manifest

%defattr(-,admin,users,-)

%changelog

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等主...

RPM包的製作

注意事項 製作rpm包最好不要使用root使用者,以防止製作過程中不慎執行有害命令 需要安裝的依賴包 yum install gcc rpm build rpm devel rpmlint make python bash coreutils diffutils patch rpmdevtoolss...