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 包)
来源: http://www.bubuko.com/infodetail-3203494.html