將 shell 腳本打包到 rpm 包中


下以操作最好在虛擬機上操作:如 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM