使用fpm工具制作rpm包

本次rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装、卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前也可以做一些准备,比如检测一下相应的服务是否停止了,在卸载软件再做一些扫尾的工作,只要把这些定义成一个个脚本,fpm中指定相应的选项即可轻松实现。这里涉及的参数是:
--pre-install FILE:表示安装之前所要运行的脚本
--post-install FILE:表示安装之后所要运行的脚本
--pre-uninstall FILE:表示卸载之前所要运行的脚本
--post-uninstall FILE:表示卸载之后所要运行的脚本

1、fpm工具安装

# 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、打包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、打包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/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

安装之前所要运行的脚本
# vim tmp/install_before.sh


1

2

3

4


#!/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)

安装之后所要运行的脚本

# vim tmp/install_after.sh


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22


#!/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/nginx.conf

打包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

rpm软件包信息查看
# rpm -qp --scripts /root/tengine-2.1.0-1.waf.ele.el7.x86_64.rpm

最终的安装步骤

# yum -y install pcre pcre-devel openssl 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

时间: 2024-08-24 07:33:28

使用fpm工具制作rpm包的相关文章

采用fpm工具制作rpm包

本次rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前也可以做一些准备,比如检测一下相应的服务是否停止了,在卸载软件再做一些扫尾的工作,只要把这些定义成一个个脚本,fpm中指定相应的选项即可轻松实现.这里涉及的参数是:--pre-install FILE:表示安装之前所要运行的脚本--post-install FILE:表示安装之后所要运行的脚本--pre-uninstall FILE:

轻松使用Fpm封装制作Rpm包 --Linux

关于FPM的介绍 https://docs.google.com/present/view?id=0Aa9liCTsAyzRZGNtd3dkOTRfMTdmczY2azlkcg&hl=en FPM功能简单说就是将一种类型的包转换成另一种类型. 支持的源类型包:"dir":将目录打包成所需要的类型,可以用于源码编译安装的软件包 "rpm":对rpm进行转换 "gem":对rubygem包进行转换 "python":将py

fpm工具来制作rpm包软件

第1章 rpm包的制作 1.1 fpm的概念介绍 FPM功能简单说就是将一种类型的包转换成另一种类型 1.1.1.支持的源类型 类型 说明 dir?? 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm?? 对rpm进行转换 gem?? 对rubygem包进行转换 python 将python模块打包成相应的类型 1.1.2 支持的目标类型包 类型 说明 rpm??? 转换为rpm包 deb??? 转换为deb包 solaris 转换为solaris包 puppet 转换为puppe

fpm制作rpm包

一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特别是一些公司推行自动化,编译安装也不方便,容易出错.这是rpm包就很有用,废话少说,开始制作rpm包之旅吧. 二.rpm制作工具-fpm FPM功能简单说就是将一种类型的包转换成另一种类型.对!就是简单易懂,不废话. 三.fpm软件的参数介绍 1.支持的源类型包 dir 将目录打包成所需要的类型,可

Fpm 之 Nginx rpm 包制作

Fpm 之 Nginx rpm 包制作 一.下载nginx编译安包机器上 wget http://nginx.org/download/nginx-1.12.2.tar.gz 二.安装nginx的编译所需的依赖包 yum -y install pure lib gcc-c++ openssl openssl-devel 三.编译安装nginx tar -zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2 ./configure --prefix=/app/nginx

FPM简介(定制rpm包)

FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前也可以做一些准备,比如检测一下相应的服务是否停止了,在卸载软件再做一些扫尾的工作,只要把这些定义成一个个脚本,fpm中指定相应的选项即可轻松实现.FPM的github: https://github.com/jordansissel/fpm FPM安装 gem sources –a http://m

通过nginx源码包制作rpm包

目录 目录... 1 版权声明:... 2 文档信息:... 2 一.通过nginx源码包制作rpm包... 2 1.制作前环境准备:... 3 2.创建普通用户... 3 二.编写spec规则... 3 1.在模板里添加规则... 3 2.关于保存*.spec报错的解决... 4 2.1解决办法:... 5 2.2使用rpmbuild命令生成 rpm包... 5 三.在其他主机测试rpm包... 5 1. 需要按照依赖包... 5 2. 上传并安装nginxRPM包... 5 3. 查看端口开

手动制作rpm包

制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录: BUILD        ————编译相关源码包时的工作目录: RPMS         ————生成的二进制格式的RPM包存放的位置: SOURCES ————程序的源码文件及其其他辅助文件的存放位置: SPCES        ————spec文件的存放位置: SRPMS      ————生成的SRC格式的RPM包存放位置: 如果用户目录主目录下没有类似目录结构,可以通过一个工具软件

速成制作rpm包

FPM 由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包.通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐.这就用到了FPM.FPM功能简单说就是将一种类型的包转换成另一种类型.FPM是Ruby模块,其实打包时也是调用rpmbuild命令. 支持的源类型包: dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm 对rpm进行转换 gem 对rubygem包进行转换 python 将python模块打包