有好多朋友问到怎么制作rpm包,可不可把其它服务器上编译好的软件目录复杂到其它服务器上直接应用等等。。。这里做个简单的介绍,高级复杂的不会。

此方法是通过编写spec文件,使用rpmbuild来完成一个rpm的打包。

以nginx为例进行介绍

制作平台:centos 5.x X86_64

四步走:

第一步:建立目录结构-

mkdir /usr/src/RedHat/{SOURCES,SPECS,BUILD,RPMS,SRPMS} -p

相关目录介绍:

/usr/src/RedHat/SOURCES    #存放源代码、补丁等文件 /usr/src/RedHat/SPECS      #存放用于管理rpm制作进程的spec文件 /usr/src/redhat/BUILD      #解压后的文件存放目录 /usr/src/RedHat/RPMS       #存放由rpmbuild制作好的二进制包 /usr/src/redhat/SRPMS      #存放由rpmbuild制作好的源码包 第二步:把源码包放在SOURCES目录下
cd /usr/src/RedHat/SOURCES
wget http://nginx.org/download/nginx-1.2.0.tar.gz
 
第三步:生成nginx.spec文件
 
cd /usr/src/redhat/SPECS cat nginx.spec # # spec file for nginx # Build 2012-07-17 # By opsren # Summary: High performance web server Name: Nginx Version: 1.2Release: 0.el5.ngx License: 2-clause BSD-like license Group: Applications/Server Source: http://nginx.org/download/nginx-1.2.0.tar.gz URL: http://nginx.org Distribution: Centos/RedHat Packager: qiuzhijun <250621008@qq.com>   %description Nginx ("engine x") is a high performance HTTP and reverse proxy server, as well as a mail(IMAP/POP3/SMTP) proxy server. %prep tar zxf $RPM_SOURCE_DIR/nginx-1.2.0.tar.gz %build cd nginx-1.2.0 ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --lock-path=/var/run/nginx.lock --pid-path=/var/run/nginx.pid make %install cd nginx-1.2.0 make install %preun if [ -z "`ps aux | grep nginx | grep -v grep`" ];then pkill nginx >/dev/null exit 0 fi %files /usr/local/webserver/nginx  第四步:RPM包制作
首先系统要安装好必备的制作工具:gcc、rpmbuild等
yum -y install gcc rpm-build pcre-devel cd /usr/src/RedHat/SPECS/ rpmbuild -bb nginx.spec 通过上面这条命令,会在/usr/src/RedHat/RPMS/x86_64/下面生成nginx-1.2.0-1.el5.ngx.x86_64.rpm这个文件
 
-bb 这个选项就是制作二进制包(build binary package only from <specfile>)
 
对spec文件内容进行简单说明:
spec文件是制作rpm包的核心!
以#开头的是注释信息; Summary:对相关软件进行简单描述说明 Name:定义rpm包的名称 Version:定义软件的版本号 Release:发行版本 License:定义许可证 Group:说明软件属于哪种应用类型 Source:软件源码下载地址 URL:软件相关官方站点 Distribution: 发行版系列 Packager: 制作人的简单信息   %description:软件详细描述信息 %prep:软件编译之前的处理 %build:编译软件 %install:安装软件 %preun:定义卸载之前的动作 %files:指定要打包的软件包,这里是/usr/local/webserver/nginx  对于更详细的说明请参考官方资料:http://www.rpm.org/max-rpm/ch-rpm-inside.html
 
下面是apache的spec文件实例:
# # spec file for apache # Build 2012-07-17 # By opsren # Summary: High stability web server Name: Apache Version: 2.2Release: 22.el5License: 2-clause BSD-like license Group: Applications/Server Source: http://apache.etoak.com/httpd/httpd-2.2.22.tar.gz URL: http://apache.org Distribution: Centos/RedHat Packager: qiuzhijun <250621008@qq.com>   %description Apache is a first web server %prep tar zxf $RPM_SOURCE_DIR/httpd-2.2.22.tar.gz %build cd httpd-2.2.22 ./configure --prefix=/usr/local/webserver/apache --enable-so --enable-deflate --enable-headers --enable-mods-shared=all --enable-rewrite make %install cd httpd-2.2.22 make install %preun if [ -z "`ps aux | grep httpd | grep -v grep`" ];then pkill httpd >/dev/null exit 0 fi %files /usr/local/webserver/apache  以后对于相同或类似平台可以到其它服务器上进行rpm安装部署。
 
另外还有一种rpm打包的方法:rpm_create
这是一种新的打rpm的工具,不用spec语言,只需要会简单的shell命令,即可完成打包操作,非常方便,结合了spec语言和checkinstall,相比spec方法要简单很多!
 
