简单介绍RPM包制作方法
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。使用rpm安装软件和管理软件非常的方便。而这节我们不是介绍如何使用rpm安装或管理软件,而是如何把源码制作成rpm包。
下面我们以制作nginx的rpm开始介绍其制作方法。以下操作在centos-7进行。
制作nginx的rpm例子
建立目录结构
/usr/src/redhat/SOURCES — 存放源代码,补丁,图标等文件。
/usr/src/redhat/SPECS — 存放用于管理rpm制作进程的spec文件。
/usr/src/redhat/BUILD — 解压后的文件存放在这里。
/usr/src/redhat/RPMS — 存放由rpmbuild制作好的二进制包。
/usr/src/redhat/SRPMS —存放由rpmbuild制作好的源码包。
mkdir -p /usr/src/redhat
cd /usr/src/redhat
mkdir SOURCES SPECS BUILD RPMS SRPMS
下载源码包到SOURCES目录,不需要解压。
cd /usr/src/redhat/SOURCES
wget http://nginx.org/download/nginx-1.11.1.tar.gz
创建Spec文件
cd /usr/src/redhat/SPECS
vi nginx.spec
内容如下:
#
# Example spec file for nginx
#
Summary: high performance web server
Name: nginx
Version: 1.11.1
Release: 1.el7.ngx
License: 2-clause BSD-like license
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.11.1.tar.gz
URL: http://nginx.org/
Distribution: Linux
Packager: geekwolf <admin@simlinuxc.om>;
%description
nginx [engine x] is a HTTP and reverse proxy server, as well as
a mail proxy server
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.11.1
zcat $RPM_SOURCE_DIR/nginx-1.11.1.tar.gz | tar -xvf -
%build
cd nginx-1.11.1
./configure --prefix=/usr/local/nginx
make
%install
cd nginx-1.11.1
make install
%preun
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
%files
/usr/local/nginx
在制作RPM包之前需要安装必要的工具,如rpmbuild,gcc等。开始RPM制作
yum install gcc rpm-build pcre-devel
cd /usr/src/redhat/SPECS/
rpmbuild -bb nginx.spec
一切顺利的话,会生成nginx的rpm包,/usr/src/redhat/RPMS/i386/nginx-1.11.1-1.el7.ngx.x86_64.rpm。
测试rpm包
rpm -ivh /usr/src/redhat/RPMS/i386/nginx-1.11.1-1.el7.ngx.x86_64.rpm
spec文件解释
从以上的简单例子可以看出,制作rpm包最重要的还是spec文件,下面解释一下例子所用到的指令。
#:以#开头是注释,rpm会忽略它。
Summary:简单描述软件。
Name :定义rpm的名称。
Version: 定义软件版本
Release: 发行版本
License: 定义许可证
Group: 软件分类
Source: 源码下载地址
URL: 源码相关网站
Distribution: 发行版系列
Packager: 打包人的信息
%description:软件详细描述,可多行
%prep :软件编译之前的处理,如解压。
%build :开始编译软件,如make
%install :开始安装软件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定义卸载之前的动作,如杀掉进程。
这里只介绍了几个常用的tag,更详细的请参考:http://www.rpm.org/max-rpm/ch-rpm-inside.html
简单介绍RPM包制作方法的更多相关文章
- RPM包制作方法
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- rpm包制作介绍
RPM(Rpm Package Management)在ReadHat等发行版下被用作软件包管理程序,其将某个软件相关的文件置入一个.rpm包中,用rpm命令,我们可以方便地完成Linux下软件安装. ...
- CentOS 5.4 制作 Python 2.6 RPM 包的方法
不知道什么原因,CentOS 5.4 了,默认的Python的版本还是2.4的. 但是Python在CentOS里面的又非常的重要,可是 2.4版本的Python有很多的模块没有,最新的Python ...
- RPM包制作教程
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- gtibase rpm包制作
gitbase 是一个很不错的代码分析工具,我们可以直接使用sql来分析团队的代码,以下是rpm 包的制作 简单说明 rpm 包的制作使用了fpm 一个简单,方便可以跨平台的软件包制作工具 gitba ...
- php-7.1.0 rpm包制作
nginx-1.8.0 rpm包制作见上篇文章:http://www.cnblogs.com/xiaoming279/p/6251149.html spec文件 Name: php Version: ...
- rpm包制作(待实验)
作者:firefoxbug 时间:July 18, 2014 rpm包命名规范 对于rpm包的命名符合如下规范. %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm N ...
- Core文件简单介绍及生成设置方法
Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...
- RPM包制作过程(一)
本机环境:centos7,64位 1. 首先安装工具,rpmbuild可能在rpmdevtools里已经包含 #yum install rpm-devel.x86_64 #yum install rp ...
随机推荐
- 必看的经典金融书籍推荐zz
5. 现代企业财务管理,11th詹姆斯.C.范霍恩,经济科学出版社,2002 6. Financial market and corporate strategy,glinbratt, 四.金融计量 ...
- SQL SERVER 如果判断text类型数据不为空
一个字段Remark的数据类型设置先设置为varcharr(255),后来考虑到扩展性需要将其定义为TEXT类型,但是SQL 语句报错. SQL 语句: SELECT * FROM ...
- 2018.06.27The Windy's(费用流)
The Windy's Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 6003 Accepted: 2484 Descripti ...
- OpenCV+VisualStudion2017配置
1.创建工程 Ctrl+Shift+n 2.创建.cpp文件 Ctrl+Shift+a 3.打开属性管理器 视图->其他窗口->属性管理器 Debug64右键 属性 4.添加包含目录 VC ...
- 以太坊虚拟机(EVM)
转载链接:https://ethfans.org/posts/solidity-chapter1-introduciton-to-smart-contracts 概括总览: 以太坊虚拟机(EVM)是以 ...
- mysql学习之路_联合查询与子查询
联合查询 联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加). 语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关). Select ...
- Hadoop Hbase理论及实操
Hbase特点 HBase是一个构建在HDFS上的分布式列存储系统:HBase是基于Google BigTable模型开发的,典型的key/value系统:HBase是Apache Hadoop生态系 ...
- 好文推荐系列---------(4)使用Yeoman自动构建Ember项目
好文原文地址:http://segmentfault.com/a/1190000000368881 我决定学习前端开发的效率工具Yeoman.本文将首先介绍Yeoman的基本情况,接着我们会使用Yeo ...
- Linux下VNC配置使用总结:开启+桌面配置+安全访问
操作环境:CentOS 5.3 + Windows XP SP3 32bit + RealVNC 4.1.2 i386 + TigerVNC. 参考:潇湘隐者-Linux系统VNC配置实践总结,萨米的 ...
- Java相关工具下载、配置环境变量
相关工具下载 JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Eclip ...