Reference
Requirements
$ yum install ruby rubygems ruby-devel -y
$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem install arr-pm fpm
FPM 常用参数:
- -s:指定源类型
- -t:指定目标类型,即想要制作为什么包
- -n:指定包的名字
- -v:指定包的版本号
- -C:指定打包的相对路径
- -d:指定依赖于哪些包
- -f:第二次包时目录下如果有同名安装包存在,则覆盖它;
- -p:制作的rpm安装包存放路径,不想放在当前目录下就需要指定;
- –post-install:软件包安装完成之后所要运行的脚本;同–offer-install
- –pre-install:软件包安装完成之前所要运行的脚本;同–before-install
- –post-uninstall:软件包卸载完成之后所要运行的脚本;同–offer-remove
- –pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
- –prefix:制作好的rpm包默认安装路径;
支持的源类型包:
- dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
- rpm: 对rpm进行转换
- gem: 对rubygem包进行转换
- python: 将Python模块打包成相应的类型
支持的目标类型包:
- rpm: 转换为rpm包
- deb: 转换为deb包
- solaris: 转换为solaris包
- puppet: 转换为puppet包
网上基本都能查到fpm相关资料,有些参数可能新版的fpm中,变成了不推荐使用。想要了解最新的参数,可以使用命令查看帮助。
fpm -help
Remove Rexml
rexml broken in Ruby versions below 2.3
$ find / -name osxpkg.rb
$ vim osxpkg.rb
# require 'rexml/document' # stdlib
Shell
All flags should be before the first argument (stray flags found: ["--prefix"]
--post-install
不能放到最后,选项的顺序最好不要随意变换
打包
# daos_pre_install.sh
#!/bin/bash
echo "pre_install.sh"
scl enable devtoolset-9 bash
mkdir /usr/daos
exit $?
# daos_post_install.sh
#!/bin/bash
echo "post_install.sh"
cd /root/daos
scons --config=force --build-deps=yes install
exit $?
$ fpm -s dir -t rpm -n daos -v 1.2 \
-d python3-distro \
-d python-distro \
-d libuuid-devel \
-d openssl-devel \
-d valgrind-devel \
-d libunwind-devel \
-d libpmem-devel \
-d pandoc \
-d texlive \
-d texlive-xetex \
-d texlive-cjk \
-d texlive \
-d texlive-latex \
-d texlive-xetex \
-d texlive-collection-latexrecommended \
-d texlive-collection-latex \
-d texlive-xetex-def \
-d texlive-collection-xetex \
-d libcmocka-devel \
-d numactl-devel \
-d patchelf \
-d hwloc-devel \
-d boost-devel \
-d gcc \
-d gcc-c++ \
-d make \
-d automake \
-d cmake \
-d fuse3-devel \
-d json-c-devel \
-d lz4-devel \
-d libaio-devel \
-d openmpi-devel \
-d mpich-devel \
-d python3-devel \
-d golang \
-d libyaml-devel \
-d ipmctl \
-d libipmctl-devel \
-d devtoolset-9-gcc \
-d devtoolset-9-gcc-plugin-devel \
-d devtoolset-9-gcc-gfortran \
-d devtoolset-9-gcc-gdb-plugin \
-d devtoolset-9-gcc-c++ \
-d pandoc \
-d patchelf \
-d scons \
--pre-install /root/scripts/daos_pre_install.sh \
--post-install /root/scripts/daos_post_install.sh \
-f /root/daos/
安装
$ yum update -y && yum clean all && yum install -y epel-release centos-release-scl
$ yum localinstall -y daos-1.2-1.x86_64.rpm
网友评论