官方站点:http://code.google.com/p/rpmcreate/
下载站点:wget http://rpmcreate.googlecode.com/files/rpm_create-1.7.5-9.x86_64.rpm
大家可以去官方站点参考!

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-09/70096.htm

转载于:https://www.cnblogs.com/hoys/archive/2012/09/11/2680676.html

简单制作RPM二进包实例(转)相关推荐

  1. OpenSees二次开发实例02

    一个记录器的二次开发过程 前言 过程 结语 前言 本文介绍了一个源代码中附带的记录器的二次开发过程,记录器的h和cpp文件是源代码自带的.这次花费了我3天的时间,才实现了记录器的添加. 过程 本记录器 ...

  2. HTML+CSS简单应用实例——购物网站的制作(二)注册页面

    HTML+CSS简单应用实例--购物网站的制作(二)注册页面 接上一篇文章,本片文章是注册页面. 下面是效果图: 分析:上方欢迎注册是DIV,下面是表单,点击登录按钮会出现注册成功提示.下方为脚本,同 ...

  3. 简单了解如何自己动手制作RPM包

    导读 RPM文件在Linux系统中的安装最为简便.以著名的图像处理软件XV为例,其RPM包xv-3.10a-13.i386.rpm可以在该程序的主页中下载取得. 我们介绍如何自己动手制作RPM包. 0 ...

  4. 【rpm】源码包制作rpm包|修改rpm、重新制作rpm包

    目录 前言 安装rpmbuild rpmbuild制作rpm 包 同时生成devel包 修改rpm.重新制作rpm包 RPM 打包 工具 SPEC文件 spec文件关键字说明大全 rpmbuild的目 ...

  5. linux安装大批量rpm包,linux制作rpm安装包

    linux制作rpm二进制安装包 有好多朋友问到怎么制作rpm包,可不可把其它服务器上编译好的软件目录复杂到其它服务器上直接应用等等.这里通过案例由简单到高级来一一讲解. 此方法是通过编写spec文件 ...

  6. 制作mysql rpm包_一步步制作RPM包

    一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根据我们的需求制作RPM安装包吧.先来说说基本布骤: 1.Planning what you want   ...

  7. linux下程序制作rpm包,制作rpm包

    这文章我不记得在那转的了,已经有一段时间了 如何在linux或CentOS下制作RPM包 但我觉得单纯明白用.spec生成rpm是不够的.常见有两个原因值得我们去了解用如何用源码制作rpm: 引用 1 ...

  8. Centos7利用fpm制作rpm包(fpm安装及使用)

    安装fpm 安装ruby yum -y install ruby rubygems ruby-devel 查看当前ruby源 gem source -l 添加国内源,删除国外源 gem sources ...

  9. 网络基本功(二十四):Wireshark抓包实例分析TCP重传

    转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 前文论述了TCP基础知识,从本节开始,通过TCP抓包实例来诊断TCP常见问题 ...

最新文章

  1. Activity的四种启动模式
  2. COM如何区分套间线程(apartment thread)和自由线程(free thread)
  3. html给图片做绝对定位,有关绝对定位的全面理解
  4. EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)
  5. 经典算法研究系列:七、深入浅出遗传算法,透析GA本质【转载】
  6. ArrayList add方法深度解析。
  7. 超界文字滚动 (id和类型两种实现方式)
  8. 我什么时候应该使用访客设计模式? [关闭]
  9. python中求众数_Python实现求众数的三种方法
  10. c语言有趣小程序,c语言小程序代码大全(9个经典的C语言小程序)
  11. Unity3D资源加密解决方案
  12. php ucfirst,Arale源码解析(3)——Base模块和Aspect模块
  13. 运行linux浏览器,开源也疯狂:5款Linux浏览器推荐
  14. emmc/ufs, sd
  15. Word查找替换详细用法及通配符一览表
  16. 凯利讯讲解为什么MOS管可以防止电源反接?
  17. 最新 | Windows和信创终端都能顺滑使用宁盾802.1X账密认证了
  18. java ascii 编码方式,Java 字符编码 ASCII、Unicode和UTF-8
  19. 检索报告计算机类,计算机类的检索报告.docx
  20. Python获取文件的行数和某一行的内容

热门文章

  1. ural 1012K-based Numbers. Version 2 1013. K-based Numbers. Version 3
  2. AngularJS Slider指令(directive)扩展
  3. [SCM]源码管理 - SVN:externals
  4. Iframe的高级操作
  5. .dll与.lib文件的区别
  6. 使用kalibr标定时的注意事项
  7. Faied to run MSBuild commond CmakeError
  8. 人工智能学c语言还是python-python深入学习好还是直接学人工智能好?
  9. (1)非对称加密——RSA——史上最通俗的小白可看懂!
  10. ipa 上传卡在鉴权_Application Loader上传app,一直卡在“正在通过 App Store 进行鉴定”...