首页 > 代码库 > tengine rpm制作

tengine rpm制作

最近又在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上测试通过