下以操作最好在虛擬機上操作:如 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 中想打包的目錄,並將文件移動過去.
僅供參考
詳細文檔:
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