如何把常用脚本制作成RPM包

源码编译
1089
linux
linux 举报
2021-09-08

如何把常用脚本制作成RPM包?针对这个问题,今天小编总结这篇有关RPM包制作的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

redhat系列的linux使用RPM来管理安装软件很方便,把自己常用的脚本变成RPM包之后,用起来就方便了。

  1. 要制作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:  1125Summary:  this is test RPMGroup:        Applications/SystemLicense:  ddcwURL:      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/ddcwinstall -m 744 scanport.sh %{buildroot}/tmp/ddcw/scanport.shinstall -m 744 setRM.sh   %{buildroot}/tmp/ddcw/setRM.shinstall -m 744 customOS.sh %{buildroot}/tmp/ddcw/customOS.sh%post       #安装之后的工作,(因为我的脚本自带安装功能,即执行脚本他会自动安装)sh /tmp/ddcw/scanport.shsh /tmp/ddcw/setRM.shsh /tmp/ddcw/customOS.sh%files    #文件/tmp/ddcw/scanport.sh/tmp/ddcw/setRM.sh/tmp/ddcw/customOS.sh%postun     #卸载操作,即运行 rpm -e 软件包  的时候执行的命令mv /usr/bin/scanportDDCW /tmpsed -i "/alias rm='\/bin\/rms'/d" /etc/profile >/dev/nullsed -i "/export HISTTIMEFORMAT=/d" /etc/profile >/dev/nullsed -i "/export DISPLAY=/d" /etc/profile >/dev/nullsed -i "/export PS1=/d" /etc/profile >/dev/null%changelog  #对于我来说,没啥用

6.执行打包命令

rpmbuild -bb SPECS/ddcw.spec

7.检查测试

打包成功后,会在  RPMS/x86_64/ 目录下生成改RPM包我换一台机器测试这个RPM包:

再验证一下功能(根据自己脚本测试,我的测试出来是OK的):如何把常用脚本制作成RPM包

卸载试一下(也是木的问题的)如何把常用脚本制作成RPM包

关于把常用脚本制作成RPM包的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。



https://www.yisu.com/zixun/4182.html


倒序看帖 只看楼主
热点关注
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
服务停止、启动、重启一体化脚本,万能语言启动脚本
shell参数判断
在后台用进程名运行bash脚本
shell脚本每行后面多了一个^M的原因和解决办法
定时检测服务,检测down掉后重启。系统检测到DMSERVER运行正常
挂载磁盘的时候遇到一个问题,挂载完磁盘之后重启服务器挂载的盘丢失了.
中标麒麟系统Your trial is EXPIRED and no VALID licens
termux 开启ssh并用用户名和密码登陆
组成共享库的目标文件和一般的目标文件有所不同,在编译时要加-fPIC和-share选项,例如:
gcc指定链接库路径后还是找不到库文件
./configure -build,-host,-target设置
shell脚本每行后面多了一个^M的原因和解决办法
shell 中 if [ “x${var}“ == “x“ ] 中 x的作用
查看linux机器是32位还是64位的方法