最近又在centos6.4下折腾tengine了,刚好不久前看了rpm包的制作方法,所以又有了搞个rpm包的想法。

1 安装centos的开发环境集成包及tengine的依赖包

1 yum groupinstall "Development Tools"
2 yum install pcre-devel
3 yum install openssl openssl-devel

2 创建tengine rpm包,用非root用户test

1 su - test
2 mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

3 在家目录编写.rpmmacros(就是上一篇说的自定义制作路径的文件)

1 #.rpmmacros
2 %_topdir /home/test/rpmbuild
3 %_tmppath /home/test/rpmbuild/tmp
4 %buildroot /home/test/rpmbuild/BUILDROOT
5 %_prefix   /

4 在家目录里创建制作目录rpmbuild

1 rpmbuild/
2 ├── BUILD
3 ├── RPMS
4 ├── SOURCES
5 │   └── tengine-1.5.0.tar.gz
6 ├── SPECS
7 │   └── tengine.spec
8 ├── SRPMS
9 └── tmp

5 tengine.spec内容

01 Name:       tengine
02 Version:    1.5.0
03 Release:    1
04 Vendor:     Taobao
05 Summary:    GUN Tengine X86_64
06 License:    GPL
07 Source:     tengine-1.5.0.tar.gz
08 Group:      System Enviroment/Daemons
09 URL:        http://tengine.taobao.org/
10 Packager:   guol@oschina.com
11 %description
12 Taobao tengine package
13  
14  
15 %prep
16 %setup -q
17 ./configure  --prefix=/etc/nginx/
18  
19 make
20 %install
21 make DESTDIR=$RPM_BUILD_ROOT install
22 %clean
23 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
24 make clean
25  
26 %files
27 %defattr (-,root,root)
28 /etc/nginx/

注意:在centos 6.0上使用rpmbuild制作rpm包如果出现File not found: /root/rpmbuild/BUILDROOT/…的错误,看是centos 6中的rpmbuild topdir已经改变,为了能兼容centos 5的spec文件,需要对topdir进行修改

1 编辑/usr/lib/rpm/macros文件:
2 %_topdir                %{getenv:HOME}/rpmbuild
3 修改为:
4 %_topdir                %{_usrsrc}/

6 开始生产rpm包

1 #在test家目录
2 rpmbuild -ba ./rpmbuild/SPECS/tengine.spec

如果没有错误,则会在rpmbuild/RPMS目录下生成相关rpm包。这只是简单的制作过程,如果要做深度定制,可以针对安装前后执行的脚本做定制。

注:以上配置文件在centos6.4上测试通过

tengine rpm制作的更多相关文章

  1. fpm rpm制作

    使用fpm命令制作rpm包并安装 工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 ...

  2. pypcap rpm制作

    1.下载地址 https://pypi.org/project/pypcap/#history 2.下载后,解压并制作rpm tar -xvf pypcap-1.2.3.tar.gz python s ...

  3. MySQL5.6.12 rpm制作及及自动化部署安装

    转自:http://blog.itpub.net/29254281/viewspace-1268918/ 首先,下载rpmbuildyum install rpm-build -y它是Red Hat用 ...

  4. kernel 4.18.18 rpm 制作

    1.下载kernel源码: wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.18.18.tar.gz 2.解压源码 ...

  5. RPM制作

    http://blog.csdn.net/justlinux2010/article/details/9905425

  6. 一步步制作RPM包

    一步步制作RPM包 来源 http://blog.51cto.com/laoguang/1103628 一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根 ...

  7. RPM包制作教程

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  8. 制作rpm包步骤

    由于项目需要,需要自行制作rpm包.比较全面的可以参考如下链接: http://blog.chinaunix.net/uid-23069658-id-3944462.html 大致框架如下: 1,安装 ...

  9. 烂泥:Linux源码包制作RPM包之Apache

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能 ...

随机推荐

  1. Drawable与Bitmap(转)

    Drawable                                                                                 以下这个是测试加载10 ...

  2. Android ViewPager 打造炫酷欢迎页

    Android ViewPager 打造炫酷欢迎页 ViewPager是Android扩展v4包中的类,这个类可以让用户切换当前的View.对于这个类的应用场景,稍加修改就可以应用到多个环境下.比如: ...

  3. JavaScript省市联动

    <html> <head> <title>JS省市二级联动菜单,整理收集.</title> </head> <body bgcolor ...

  4. dotnet与各种数据库类型对应关系

    Data Provider Parameter format sqlclient @parametername oledb ?    mark odbc ?   mark oracleclient : ...

  5. .NET Framework 中的类型系统的两个基本点

    它支持继承原则. 类型可从称为基类型的其他类型派生. 派生类型继承基类型的方法.属性和其他成员(存在一些限制). 之后,基类型可从某些其他类型派生,这种情况下,派生类型继承其层次结构中这两个基类型的成 ...

  6. [个人原创]关于java中对象排序的一些探讨(二)

    2.  使用Collections.sort()方法 Collections类中提供了诸多静态方法,诸如addAll(),max()等等.当自己相对Collection接口下的类处理的时候,可以看看这 ...

  7. JavaScript--声明提前

    声明提前(hoist): 在正式执行程序前,都会将所有var声明的变量和function声明的函数提前到*当前作用域*的顶部集中创建. 但是,赋值留在原地. console.log(a);//unde ...

  8. 何为 pimpl ?

    前言 你是否总因头文件包含冲突而苦恼? 你是否因头文件包含错乱而苦恼? 你是否因封装暴露了数据而苦恼? 你是否因经常改动实现而导致重新编译而苦恼? 在这里, 这些问题都不是问题, 跟随作者, 揭秘pi ...

  9. window.showModalDialog以及window.open用法简介

    .可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象.例如:------------------------------parent.htm<script& ...

  10. php 4.X与5.x版本构造函数区别与类的继承

    今天看ecshop源码的时候发现 构造函数是和类名一样,以前没接触过,一下子疑惑啦 HP4.x 版本: PHP 4.x 的构造函数名与类名相同.        注意:在子类里父类的构造函数不会自动执行 ...