fpm制作FPM软件包

大前提是nginx服务必须提前搭好

centOS版本要用7.6

安装epel源 (电脑必须能上网)

1、支持的源类型包:

  •  dir:将目录打包成所需要的类型,可以用于源码编译安装的软件包
  •  rpm:对rpm进行转换
  •  gem:对rubygem包进行转换
  •  python:将python模块打包成相应的类型

2、支持的目标类型包:

  • rpm:转换成rpm包:红帽类型系统
  • deb:转换成deb包:ubuntu类型系统
  • solaris:转换成solaris包
  • puppet:转换成puppet包

2、FPM常用参数

  • -s:指定原类型
  • -t:指定目标类型
  • -n:指定包名
  • -v:指定版本号
  • -C:指定打包的相对路径
  • -d:指定依赖包
  • -f:第二次执行时覆盖同名的包
  • -p:指定制作的rpm包的存放路径
  • --post-install:软件包安装完成后要执行的脚本;同--offer-install
  • --pre-install:软件包安装完成前要执行的脚本;同--before-install
  • --post-uninstall:软件包卸载完成后要执行的脚本;同--offer-remove
  • --pre-uninstall:软件包卸载完成前要执行的脚本;同--before-remove
  • --prefix:rpm包默认安装路径

首先关闭防火墙

[root@localhost ~]# tar xf epel-release-latest-7.noarch.rpm

[root@localhost yum.repos.d]# ls
a CentOS-Media.repo epel-testing.repo
CentOS-Base.repo epel.repo local.repo

##yum路径下需要这四个repo文件

[root@localhost yum.repos.d]# yum clean all && yum makecache

[root@localhost yum.repos.d]# yum -y install ruby rubygems ruby-devel   rpm-build

[root@localhost ~]# gem install rubygems-update -v 2.3.0  ##更新最新版本,版本根据下一条命令的报错来安装

[root@localhost ~]# gem update --system    #升级rubygems版本

[root@localhost ~]# gem sources -l  #查看当前源

[root@localhost ~]# gem sources -a http://mirrors.aliyun.com/rubygems/       ##国内源添加

[root@localhost ~]# gem install fpm    ##安装fpm工具

[root@localhost ~]# yum source --remove https://rubygems.org/    ##

[root@localhost ~]# vi nginx.sh

#!/bin/bash
useradd -M -s /sbin/nologin nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
/usr/local/nginx/sbin/nginx 

[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.16.0 -d 'pcre-devel,zlib-devel,openssl-devel' -f --post-install /root/nginx.sh /usr/local/nginx

测试

必须提前安装好  pcre-devel  zlib-devel  opeensshl-devel

rm -rf /usr/local/nginx
rm -rf /usr/src/nginx-1.16.0
userdel -r nginx
killall -9 nginx

rpm -ivh mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

nginx  ##手动启动nginx 脚本无法启动

netstat -anpt |grep nginx ##查看是否开启

完成

原文地址:https://www.cnblogs.com/maoyanqing/p/11521894.html