Centos7利用fpm制作rpm包(fpm安装及使用)
生活随笔
收集整理的這篇文章主要介紹了
Centos7利用fpm制作rpm包(fpm安装及使用)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
安裝fpm
安裝ruby
yum -y install ruby rubygems ruby-devel查看當(dāng)前ruby源
gem source -l添加國內(nèi)源,刪除國外源
gem sources -a http://mirrors.aliyun.com/rubygems/ -r https://rubygems.org/安裝fpm
gem install fpm報(bào)錯(cuò):因?yàn)閒pm由ruby開發(fā),所以要升級(jí)ruby
升級(jí)ruby版本?
下載 GPG 公鑰
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 或 curl -sSL https://rvm.io/mpapis.asc | gpg2 --import 或 curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import(我的選擇)下載rvm及設(shè)置環(huán)境
curl -L http://get.rvm.io | bash -s stable source /usr/local/rvm/scripts/rvm查看現(xiàn)有ruby版本
rvm list known升級(jí)到2.4.0?
rvm install 2.4.0?再次安裝fpm
gem install fpmfpm制作rpm包
常用參數(shù)
- -s:指定源類型
- -t:指定目標(biāo)類型
- -n:指定包名字
- -v:版本
- --prefix:安裝xxx.rpm 安裝包的位置(指定安裝到的目錄)
- ?--rpm-digest:默認(rèn)md5
- --architecture:系統(tǒng)
- --epoch:未知
- --iteration:未知
- --description:描述
- --before-install:安裝包前要運(yùn)行的腳本
- --after-install:安裝包后要運(yùn)行的腳本
- --before-upgrade:升級(jí)包前要運(yùn)行的腳本
- --after-upgrade:升級(jí)包后要運(yùn)行的腳本
- --before-remove:刪除包之前要運(yùn)行的腳本
- --after-remove:刪除包后要運(yùn)行的腳本
- --package:打包后rpm的路徑
- --chdir:指定打包相對(duì)路徑
實(shí)例
#!/bin/bashPROJECT_ROOT=${PWD} TMP_ROOT=${PROJECT_ROOT}/target BIN_PATH=${PROJECT_ROOT}/bin PACKAGE_PATH=${PROJECT_ROOT}/packageclean() {rm -rf ${PACKAGE_PATH}rm -rf ${TMP_ROOT}rm -rf ${BIN_PATH} }build() {mkdir -p ${BIN_PATH}go build -o ${BIN_PATH}/nta-agent main.go || exit 2 }installl() {mkdir -p ${TMP_ROOT}install -d -p ${TMP_ROOT}/opt/nta-agent/serviceinstall -d -p ${TMP_ROOT}/opt/nta-agent/log/cp -prf bin/* ${TMP_ROOT}/opt/nta-agent/cp -prf service/* ${TMP_ROOT}/opt/nta-agent/service/cp -prf etc/* ${TMP_ROOT}/opt/nta-agent/ }package_rpm() {if [ x`which fpm` == "x" ];thenecho "we can't find fpm command!"exit 1fimkdir -p ${PACKAGE_PATH}rpm_name=nta-agentrpm_version=2.0.1echo "rpm name : ${rpm_name}"echo "rpm version : ${rpm_version}"echo "building rpm"fpm -s dir -t rpm -n ${rpm_name} -v ${rpm_version} \--prefix /opt \--rpm-digest md5 \--architecture x86_64 \--epoch `git rev-list HEAD | wc -l` \--iteration `git rev-list HEAD | wc -l` \--description `date +'%Y-%m-%dT%H:%M:%S'` \--before-install ${PROJECT_ROOT}/install/before-install \--after-install ${PROJECT_ROOT}/install/after-install \--before-upgrade ${PROJECT_ROOT}/install/before-upgrade \--after-upgrade ${PROJECT_ROOT}/install/after-upgrade \--before-remove ${PROJECT_ROOT}/install/before-remove \--after-remove ${PROJECT_ROOT}/install/after-remove \--package ${PACKAGE_PATH} \--chdir ${TMP_ROOT} || exit 1echo "Package: ${PACKAGE_PATH}/${rpm_name}-${rpm_version}\*.rpm has been generated" }case $1 in"clean")clean;;"build")build;;"install")installl;;"package")package_rpm;;*)cleanbuildinstalllpackage_rpm;; esac總結(jié)
以上是生活随笔為你收集整理的Centos7利用fpm制作rpm包(fpm安装及使用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bootstrap全局css样式
- 下一篇: Python 获取md5值(hashli