使用fpm工具--定制rpm包

fpm定制rpm包

因为centos7的yum安装的ruby版本是2.0,不支持下载比较高版本的rubygem

安装依赖:

yum update -y

yum install ruby-devel ruby-rdoc gcc gcc-c++ rpm-build curl libyaml-devel unzip

得到rubygem的包并解压:

mkdir -p /home/tools && cd /home/tools

wget -c https://rubygems.org/rubygems/rubygems-2.6.12.zip

unzip rubygems-2.6.12.zip

移除原生的ruby仓库,添加国内仓库

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

配好环境开始gem安装

cd /home/tools/rubygems-2.6.12 && ruby  setup.rb

gem install json_pure

gem install bundler -v 1.17.3

gem install ffi -v 1.9.18

gem install fpm

开始定制

fpm -s dir -t rpm -n nginx -v 1.10.2 --iteration 1 -C . -f --vendor '[email protected]' --description 'tzk Nginx' --url 'www.dtstack.com' -m 'aike' -d "dtstack-nginx"  --after-install ./opt/dtstack/nginx/post-script.sh

 

-s: 指定原类型

-t: 指定目标类型

-n: 指定包名

-v: 指定包版本

-C: 指定打包的相对路径

-f: 第二次打包时如果目录下有同名的包,则强行覆盖

-m: 指名作者

-d: 指明依赖哪些包

--iteration: 包的迭代版本

--vendor: 包的发行者

--description: 描述包的信息

--url: Add a url for this package

--after-install: 软件包安装后执行的脚本(同--post-install)

--before-install: 软件包安装前执行的脚本(同--pre-install)

关于安装前、安装后执行的脚本:

  • 脚本的位置随便放在哪里,把路径写正确就行(绝对路径、相对路径皆可用)

  • **rpm -qp --scripts [rpm包名]:**查看定制好的rpm包的安装前、安装后的脚本

    • -q: 查询

      -p: 包名

      –scripts: 查看脚本内容


解压缩rpm包:

rpm2cpio nginx.rpm | cpio -idmv

rpm2cpio可以将rpm格式的文件转换成cpio格式

cpio是用来建立、还原备份档的工具程序

-d: 创建所需目录

-i: 使用Copy-in mode,从归档中复制出文件或者列出文件内容

-m: 创建文件时保留文件的修改时间

-v: 列出已处理文件的信息


你可能感兴趣的:(linux)