一、简介

rpmbuild命令用于创建软件的二进制包和源代码包。

二、选项

三、实例

1 准备打包环境

执行如下命令安装rpmbuild和rpmdevtools

#yum install rpmbuild
#yum install rpmdevtools 

执行如下命令来生成rpmbuild的工作目录

#rpmdev-setuptree

工作目录结构如下,

~/rpmbuild
~/rpmbuild/SOURCES #放置打包资源,包括源码打包文件和补丁文件等
~/rpmbuild/SPECS #放置SPEC文档
~/rpmbuild/BUILD #打包过程中的工作目录
~/rpmbuild/RPMS #存放生成的二进制包
~/rpmbuild/RPMS/i386 #存放生成的i386结构包
~/rpmbuild/SRPMS #存放生成的源码包
提示:rpmdev-setuptree命令默认将再当前用户主目录下创建一个RPM构建根目录结构,如果需要改变次默认位置,可以修改配置文件:~/.rpmmacros中变量_topdir对应的值即可。

2、载源码包到SOURCES目录,不需要解压

cd SOURCES/
wget http://nginx.org/download/nginx-1.2.1.tar.gz

3、撰写Spec文件

SPEC撰写是打包RPM的核心,也算是最难的一步,好在我们可以从参照一个简单的模板文件开始,在可以实现基本功能的基础上再一步一步的扩充文档内容,直至完全达到要求。下面是一个简单的SPEC文档,其中包括了一些说明信息(注:#后面的内容为说明信息),该SPEC文档是对一个测试的软件项目hellorpm写的,hellorpm软件包编译后仅有一个执行文件、一个手册文件和一个项目说文件。

nginx.spec文档的内容如下:

#
# Example spec file for nginx
#
#软件包简要介绍
Summary: high performance web server #软件包的名字
Name: nginx #软件包的主版本号
Version: 1.2.1 #软件包的次版本号
Release: 1.el5.ngx #授权协议
License: 2-clause BSD-like license #软件分类
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.2.1.tar.gz
URL: http://nginx.org/
Distribution: Linux
Packager: zhumaohai <admin@www.centos.bz> #软件包的内容介绍
%description
nginx [engine x] is a HTTP and reverse proxy server, as well as
a mail proxy server #表示预操作字段,后面的命令将在源码代码BUILD前执行
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.2.1
zcat $RPM_SOURCE_DIR/nginx-1.2.1.tar.gz | tar -xvf - #BUILD字段,将通过直接调用源码目录中自动构建工具完成源码编译操作
%build
cd nginx-1.2.1 #调用源码目录中的configure命令
./configure --prefix=/usr/local/nginx #在源码目录中执行自动构建命令make
make #安装字段
%install
cd nginx-1.2.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将出现在软件包中
/usr/local/nginx

4、构建RPM包

开始构建操作,首先进入到当前用户的rpmbuild根目录

#cd ~/rpmbuild/
#rpmbuild -ba SPECS/nginx.spec

提示:-ba表示build all,即生成包括二进制包和源代码包的所有RPM包,如果正常的话,rpmbuild将正常退出,同时在RPMS目录和SRPMS目录中将生成对应的RPM包。

最新文章

  1. EasyUI datagrildview导出excel报表
  2. XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network
  3. 个人Web工具箱&amp;资源整理(1)
  4. .net 第二周学习
  5. 用php模拟做服务端侦听端口
  6. css字体样式(Font Style),属性
  7. LintCode &quot;Backpack&quot;
  8. 详解 Objective-C 中的 Runtime
  9. Oracle 基础知识
  10. bzoj1389
  11. 下载cppunit
  12. Css控制div水平垂直居中显示
  13. 一些常见的CFD基本概念(飞机为例)(摘抄)
  14. PAT (Advanced Level) 1094. The Largest Generation (25)
  15. 10-TypeScript中的接口
  16. bzoj2338[HNOI2011]数矩形 计算几何
  17. 开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
  18. 证书,CSP与Openssl
  19. Arcgis for Javascript 对接iServer发布的Mapserver服务
  20. ASP.NET页面之间传值的方式之Session(个人整理)

热门文章

  1. 基本I/O模型与Epoll简介
  2. servlet的开发流程介绍
  3. ConcurrentHashMap原理分析
  4. clicaptcha中文点击验证码开发经验总结
  5. 使用 FocusPoint.js 实现图片的响应式裁剪
  6. HTML5 Maker – 在线轻松制作 HTML5 动画效果
  7. JavaScript的运动框架学习总结
  8. angular源码分析:angular的源代码目录结构说明
  9. 总结CSS3新特性(颜色篇)
  10. C#的3DES加密解密算法