软件安装的常见方式:
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包。