Use FPM tool to create an RPM package
This rpm package is made using the fpm tool, and FPM is very easy to use. This command can make the installation and uninstallation of the rpm package more elegant. You can make some preparations before installation, after the installation, you can finish some work, and make some preparations before detaching the software. For example, you can check whether the corresponding service is stopped or not, you just need to define these as scripts, and you can easily implement them by specifying the corresponding options in fpm.
The parameters involved here are:
-- Pre-install FILE: indicates the script to be run before installation.
-- Post-install FILE: indicates the script to be run after installation.
-- Pre-uninstall FILE: indicates the script to be run before uninstalling
-- Post-uninstall FILE: indicates the script to be run after uninstallation.
1. Install the fpm Tool
# Yum-y install ruby rubygems ruby-devel rpm-build
# Gem sources-a http://ruby.taobao.org/
# Gem sources-r https://rubygems.org/
# Gem install fpm
2. Package luajit
# Mkdir/tmp/luajit
# Cd/usr/local/src
# Wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
# Tar xvzf LuaJIT-2.0.4.tar.gz
# Cd LuaJIT-2.0.4
# Make PREFIX =/usr
# Make install PREFIX =/usr DESTDIR =/tmp/luajit
# Fpm-s dir-t rpm-n LuaJIT-v 2.0.4 -- iteration 1. el7-C/tmp/luajit/-p/root -- description 'luajit rpm package' -- url 'HTTP: // luajit.org'
3. Pack tengine
# Mkdir/tmp/tengine
# Cd/usr/local/src
# Wget-O lua-nginx-module-0.9.16.tar.gz https://codeload.github.com/openresty/lua-nginx-module/tar.gz/v0.9.16
# Tar xvzf lua-nginx-module-0.9.16.tar.gz
# Wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gz
# Tar xvzf tengine-2.1.0.tar.gz
# Cd tengine-2.1.0
#./Configure -- prefix =/opt/share/nginx \
-- Sbin-path =/opt/sbin/nginx \
-- Conf-path =/opt/etc/nginx. conf \
-- Error-log-path =/opt/log/nginx/error. log \
-- Http-log-path =/opt/log/nginx/access. log \
-- User = nginx \
-- Group = nginx \
-- Http-client-body-temp-path =/opt/lib/nginx/tmp/client_body \
-- Http-proxy-temp-path =/opt/lib/nginx/tmp/proxy \
-- Http-uwsgi-temp-path =/opt/lib/nginx/tmp/uwsgi \
-- Pid-path =/opt/run/nginx. pid \
-- Lock-path =/opt/lock/subsys/nginx \
With-http_ssl_module \
With-http_realip_module \
With-http_addition_module \
With-http_gzip_static_module \
With-http_gunzip_module \
With-http_secure_link_module \
With-http_stub_status_module \
With-http_sysguard_module \
-- With-file-aio \
-- Add-module = ../lua-nginx-module-0.9.16 \
-- With-cc-opt = '-g-O2-fstack-protector -- param = ssp-buffer-size = 4-Wformat-Werror = format-security '\
-- With-ld-opt = '-Wl,-Bsymbolic-functions-Wl,-z, relro'
# Make
# Make install DESTDIR =/tmp/tengine
# Cd/tmp/tengine/opt
# Mkdir-p lib/nginx/tmp/{client_body, proxy, uwsgi}
# Mkdir-p lock/subsys/nginx
# Cd/tmp/tengine
# Mkdir etc/rc. d/init. d
# Cp/etc/rc. d/init. d/nginx etc/rc. d/init. d
# Mkdir etc/logrotate. d
# Cp/etc/logrotate. d/nginx etc/logrotate. d
# Mkdir tmp
Script to be run before installation
# Vim tmp/install_before.sh
#! /Bin/bash
[[-N 'ps aux | grep ngin [x] '] & killall-9 nginx
[[-E/opt/etc/nginx] & cp-a/opt/etc/nginx // opt/etc/nginx _ $ (date + % F _ % H -% M-% S)
Script to be run after installation
# Vim tmp/install_after.sh
#! /Bin/bash
[[-N 'getent group nginx'] | groupadd-r nginx
[[-N 'getent passwd nginx'] | useradd nginx-r-g nginx-s/sbin/nologin
[[-N 'getent group www-data'] | groupadd-r www-data
[[-N 'getent passwd www-data'] | useradd www-data-r-g www-data-s/sbin/nologin
Mkdir-p/data/log/nginx
If [[-e/var/log/nginx]; then
If [[-L/var/log/nginx]; then
Rm-f/var/log/nginx & ln-s/data/log/nginx/var/log/nginx
Else
Mv/var/log/nginx/*/data/log/nginx/
Rm-rf/var/log/nginx & ln-s/data/log/nginx/var/log/nginx
Fi
Else
Ln-s/data/log/nginx/var/log/nginx
Fi
/Opt/sbin/nginx-c/opt/etc/nginx. conf
Pack tengine
# Chmod + x tmp/*. sh
# Fpm-s dir-t rpm-n tengine-v 2.1.0 -- iteration 1. waf. el7-C/tmp/tengine/-p/root -- description 'tengine rpm package' -- url 'HTTP: // tengine.taobao.org '-- pre-install/tmp/tengine/tmp/install_before.sh -- post-install/tmp/tengine/tmp/install_after.sh
View rpm software package information
# Rpm-qp -- scripts/root/tengine-2.1.0-1.waf.ele.el7.x86_64.rpm
Final Installation Steps
# Yum-y install pcre-devel openssl-devel
# Rpm-Uvh LuaJIT-2.0.4-1.el7.x86_64.rpm
# Rpm-Uvh tengine-2.1.0-1.waf.el7.x86_64.rpm
You may also like the following RPM articles:
Use FPM to quickly create an RPM package
Getting started with creating an RPM package
In Linux, how does one create an RPM package?
Create your own rpm package
Directory structure and configuration after rpm installation in Linux
Brief Introduction and demo of rpm and yum
RedHat Linux --- rpm command details
Use FPM to easily create an RPM package
This article permanently updates the link address: