linux spec 脚本,RPM包制作之Spec文件详解

本文介绍了如何使用Linux Spec脚本自制RPM包,以制作NGINX RPM为例,详细讲解了Spec文件的各个部分,包括变量、目录结构、宏定义及其作用。在CentOS 7.4系统中,通过安装rpm-build,创建新用户并配置工作目录,然后理解Spec文件中的Name、Summary、Version、Release等关键字,以及%prep、%build、%install等脚本段落。文章还提供了Nginx Spec文件实例,展示从源码包到RPM包的完整过程。
摘要由CSDN通过智能技术生成

看这篇文章的人基本都有一个想法,就是:“劳资不想用YUM的安装!不是版本太低就是文件分布太野路子”,此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,其中的Spec文件是制作RPM包的核心。

下面我们以制作NGINX的RPM开始介绍其制作方法。以下操作在CentOS7.4 64位系统进行(切记,不要把7上的文件装到6上去)。

1.1 起手势 安装rpm-build

yum -y install rpm-build

新建一个新用户并切换到用户上(避免权限的问题)、建立工作车间目录(官网的说法。。。),并写进环境变量里。

[root]# useradd devops #新建用户

[root]# su - devops #切换用户

[devops]$ echo "%_topdir %(echo $HOME)/rpmbuild" >> ~/.rpmmacros

[devops]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

注意: 这几个新建的文件夹必须要求全部大写!全部大写!全部大写!

以下为目录所对应存放文件的解释:

BUILD:源码解压以后放的目录

RPMS:制作完成后的rpm包存放目录

SOURCES:存放源文件,配置文件,补丁文件等放置的目录【常用】

SPECS:存放spec文件,作为制作rpm包的文件,即:nginx.spec……【常用】

SRPMS:src格式的rpm包目录

BuiltRoot:虚拟安装目录,即在整个install的过程中临时安装到这个目录,把这个目录当作根来用的,所以在这个目录下的文件,才是真正的目录文件。最终,Spec文件中最后有清理阶段,这个目录中的内容将被删除

Spec文件的宏定义:

rpmbuild --showrc | grep topdir #工作车间目录:_topdir /root/rpmbuild

-14: _builddir %{_topdir}/BUILD

-14: _buildrootdir %{_topdir}/BUILDROOT

-14: _rpmdir %{_topdir}/RPMS

-14: _sourcedir %{_topdir}/SOURCES

-14: _specdir %{_topdir}/SPECS

-14: _srcrpmdir %{_topdir}/SRPMS

-14: _topdir /root/rpmbuild

rpmbuild --showrc显示所有的宏,以下划线开头:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值