脚本宝典收集整理的这篇文章主要介绍了Linux下rpm打包,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
rpm打包:把源码转换为rpm
为什么使用rpm打包
rpm不能定制(不能选择安装路径,或者一些模块化不能出现选择)
使用nginx-1.20.1版本的源码软件,生成对应的rpm包软件,具体要求如下
安装rpm-build软件包,编写SPEC配置文件,创建新的rpm软件包,配置文件中的描述信息如下表所示
选项 | 值 |
---|---|
Name | Nginx |
Version | 1.20.1 |
Release | 1 |
Summary | Nginx is a web server Software |
License | GPL |
URL | www.nginx.org |
Source0 | nginx-1.20.1.tar.gz |
BuildRequires | gcc pcre-devel zlib-devel openssl-devel |
%description | nginx {engine x}is an HTTP and reverse Proxy server… |
1)安装rpm-build软件
yum -y install rpm-build
2)生成rpmbuild目录结构
rpmbuild -ba nginx.spec #会报错,为了生成下面的目录
ls /root/rpmbuild #上述命令自动生成的目录
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
sources #把目标的源码放到这个文件中
rpms #rpm-build这个软件会把源码文件转成rpm格式存放到rpms这个文件中
specs #rpm要求,配置要求在specs中
3)准备工作,将源码软件复制到sources目录
cp nginx-1.20.1.tar.gz /root/rpmbuild/SOURCES/
#这个软件包需要我们自己来提供,nginx软件包可以去官网下载
4)创建并修改spec配置文件
vim /root/rpmbuild/SPECS/nginx.spec #扩展名必须为spec
#填写软件的基本信息
Name:nginx #源码包软件名称
Version:1.20.1 #源码包软件的版本号
Release: 1%{?dist} #制作的rpm包版本号
Summary:this is web server #rpm软件的情况
#Group: #组包 一般都注释
License:GPL #软件的协议
URL:www.nginx.COM #网址
Source0: #源码包文件的全称
#BuildRequires: 因为nginx不需要依赖包,所以注释掉 #制作rpm时的依赖关系
#Requires: #安装rpm时的依赖关系
%description
this is web server #软件的描述
#源码的安装过程(源码转化为rpm的过程)
%post #安装后脚本
useradd nginx -s /sbin/nolongin #非必须操作
%PRep #准备工作
%SETUP -q #自动解开tar包,并cd进入目录
%build #编译安装
./configure --user=nginx
make %{?_smp_mflags}
%install
%make_install
%files
%doc #需要打包的文件
/usr/local/nginx/*
%changeLOG
接上述的组包
把很多软件放到一个组,安装的时候可以直接安装这个组包,就能安装这个组包的所有软件
查看组包 yum grouplist 安装组包 yum groupinstall 组包名
1)安装依赖软件包
yum -y installgcc pcre-devel openssl-devel
2)rpmbuild创建rpm软件包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
ls /root/rpmbuild/RPMS/x86_64/
nginx-1.20.1-1.el8.x86_64.rpm nginx-debugsource-1.20.1-1.el8.x86_64.rpm
nginx-debuginfo-1.20.1-1.el8.x86_64.rpm
第一个为我们做好的rpm包 ,第三个为我们的源码包
/usr/local/nginx/sbin/nginx -s stop
rm -rf /usr/local/nginx/* #卸载我们服务器中的nginx,如果没有安装这一步,请忽略
rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.20.1-1.el8.x86_64.rpm
/usr/local/nginx/sbin/nginx #开启服务
id nginx #刚刚我们在配置文件中写了,安装完之后会创建用户
curl http://127.0.0.1/
yum info nginx
可以查看软件的信息,与我们刚才写的一致
以上是脚本宝典为你收集整理的Linux下rpm打包全部内容,希望文章能够帮你解决Linux下rpm打包所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。