前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >制作RPM包

制作RPM包

原创
作者头像
大大刺猬
修改2020-01-17 18:07:59
1.5K0
修改2020-01-17 18:07:59
举报
文章被收录于专栏:大大刺猬

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

1.要制作RPM包,首先要看一下RPM包的内容(可以忽略)

我看不懂,所以就不看了
我看不懂,所以就不看了

2.环境准备

代码语言:javascript
复制
软件包依赖:rpm-build rpmdevtools
没得的话,直接yum install rpm-build rpmdevtools -y
没得的话,直接yum install rpm-build rpmdevtools -y

3.设置 制作RPM包 的环境

代码语言:javascript
复制
直接执行命令:rpmdev-setuptree即可在当前用户的家目录生成如下目录结构

4.拷贝自己的脚本到相应目录

代码语言:javascript
复制
(简单介绍一下我的那三个脚本的功能:
customOS.sh:设置历史命令格式,终端(PS1)显示之类的
scanport.sh :扫描目标主机的可用TCP端口
setRM.sh :当rm -rf 删除的目标 大小小于10M,就把目标放入到/tmp目录下
)

5.配置SPCE文件(重点)

ddcw.spec内容参考如下:

代码语言:javascript
复制
Name: ddcw #名字
Version: 2019 #版本
Release: 1125
Summary: this is test RPM

Group: Applications/System
License: ddcw
URL: https://cloud.tencent.com/developer/user/1130242

#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.执行打包命令

代码语言:javascript
复制
rpmbuild -bb SPECS/ddcw.spec

7.检查测试

代码语言:javascript
复制
打包成功后,会在 RPMS/x86_64/ 目录下生成改RPM包
代码语言:javascript
复制
我换一台机器测试这个RPM包:
代码语言:javascript
复制
再验证一下功能(根据自己脚本测试,我的测试出来是OK的):
代码语言:javascript
复制
卸载试一下(也是木的问题的)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档