最近又在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. Content Provider Basics ——Content Provider基础

    A content provider manages access to a central repository of data. A provider is part of an Android ...

  2. python中的generator, iterator, iterabel

    先来看看如果遇到一个对象,如何判断其是否是这三种类型: from types import GeneratorType from collectiuons import Iterable, Itera ...

  3. SQL 里面的COALESCE函数

    在SQL里面除了is null 还有这样一个还用的方法 COALESCE(值[, ...]) select COALESCE(NULL,NULL,'AAAA') -> 'AAAA' 意思是前面的 ...

  4. C#设置IP地址,启用禁用适配器

    界面效果图如下: 报表界面 说下关键代码 需要开启 Windows Management Instrumentation服务(默认已经开启),在程序中需要增加 Management引用. 主要有Net ...

  5. A simple stack

    // simple stack.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include<iostream>using na ...

  6. pugixml使用教程

    pugixml介绍 pugixml是一个高性能.轻量级并且简单易用的xml解析库,支持UTF8 encoding.Little-endian UTF16.Big-endian UTF16.UTF16 ...

  7. 【BZOJ1901】Dynamic Rankings

    Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是 ...

  8. 当OOP语言RAII特性发展到functional形式的极致

    本文主要站在C++程序员的思维角度思量. functional之路 lambda表达式 lambda表达式,是一段代码片段.函数实现体中出现的可重用的代码块. 在C++之前,C语言最小可复用流程模块, ...

  9. 富文本web编辑器(UEditor)

    展示效果:

  10. java获得url里面所带参数的值

    url: http://localhost:8080/test/list?p=1&d=2014 要获得所带参数p和d的值,方法如下: int p = Integer.parseInt(requ ...