下以操作最好在虛拟機上操作:如 Docker 最友善了
1. 安裝 rpmbuild
yum -y install rpmbuild rpmdevtools -y
2. 生成打包路徑
使用 rpmdev-setuptree ,會自動在使用者家目錄生成一個 rpmbuild 的檔案夾,作為工作路徑
cd rpmbuild/SPECS 路徑,建立 filename.spec 檔案(打包 shell 腳本示例),詳細含義查閱相關文檔
Name: name
Version: 0.1.0
Release: 1%{?dist}
Summary: 描述
License: 軟體版權許可證
Group: Enterprise/xxx
Vendor:XXXX
Requires: 依賴的軟體包
%description
描述
%install
mkdir -p \
%{buildroot}%{_sysconfdir}
%prep
%files # 想打包的檔案,也是你安裝時要安裝的目錄
%defattr(-,root,root,-) # 預設權限
/etc/abc.sh # 想打包的檔案
%doc
%pre
%post
%preun # 程式解除安裝時執行的操作,上面想打包的檔案不用寫,解除安裝時會删除.可以在此處删除一些其它檔案或其它操作
rm -rf /etc/a.conf
rm -rf /etc/b.conf
%changelog
%files 下也可以打包目錄
3. 執行打包指令 rpmbuild -bb filename.spec
這類報錯: error: File not found: /root/rpmbuild/BUILDROOT/name-0.1.0-1.el6.x86_64/etc/abc.sh
在上面 %install 中可能是你的目錄沒有建立,具體變量對應的目錄檢視下面 官方文檔 連結都能找到
rpm包會放在 rpmbuild/RPMS/x86_64 這個路徑下.完成
也可以使用 rpmbuild --buildroot=/dir -bb filename.spec 指令,其中 dir 目錄最好為空,在其下建立 filename.spec 中想打包的目錄,并将檔案移動過去.
僅供參考
詳細文檔:
https://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh-cn#.E5.85.B3.E4.BA.8E.E6.9C.AC.E6.8C.87.E5.8D.97
需要編譯的源碼包打包:
http://jaminzhang.github.io/linux/use-rpmbuild-to-build-custom-RPM-package (文中參考連結值得一看)
http://4270819.blog.51cto.com/4260819/862880
http://murongqingqqq.blog.51cto.com/2902694/1396751