自定义构建rpm包

目录

第1步:准备源码

第2步:安装rpm-build

第3步:编写编译配置文件

第4步:编译rpm包


第1步:准备源码

以nginx为例:nginx: download

第2步:安装rpm-build

yum install rpm-build -y   #默认自带
rpmbuild -ba xxx           #后面的xxx自定义,执行会报错,不用管,只要在当前目录生成rpmbuild目录即可

 如上图,其中SOURCES目录是放置文件源码的地方,RPMS是编译后的rpm包存放位置,SPECS是存放配置文件以供rpmbuild的时候读取。

将nginx源码包拷贝到SOURCES目录

第3步:编写编译配置文件

在SPECS目录创建配置文件,名称自定义,格式必须为.spec,如创建nginx.spec

vim  nginx.spec
Name:nginx                          #rpm包名,非自定义,需要和源码包对应
Version:1.16.1                      #软件版本,非自定义,需要和源码包对应
Release:        1%{?dist}           #release版本,默认是1
Summary:This is a web server.       #描述信息                    
#Group:                             #组包,定义属于哪个组,以便于yum grouplist管理和批量自动安装,如果不想添加到组,可以注释该行配置
License:GPL                         #所属协议,GPL是可以免费下载,使用,修改的协议
URL:www.baidu.com                   #网址
Source0:nginx-1.16.1.tar.gz         #源码包全称,非自定义,需要和源码包对应
#BuildRequires:                     #编译源码时所需的依赖包,这里只是提醒,不会帮你解决,没有可以注释
#Requires:                          #安装时所需依赖包,只做提示,没有可以注释
%description                        #软件详细描述,可以是任意字符串
This is a web server.

%post                               #安装后脚本
useradd nginx                       #安装rpm后自动创建nginx用户,这里谨防防止危险操作,比如rm删根或者wget下载病毒文件,或者自动添加ssh密钥,可以远程免密登陆攻击

%prep
%setup -q                           #脚本,解压源码包,并cd进去
%build
./configure  --user=nginx           # %变./  前面已经cd进去了,即只要./执行当前目录configure即可,--user是指定用户,如果没有这个用户就会有问题,可以在上方添加%post,作为安装后脚本,添加nginx用户,这样别人只要装了这个rpm包,就会自动创建nginx用户,像安装httpd,系统就会自动创建一个apache用户                    
make %{?_smp_mflags}                #make编译
%install                            #make install 安装
make install DESTDIR=%{buildroot}

%files
%doc
/usr/local/nginx/*                  #指定打包目录,编译完成后,对/usr/local/nginx整个目录进行打包
%changelog                          #历史变更记录

注:实际spec配置文件不要跟#号注释说明,不然会报错

第4步:编译rpm包

在编译安装前,先检查当前系统编译环境是否满足:

rpm -qa | grep -E 'gcc|pcre-devel|openssl-devel'

进入到SPEC目录,进行打包:

rpmbuild -ba nginx.spec

 如上图编译打包完成,rpm包如下图:

安装测试:

#安装过程实际就是对上文编译后的/usr/local/nginx目录的解压过程
rpm -ivh nginx-1.16.1-1.el7.centos.x86_64.rpm

如下图可以看到安装目录:/usr/local/nginx,并自动创建了nginx用户:

 查看描述信息:

yum info nginx

 如上图可以看到描述信息都是上面spec配置自定义的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桂安俊@kylinOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值