一、简介

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

二、选项

三、实例

1 准备打包环境

执行如下命令安装rpmbuild和rpmdevtools

  1. #yum install rpmbuild
  1. #yum install rpmdevtools

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

  1. #rpmdev-setuptree

工作目录结构如下,

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

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

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

3、撰写Spec文件

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

nginx.spec文档的内容如下:

  1. #
  2. # Example spec file for nginx
  3. #
  4. #软件包简要介绍
  5. Summary: high performance web server
  6.  
  7. #软件包的名字
  8. Name: nginx
  9.  
  10. #软件包的主版本号
  11. Version: 1.2.1
  12.  
  13. #软件包的次版本号
  14. Release: 1.el5.ngx
  15.  
  16. #授权协议
  17. License: 2-clause BSD-like license
  18.  
  19. #软件分类
  20. Group: Applications/Server
  21. Source: http://nginx.org/download/nginx-1.2.1.tar.gz
  22. URL: http://nginx.org/
  23. Distribution: Linux
  24. Packager: zhumaohai <admin@www.centos.bz>
  25.  
  26. #软件包的内容介绍
  27. %description
  28. nginx [engine x] is a HTTP and reverse proxy server, as well as
  29. a mail proxy server
  30.  
  31. #表示预操作字段,后面的命令将在源码代码BUILD前执行
  32. %prep
  33. rm -rf $RPM_BUILD_DIR/nginx-1.2.1
  34. zcat $RPM_SOURCE_DIR/nginx-1.2.1.tar.gz | tar -xvf -
  35.  
  36. #BUILD字段,将通过直接调用源码目录中自动构建工具完成源码编译操作
  37. %build
  38. cd nginx-1.2.1
  39.  
  40. #调用源码目录中的configure命令
  41. ./configure --prefix=/usr/local/nginx
  42.  
  43. #在源码目录中执行自动构建命令make
  44. make
  45.  
  46. #安装字段
  47. %install
  48. cd nginx-1.2.1
  49.  
  50. #调用源码中安装执行脚本
  51. make install
  52. %preun
  53. if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
  54. killall nginx >/dev/null
  55. exit 0
  56. fi
  57.  
  58. #文件说明字段,声明多余或者缺少都将可能出错
  59. %files
  60. #声明/usr/local/nginx将出现在软件包中
  1. /usr/local/nginx

4、构建RPM包

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

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

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

Linux rpmbuild命令的更多相关文章

  1. linux 常用命令大全

    linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ...

  2. Linux 常用命令使用方法大搜刮

    Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入 ...

  3. Linux常用命令大全(非常全!!!)

    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...

  4. 【转载】Linux常用命令

    Linux常用命令大全(非常全!!!) 转载出处:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 系统信息 arch 显示机器的处理器架构( ...

  5. Linux常用命令大全(转)

    (转)Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...

  6. 18-10-09 Linux常用命令大全(非常全!!!)

     Linux常用命令大全(非常全!!!)   Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制, ...

  7. [转] Linux常用命令大全(非常全!!!)

    出处:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得 ...

  8. Linux常规命令总结

    Linux常规命令总结,仅供参考: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显 ...

  9. 类型:linux;问题:linux命令;结果:Linux常用命令大全

    Linux常用命令大全 QQ空间新浪微博腾讯微博人人网豆瓣网百度空间百度搜藏开心网复制更多1997 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) una ...

随机推荐

  1. GJM:用C#实现网络爬虫(二) [转载]

    上一篇<用C#实现网络爬虫(一)>我们实现了网络通信的部分,接下来继续讨论爬虫的实现 3. 保存页面文件 这一部分可简单可复杂,如果只要简单地把HTML代码全部保存下来的话,直接存文件就行 ...

  2. jQuery选择器。 5.21 《深夜还在编码的你》

    (之所以字体弄那么大是因为省眼,程序员不容易,程序员的眼睛更不容易,请保护我们的眼睛) 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Ajax操作都依赖于选择器. 熟练地使用选 ...

  3. jQuery cxScroll 间歇式无缝滚动

    版本: jQuery v1.7+ jQuery cxScroll v1.2.2 注意事项: 内部会自动创建 prev 及 next 切换按钮,也可以在外部直接创建,若外部已创建或设置prevBtn: ...

  4. 钉钉如何进行PC端开发

    前段时间,用钉钉进行了服务器端的开发,对照着官方文档,感觉还是比较顺利的.后续想有时间研究一下PC端客户端的开发,看着官方文档,说的确实是比较简练,但也确实没看太明白,废了半天劲也没成功.后来经过无数 ...

  5. 网站开发中很实用的 HTML5 & jQuery 插件

    这篇文章挑选了15款在网站开发中很实用的 HTML5 & jQuery 插件,如果你正在寻找能优化网站,使其更具创造力和视觉冲击,那么本文正是你需要的.这些优秀的 jQuery 插件能为你的网 ...

  6. JSCapture – 基于 HTML5 实现的屏幕捕捉库

    JSCapture 是用纯 JavaScript 和 HTML5 实现的屏幕捕捉库.它可以让从您的浏览器中截图和记录在桌面的视频.JSCapture 使用 getUserMedia 来实现屏幕捕获.目 ...

  7. PS教程:20个新鲜出炉的 Photoshop 中级教程

    Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享最新20个 Photoshop 进阶教程,提高你的图片处理技巧,制作时尚的效果.这些教程可以帮助把你的想法 ...

  8. 24个很赞的 Node.js 免费教程和在线指南

    JavaScript 最初是用来创建动态网站效果的的前端语言.而如今,这门脚本语言也可以用作后端开发,用于搭建 Web 服务器,开发接口,甚至创建博客.在下面这个列表中包括24个 Node.js 教程 ...

  9. Windows-mysql5.7安装

    下载 mysql 5.7.msi 安装 双击mysql.msi,按照提示安装. 安装之后需要注意的问题(重点) 设置mysql环境环境变量(让mysql在cmd中的任何路径下就可以被调用) 鼠标右击计 ...

  10. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录

    电脑是win8 64位,安装oracle 11g r2 64位的,谁知道一切装完毕后,打开项目却连不上oracle数据了...首先是pl/sql连不上,装了oracle服务器,应该是不用再装客户端,p ...