Centos打包tengine制作rpm安装包教程

  • Post category:Linux

Centos打包tengine制作rpm安装包教程

确认环境

在制作rpm安装包之前,需要先确认当前系统环境中是否安装有rpm-build、rpmlint等工具。可以通过以下命令来确认:

$ rpm -qa | grep rpm-build
$ which rpmbuild
$ which rpmlint

如果输出结果为空,则需要先安装这些工具:

$ sudo yum install rpm-build rpmlint

安装tengine

在制作安装包之前,先安装tengine并做好相关配置。可以按照以下步骤进行:

  1. 下载tengine安装包:

可以在官网http://tengine.taobao.org中选择需要的版本进行下载,例如:

$ wget http://tengine.taobao.org/download/tengine-2.2.3.tar.gz
  1. 解压并编译安装
$ 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功能,则可以按照以下步骤:

  1. 准备工具和安装包
$ 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
  1. 生成spec文件

使用以下命令来生成一个参考的spec文件:

$ rpmbuild -bp nginx.spec

其中nginx.spec可以使用自带的/etc/nginx.spec,不过需要做一定的修改。修改后的文件保存在~/rpmbuild/SPECS/目录下。

  1. 添加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}
...
  1. 打包rpm安装包

打包命令和之前相同:

$ rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
  1. 安装rpm安装包

安装命令同之前相同:

$ sudo rpm -ivh nginx-1.10.1-1.el7.x86_64.rpm

安装完成后,即可验证http2功能是否开启:

$ curl -v --http2 https://localhost