redhat系列的linux使用RPM来管理安装软件很方便,把自己常用的脚本变成RPM包之后,用起来就方便了。
- 要制作RPM包,首先要看一下RPM包的内容(可以忽略)
....还是不看了把,看不懂....
2.环境准备:
软件包依赖:
rpm-build rpmdevtools
3.设置 制作RPM包 的环境
直接执行命令:
rpmdev-setuptree
即可在当前用户的家目录生成如下目录结构
4.拷贝自己的脚本到相应目录
(简单介绍一下我的那三个脚本的功能: customOS.sh:设置历史命令格式,终端(PS1)显示之类的 scanport.sh :扫描目标主机的可用TCP端口 setRM.sh :当rm -rf 删除的目标 大小小于10M,就把目标放入到/tmp目录下 )
5.配置SPCE文件(重点)
在SPEC目录下,编译ddcw.spec
ddcw.spec内容参考如下:
Name: ddcw #名字 Version: 2019 #版本 Release: 1125 Summary: this is test RPM
Group: Applications/System License: ddcw URL: https://blog.51cto.com/10888845
#Requires: Requires:grep #依赖,即安装这个软件所需的其它RPM包
%description #描述 this is set ddcw some habit
%prep #安装前所需要做的事情 echo -e "\033[1;41;33m pre install NOTHING\033[0mprep"
%build #这个我也不知道 echo -e "\033[1;41;33m build NOTHING\033[0mprep"
%install #安装,即把自己的脚本放到那个位置 #echo -e "\033[1;41;33m install NOTHING\033[0mprep" mkdir -p %{buildroot}/tmp/ddcw install -m 744 scanport.sh %{buildroot}/tmp/ddcw/scanport.sh install -m 744 setRM.sh %{buildroot}/tmp/ddcw/setRM.sh install -m 744 customOS.sh %{buildroot}/tmp/ddcw/customOS.sh
%post #安装之后的工作,(因为我的脚本自带安装功能,即执行脚本他会自动安装) sh /tmp/ddcw/scanport.sh sh /tmp/ddcw/setRM.sh sh /tmp/ddcw/customOS.sh
%files #文件 /tmp/ddcw/scanport.sh /tmp/ddcw/setRM.sh /tmp/ddcw/customOS.sh
%postun #卸载操作,即运行 rpm -e 软件包 的时候执行的命令 mv /usr/bin/scanportDDCW /tmp sed -i "/alias rm='/bin/rms'/d" /etc/profile >/dev/null sed -i "/export HISTTIMEFORMAT=/d" /etc/profile >/dev/null sed -i "/export DISPLAY=/d" /etc/profile >/dev/null sed -i "/export PS1=/d" /etc/profile >/dev/null
%changelog #对于我来说,没啥用
6.执行打包命令
rpmbuild -bb SPECS/ddcw.spec
7.检查测试
打包成功后,会在 RPMS/x86_64/ 目录下生成改RPM包
我换一台机器测试这个RPM包:
再验证一下功能(根据自己脚本测试,我的测试出来是OK的):
卸载试一下(也是木的问题的)