首页 > 代码库 > 将 shell 脚本打包到 rpm 包中

将 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
描述
%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 .此时手动创建下  /root/rpmbuild/BUILDROOT/name-0.1.0-1.el6.x86_64/etc/ 目录,并把你的脚本拷过去.再执行就 OK 了.

rpm包会放在 rpmbuild/RPMS/x86_64 这个路径下.完成

也可以使用 rpmbuild --buildroot=/dir -bb filename.spec 命令,其中 dir 目录最好为空,在其下创建 filename.spec 中想打包的目录,并将文件移动过去.

仅供参考

参考文档:

http://www.cnblogs.com/wjoyxt/p/5554004.html

需要编译的源码包打包:

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

官方文档:

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

将 shell 脚本打包到 rpm 包中