使用FPM打包工具打rpm包

一:安装ruby环境和gem命令

fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5# yum -y install ruby rubygems ruby-devel
查看当前ruby源  # gem source -l
添加国内源# gem sources -a http://mirrors.aliyun.com/rubygems/
删除国外源# gem sources --remove  https://rubygems.org/
安装fpm 可能要失败gem source -u #更新源或者 不行就 -c # gem install fpm
我这里解决方法安装旧版本的fpm# gem install fpm -v 1.4.0# gem -v

报错解决:

解决:
因为系统内json默认版本过高,导致ruby 1.8.7无法支持,需要降低json版本
  gem install json -v 1.8.3
安装完json后再安装fpm即可
另外,centos7.x中默认ruby版本就高,没有此问题

二:打包 以git-2.9.4.tar.gz打包为例子:

 第1步:将git编译安装到:/tmp/installdir/Data/apps/git下
  # tar xf git-2.9.4.tar.gz # cd git-2.9.4# make prefix=/tmp/installdir/Data/apps/git all# make prefix=/tmp/installdir/Data/apps/git install

/tmp/installdir/为fpm打包时指定的相对路径,rpm安装时会自动去掉这个目录,git会直接安装到生产环境的/Data/apps/git下,所以要保障这个/tmp/installdir 目录的纯净。
 
第2步:建立rpm安装后需要执行脚本 在/tmp/installtarget/install_after.sh  #rpm安装后执行脚本
 #!/bin/bash/bin/cp -a /usr/bin/git /usr/bin/git.1.7.1  2> /dev/null/bin/rm -f /usr/bin/git/bin/ln -s /Data/apps/git/bin/git /usr/bin/gitexit 0

第3步:建立rpm卸载后需要的执行的脚本 在/tmp/installtarget/remove_after.sh
#!/bin/bashunlink /usr/bin/git/bin/mv /usr/bin/git.1.7.1 /usr/bin/git 2> /dev/null/bin/rm -rf /Data/apps/gitexit 0

第4步打包
 fpm -s dir -t rpm -n hdf-git-client -v 2.9.4 -C /tmp/installdir/ --description 'git for haodf.com' --post-install /tmp/installtarget/install_after.sh --post-uninstall /tmp/installtarget/remove_after.sh -p /root/

FPM:常用参数说明:
-s:指定源类型:    dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包    rpm: 对rpm进行转换    gem: 对rubygem包进行转换  python: 将Python模块打包成相应的类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字 -v:指定包的版本号-C:指定打包的相对路径
-d:指定依赖于哪些包,格式为-d 'name'
-f:第二次包时目录下如果有同名安装包存在,则覆盖它-p:输出的安装包的目录,不想放在当前目录下就需要指定
--post-install:软件包安装完成之后所要运行的脚本;同--offer-install
--pre-install:软件包安装完成之前所要运行的脚本; 同--before-install
--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove
--pre-uninstall:软件包卸载完成之前所要运行的脚本; 同—before-remove

转载于:https://www.cnblogs.com/panwenbin-logs/p/7822087.html

使用FPM打包工具打rpm包相关推荐

  1. tengine php fpm,FPM打包工具制作Tengine为RPM包详解

    目录 1.Tengine编译安装 2.FPM制作Tengine为RPM包 3.总结 1.Tengine编译安装[root@php ~]# cat /etc/issue CentOS release 6 ...

  2. 【Linux软件管理】FPM打包工具

    FPM打包工具 1. FPM简介 1.1. 支持的源类型包 1.2. 支持的目标类型包 2. FPM的安装 2.1. 安装ruby和gem 2.2. 修改ruby源 2.3. 安装FPM工具 2.4. ...

  3. 使用fpm简单制作自定义rpm包

    我的环境是centos7.2的 一.安装FPM工具 yum -y install ruby rubygems ruby-devel gem sources list   查看gem包管理源仓库地址 g ...

  4. 用fpm制作mysql的rpm包_Fpm 之 Mysql-5.7.21 rpm 包制做

    Fpm 之 Mysql-5.7.21 rpm 包制做 1.首先将mysql-5.7.21编译安装包,安装到自定义的目录 1. 下载安装包 wget http://downloads.sourcefor ...

  5. 02.YUM工具管理RPM包

    yum是基于RPM包管理, 能够自动解决依赖关系, 极大的方便rpm包的安装升级 1.联网获取软件 2.基于RPM管理 3.自动解决依赖 4.命令简单好记 5.生产最佳实践 1.YUM软件仓库管理 1 ...

  6. centos 6.5下安装fpm打包工具

    FPM功能简单说就是将一种类型的包转换成另一种类型. FPM的github:https://github.com/jordansissel/fpm 1.支持的源类型包: dir: 将目录打包成所需要的 ...

  7. android7.1解包打包工具,万能解包提取器Universal Extractor v1.7下载

    软件爱好者经常会从小众的软件站下载,尝鲜各种酷软,但是有时候难免会遇到加壳的李鬼软件,这时可以借助Universal Extractor帮你提取软件存档文件,轻松一键即可完成提取. Universal ...

  8. fpm制作mysql rpm包_FPM简介(定制rpm包)

    FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前 ...

  9. 安装软件包的三种方法、rpm包介绍、rpm、yum工具用法与yum搭建本地仓库

    一.安装软件包的三种方法 rpm工具:RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷.但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当:包与包之间存在着相互依赖的 ...

最新文章

  1. Python+selenium+firefox模拟登录微博并爬取数据(1
  2. Linux 中 ss 命令的使用实例介绍
  3. rabbitmq技术的一些感悟(二)
  4. 拼多多回应“轩尼诗假酒”案:实际售出3单 9月已关闭店铺
  5. 小程序突然报module is not defined_菲尔德睡前英语小故事 | 狼来了
  6. 完全揭秘***利用漏洞***电子邮件系统
  7. 让Delphi的DataSnap发挥最大效率
  8. android studio for android learning (十九 ) 最新Handler消息传递机制全解
  9. 半路学习编程,有希望成为大牛吗?
  10. Java面试题 - 数据结构与算法
  11. 计算机集成声卡输出通道,电脑如何屏蔽集成声卡使用独立声卡?
  12. 易语言高级表格写入MYSQL_易语言高级表格读写EXCEL源码
  13. JAVA实现微信授权登录(详解)
  14. vue实现导出excel,pdf功能
  15. 高一物理加速度的理解
  16. JAVA中如何解决超卖,Redis解决库存超卖问题实例讲解
  17. 【基金量化研究系列】大类资产配置研究(一)——股债二八配置策略与股债风险平价策略
  18. 数据库SUSPECT(置疑)状态如何解决
  19. android界面设计所用中文什么字体,手机软件中的字体是什么字体,ui界面设计用什么字体...
  20. 【HJ42 学英语】C++

热门文章

  1. Learning Scrapy笔记(五)- Scrapy登录网站
  2. python 函数默认参数的小坑
  3. JAVA面试题之经典题型
  4. gradle的配置文件build.gradle、gradle.properties、settings.gradle示例
  5. 如何扩容LVM逻辑卷
  6. latex中文模板_都8012年了还不用LaTex编辑论文就out了!!
  7. python获取app信息的库_Python学习教程:另辟蹊径,appium抓取app应用数据了解一下...
  8. A - 顺序表应用1:多余元素删除之移位算法
  9. 添加控制器 提示找到不到上下文_JS局部上下文和全局上下文
  10. 搜狗输入法电脑版_搜狗输入法上线墨水屏定制版