|
|
最近又在centos6.4下折腾tengine了,刚好不久前看了rpm包的制作方法,所以又有了搞个rpm包的想法。
http://tengine.taobao.org/download/tengine-2.1.0.tar.gz
1 安装centos的开发环境集成包及tengine的依赖包
yum groupinstall "Development Tools"
yum install pcre-devel
yum install openssl openssl-devel
2 创建tengine rpm包,用root
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
3 在家目录编写.rpmmacros(就是上一篇说的自定义制作路径的文件)
# cat ~/.rpmmacros
#.rpmmacros
%_topdir /root/rpmbuild
%_tmppath /root/rpmbuild/tmp
%buildroot /root/rpmbuild/BUILDROOT
%_prefix /
4 在家目录里创建制作目录rpmbuild
rpmbuild/
├── BUILD
├── RPMS
├── SOURCES
│ ├── fastcgi_params
│ ├── nginx.conf
│ └── tengine-2.1.0.tar.gz
│ └── sxx.example.com
├── SPECS
│ └── tengine.spec
├── SRPMS
└── tmp
5 tengine.spec内容
- Name: tengine
- Version: 2.1.0
- Release: 1
- Vendor: Taobao
- Summary: GUN Tengine X86_64
- License: GPL
- Source: tengine-2.1.0.tar.gz
- Group: System Enviroment/Daemons
- URL: http://tengine.taobao.org/
- Packager: guol@oschina.com
- Source1: nginx.conf
- Source2: fastcgi_params
- Source3: sxx.example.com
- BuildRequires: gcc
- Requires: openssl,openssl-devel,pcre-devel,pcre
- %description
- Taobao tengine package
- %prep
- %setup -q
- ./configure --prefix=/usr/local/nginx
- make
- %install
- make DESTDIR=$RPM_BUILD_ROOT install
- %{__install} -p -D %{SOURCE1} $RPM_BUILD_ROOT/usr/local/nginx/conf/nginx.conf #要大写
- %{__install} -p -D %{SOURCE2} $RPM_BUILD_ROOT/usr/local/nginx/conf/fastcgi_params
- %{__install} -p -D %{SOURCE3} $RPM_BUILD_ROOT/usr/local/nginx/conf/vhost/sxx.example.com
- %pre
- # 1:表示安装 2:表示升级 0:表示卸载
- if [ $1 == 1 ]; then
- if cat /etc/passwd | grep -q -w www ; then
- echo "Info: www is exist. not create"
- else
- /usr/sbin/useradd -r www -s /sbin/nologin 2> /dev/null
- fi
- fi
- %clean
- [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
- make clean
- %files
- %defattr (-,root,root)
- /usr/local/nginx
6 开始生产rpm包
rpmbuild -ba ./rpmbuild/SPECS/tengine.spec
如果没有错误,则会在rpmbuild/RPMS目录下生成相关rpm包。这只是简单的制作过程,如果要做深度定制,可以针对安装前后执行的脚本做定制。 |
|
|