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檢視這些檔案,會發現都是亂碼。也就是說,這些檔案其實都是二進位...