CentOS FPM 打 RPM 包

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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容