FPM定制RPM包

软件安装的常见方式:

  1.编译安装:

    优点:可以定制化安装目录,按需开启功能等。

    缺点:需要查找并实验出合适的编译参数,诸如MySQL之类的软件编译耗时过长。

  2.yum安装软件

    优点:全自动化安装,不需要为依赖问题发愁。

    缺点:自主性太差,软件的功能、存放位置都固定好了,不易变更(定制rpm包恰好解决这一问题)

FPM打包工具:

  1.简介:    

    FPM的作者是Jordansissel

    FPM的GITHUB:https://github.com/jordansissel/fpm

    官网:http://fpm.readthedocs.io/en/latest/

    FPM功能简单的说就是将一种类型的包转换成另外一种类型

  

  2.FPM支持的源类型包:

    

  3.FPM支持的目标类型包:

    

  4.安装FPM工具:

    安装ruby和相关依赖本号大于1.8.5   

yum install ruby rubygems ruby-devel

[root@localhost hdlnmp]# rpm -qa ruby rubygems ruby-devel
ruby-2.0.0.648-36.el7.x86_64
rubygems-2.0.14.1-36.el7.noarch
ruby-devel-2.0.0.648-36.el7.x86_64

    查看当前使用的rubygem仓库

[root@localhost hdlnmp]# gem sources list
*** CURRENT SOURCES ***

https://rubygems.org/

    添加阿里云的rubygems仓库,移除原生的ruby仓库

[root@localhost hdlnmp]# gem sources -a http://mirrors.aliyun.com/rubygems/
http://mirrors.aliyun.com/rubygems/ added to sources

[root@localhost hdlnmp]# gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources

    

    安装fpm,gem从rubygem仓库安装软件类似yum从yum仓库安装软件

[root@localhost hdlnmp]# gem install --no-document fpm
Successfully installed fpm-1.11.0
1 gem installed

    测试是否安装成功:

[root@localhost hdlnmp]# fpm --version
1.11.0

FPM使用(以nginx为例):

  1.常用参数

  2.编写脚本(for --post-install):

[root@localhost shell]# cd /home/shell/

[root@localhost shell]# vim nginx_install_devel.sh
#!/bin/bash
#添加nginx用户和用户组
groupadd www
useradd -s /sbin/nologin -g www www
#创建nginx日志目录
mkdir -p /home/www/wwwlogs
chmod +w /home/www/wwwlogs
#创建网站根目录
mkdir -p /home/www/wwwroot
chown -R www.www /home/www/wwwroot
#创建nginx环境变量
ln -sf /usr/local/nginx/sbin/nginx /usr/bin/nginx

  注意:这样制作的rpm包安装之后无服务管理脚本,可将服务管理脚本内容写入post-install脚本中。

  3.制作rpm包:

[root@localhost shell]# fpm -s dir -t rpm -n nginx -v 1.16.0 -d 'pcre-devel,openssl-devel' --post-install /home/shell/nginx_install_devel.sh -f /usr/local/nginx/
Created package {:path=>"nginx-1.16.0-1.x86_64.rpm"}

  4.安装rpm包:

yum -y localinstall nginx-1.16.0-1.x86_64.rpm

  这个命令会自动安装rpm包的依赖,然后再安装rpm包。

    

    

    

原文地址:https://www.cnblogs.com/ltlinux/p/11975188.html