最近又在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上测试通过
原文地址:http://www.cnblogs.com/ruiy/p/tengineRPMBuild.html