製作二進位制rpm包

2021-10-01 11:12:03 字數 1903 閱讀 4057

directory under rpmbuild:

build  buildroot  rpms  sources  specs  srpms

abc@localhost rpmbuild]$ tree

.├── build

│ ├── pythontest-1.1.1-100.x86_64

│ │ ├── doc

│ │ │ └── readme

│ │ └── test1.py

│ └── pythontest-1.1.1-100.x86_64.tar.gz

├── buildroot

├── rpms

│ └── x86_64

│ └── pythontest-1.1.1-100.x86_64.rpm

├── sources

├── specs

│ └── pythontest.spec

└── srpms

事先將要做成rpm包的二進位制檔案按照目錄都放好,打包成檔案。例如上面的pythontest-1.1.1-100.x86_64.tar.gz,放到build目錄下。製作過程中會自動解開,如上面的 pythontest-1.1.1-100.x86_64 目錄。打包的檔名應該與最終的rpm包的名字相同。例如:

pythontest-1.1.1-100.x86_64.tar.gz  和最終的rpm檔案 pythontest-1.1.1-100.x86_64.rpm 前面的部分都要相同。

然後在specs目錄下建立***.spec檔案,內容如下:

summary: here is summary for package. 

name: pythontest

version: 1.1.1

release: 100

license: gpl

group: misc

%description

a test program for make binary rpm.

%prep

%build

%install

mkdir -p $rpm_build_root/opt/pxy/pythontest/doc

cd $rpm_build_dir

pwdtar xzvf ../build/pythontest-1.1.1-100.x86_64.tar.gz

cp -r ../build/pythontest-1.1.1-100.x86_64/* $rpm_build_root/opt/pxy/pythontest/

%files

/opt/pxy/

說明:這是乙個二進位制rpm包製作的spec檔案

pythontest-1.1.1-100.x86_64.tar.gz為實現打好包並放入build目錄的檔案,包含需要打包的檔案,按照目錄層次放好。

檔名中前三個子段分別對應spec檔案中的name,version,release,及cpu架構,預設是當前cpu架構

將pythontest-1.1.1-100.x86_64.tar.gz檔案放到build目錄

install欄位執行時進入build目錄,解壓檔案,並將需要的檔案拷貝到buildroot中對應目錄。buildroot目錄的結構比較特殊,

為對應該二進位製包最終安裝的目錄 (實際安裝的目錄就是$rpm_build_root後面指定的目錄)

file欄位表明了這個rpm包包含的所有檔案和目錄,刪除rpm包時,會把這裡面的目錄和檔案全部刪除。

編譯時進入specs目錄,執行

rpmbuild -bb pythontest.spec
生成的rpm在rpms目錄下.

RPM二進位製包

linux 軟體包管理大致可分為二進位製包 原始碼包,使用的工具也各不相同。linux 常見軟體包分為兩種,分別是源 包 source code 二進位製包 binary code 源 包是沒有經過編譯的包,需要經過 gcc c 編譯器環境編譯或解壓才能執行,二進位製包無需編譯,可以直接安裝使用。通...

Centos rpm二進位製包安裝 rpm

rpm 軟體包管理器 rpm包命名規範 mysql community server 5.7.21 1.el7.x86 64.rpm 軟體名稱mysql community server 軟體版本5.7.21 更新發行次數1 適合系統版本el7 cpu和系統架構x86 64 副檔名rpm rpm包安...

二進位制RPM包查詢命令詳解

rpm包管理系統是非常強大和方便的包管理系統,它比原始碼包的方便之處就在於可以使用命令查詢 公升級和解除安裝。在在查詢的時候,其實是在查詢 var lib rpm 這個目錄下的資料庫檔案,那為什麼不直接檢視這些檔案呢?你可以嘗試使用vim檢視這些檔案,會發現都是亂碼。也就是說,這些檔案其實都是二進位...