Centos打包tengine制作rpm安装包教程
确认环境
在制作rpm安装包之前,需要先确认当前系统环境中是否安装有rpm-build、rpmlint等工具。可以通过以下命令来确认:
$ rpm -qa | grep rpm-build
$ which rpmbuild
$ which rpmlint
如果输出结果为空,则需要先安装这些工具:
$ sudo yum install rpm-build rpmlint
安装tengine
在制作安装包之前,先安装tengine并做好相关配置。可以按照以下步骤进行:
- 下载tengine安装包:
可以在官网http://tengine.taobao.org中选择需要的版本进行下载,例如:
$ wget http://tengine.taobao.org/download/tengine-2.2.3.tar.gz
- 解压并编译安装
$ tar xvzf tengine-2.2.3.tar.gz
$ cd tengine-2.2.3
$ ./configure
$ make
$ sudo make install
新建rpm包目录
新建一个目录来存放打包之后生成的rpm安装包:
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
编写spec文件
选择一个spec文件作为模板并进行修改。我们可以使用系统自带的/usr/share/doc/rpm-*/specfile-example.spec
作为参考模板。以下是一个示例文件:
%define nginx_version 2.2.3
%define package_name tengine
%define package_rel 1
Name: %{package_name}
Version: %{nginx_version}
Release: %{package_rel}%{?dist}
Summary: The nginx web server and reverse proxy server
Group: System Environment/Daemons
License: BSD
URL: http://tengine.taobao.org/
Source0: http://tengine.taobao.org/download/tengine-%{nginx_version}.tar.gz
BuildRequires: openssl-devel
BuildRequires: pcre-devel
BuildRequires: zlib-devel
%description
Nginx ("engine X") is a high-performance web and reverse proxy server.
%prep
%setup -q -a 0
%build
./configure
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc HTML_changelog
%{_bindir}/*
%{_sbindir}/*
%{_datadir}/%{package_name}
%changelog
打包rpm安装包
在完成spec文件的准备后,使用以下命令来生成rpm安装包:
$ rpmbuild -ba ~/rpmbuild/SPECS/tengine.spec
这里使用的是在~/rpmbuild/SPECS/
目录下创建的tengine.spec
作为spec文件的文件名。
生成的安装包将会保存在~/rpmbuild/RPMS/{yourarch}/
目录中。
使用rpm安装包
最后,我们可以使用生成的rpm安装包进行安装:
$ sudo rpm -ivh tengine-2.2.3-1.el7.x86_64.rpm
安装完成后,我们可以使用以下命令来测试是否安装成功:
$ sudo systemctl start tengine
$ curl http://localhost
示例说明
以CentOS7为例,如果在安装nginx的过程中需要开启http2功能,则可以按照以下步骤:
- 准备工具和安装包
$ sudo yum install -y gcc-c++ make wget curl perl perl-devel pcre pcre-devel openssl openssl-devel zlib-devel
$ wget http://nginx.org/download/nginx-1.10.1.tar.gz
- 生成spec文件
使用以下命令来生成一个参考的spec文件:
$ rpmbuild -bp nginx.spec
其中nginx.spec可以使用自带的/etc/nginx.spec,不过需要做一定的修改。修改后的文件保存在~/rpmbuild/SPECS/
目录下。
- 添加http2配置
在spec文件中的%build
和%install
段中添加--with-http_v2_module
参数即可开启http2功能:
...
%build
./configure --with-http_v2_module
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
...
- 打包rpm安装包
打包命令和之前相同:
$ rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
- 安装rpm安装包
安装命令同之前相同:
$ sudo rpm -ivh nginx-1.10.1-1.el7.x86_64.rpm
安装完成后,即可验证http2功能是否开启:
$ curl -v --http2 https://localhost