制作RPM包
1支持的源类型包
*dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm 对于rpm进行转换
gem 对于rubygem包进行转换
python 将python模块打包成相应的类型
2支持目标类型包
*rpm转换为rpm包 (主要支持红帽版本)
deb转换为deb包 (ubuntu )
solaris转换为solaris包
puppet转换为puppet包
3FPM常用参数
-s 指定源类型
-t 指定目标类型,即想要制作什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖他
-p 制作的rpm安装包存放路径,不想放在当前目录下可以指定
--post-install 软件包安装完成之后所要运行的脚本(同--offer-install)
--pre-install 软件包安装完成之前所要运行的脚本(同--before-install)
4基于FPM制作RPM包
4.1搭建Epel Yum源
搭建epel源的方法有很多
最后/etc/yum.repos.d里面有
CentOS-Base.repo CentOS-Media.repo eple.repo eple-testing.repo
4.2安装ruby环境和gem命令FPM
yum install -y ruby rubygems ruby-devel (安装)
gem install rubygems-update-v 2.3.0 (升级)
gem update --sysyem (升级rubygems版本)
gem sources -a http://mirrors.aliyun.com/rubygems/ (添加国内源)
gem sources --remove https://rubygems.org/ (移除国外源)
gem sources -l (查看当前源)
gem install fpm (安装FPM工具)
4.3打包Nginx生RPM包
vim nginx.sh (rpm包安装之前脚本)
#!/bin/bash
useradd -M -s /sbin/nologin nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx
fpm -s dir -t rpm -n nginx -v 1.16.1 -d'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx (生成RPM包)