-
支持的 源类型包
① dir : 将目录打包成所需要的类型, 可用于源码编译安装软件包 ② rpm : 对 rpm 包进行转换 ③ gem : 对 rubygem 包进行转换 ④ python : 将 python 模块打包成响应的类型
-
支持的 目标类型包
① rpm : 转换为 rpm 包 ② deb : 转换为 deb 包 ③ solaris : 转换为 solaris 包 ④ puppet : 转换为 puppet 模块
-
FPM 安装 及 使用帮助 : FPM 基于 ruby , 需要首先安装 ruby 环境.
ruby > 1.8.5 $ yum install ruby rubygems ruby-devel gcc make libffi-devel -y $ yum install rpm-build -y # fpm 依赖 rpmbuild $ gem sources list $ gem sources --remove https://rubygems.org/ $ gem sources --add https://ruby.taobao.org $ gem install fpm # for centos7 $ gem install json -v 1.8.3 # for centos6 $ gem install fpm -v 1.3.3 # for centos6 $ fpm --help -s 指定源类型 -t 指定目标类型,即想要制作为什么包 -n 指定包的名字 -v 指定包的版本号 -C 指定打包的相对路径 Change directory to here before searching forfiles -d 指定依赖于哪些包 -f 第二次打包时目录下如果有同名安装包存在,则覆盖它 -p 输出的安装包的目录,不想放在当前目录下就需要指定 --post-install 软件包安装完成之后所要运行的脚本;同--after-install --pre-install 软件包安装完成之前所要运行的脚本;同--before-install --post-uninstall 软件包卸载完成之后所要运行的脚本;同--after-remove --pre-uninstall 软件包卸载完成之前所要运行的脚本;同--before-remove --description
-
示例: 定制 nginx rpm 包
$ yum -y install pcre-devel openssl-devel libzip $ useradd nginx -M -s /sbin/nologin $ tar xf nginx_1.10.tar.gz $ cd nginx_1.10 $ ./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module $ make && make install $ echo "nginx-1.10.2" > /opt/nginx/version $ vim /tmp/nginx_rpm.sh #!/bin/bash useradd nginx -M -s /sbin/nologin $ fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel,libzip' --post-install /tmp/nginx_rpm.sh -f /opt/nginx # 注意此处的 绝对路径. $ rpm -qpl nginx-1.6.2-1.x86_64.rpm # 查看软件包内容.
有用的命令.
$ yum provides *bin/prove
provides Find what package provides the given value
resolvedep Determine which package provides the given dependency
$ tar -tvf new.tgz # 查看包的内容, 不解压包.
$ make install DESTDIR=/tmp/installdir/
$ getent passwd root # 查看手否存在用户root
root:x:0:0:root:/root:/bin/bash
$ rpm -qp --scripts tengine-2.1.0-1.el6.x86_64.rpm # 查看 rpm 保存的脚本信息