首页 > 其他分享 >使用FPM打包工具打rpm包

使用FPM打包工具打rpm包

时间:2024-09-25 18:53:18浏览次数:3  
标签:bin tmp git FPM -- gem install rpm 打包

                            使用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

报错解决:

使用FPM打包工具打rpm包_ruby

解决:

因为系统内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/git
  exit 0

第3步:建立rpm卸载后需要的执行的脚本 在/tmp/installtarget/remove_after.sh


#!/bin/bash
 unlink /usr/bin/git
 /bin/mv /usr/bin/git.1.7.1 /usr/bin/git 2> /dev/null
 /bin/rm -rf /Data/apps/git
 exit 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

 

 


"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少



标签:bin,tmp,git,FPM,--,gem,install,rpm,打包
From: https://blog.51cto.com/u_8901540/12111453

相关文章

  • python使用pyinstaller打包exe的时候遇到:unknown encoding: idna
    python使用pyinstaller打包exe的时候遇到:unknownencoding:idna解决办法在程序开头加上importencodings.idna即可,如果idna没有安装,需要手动安装一下。#!/usr/bin/python#-*-coding:UTF-8-*-importencodings.idna......
  • 离线一机一码验证和网络验证的区别以及使用场景 (附一机一码加密打包大师下载链接)
    本文主要介绍离线一机一码验证和网络验证的区别及其各自的特点和优势。通过对比这两种验证方式的工作原理、优缺点,使开发人员更好地理解并选择适合自己需求的验证方案。接下来,我们将详细探讨每种验证方式的具体实现和应用场景。离线一机一码验证和网络验证结合实例介绍  ......
  • springboot项目打包部署到linux运行经验:
    打包:1.mvn:clean2.mvn:package 生成的snapshop-jar包在target下。部署(采用idea自带的ftp) 1.idea的tools-deployment中配置虚拟机的连接,包括用户名,密码,端口 2.配置idea的mapping文件目录映射(随便写),就可以打开虚拟机目录了 3.将idea的target下生产的jar包直接拖动到虚......
  • python打包的exe文件为什么有时候运行很慢有时候很快?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python打包处理的问题。问题如下:大佬们 请问下 你们有没有遇到这种情况 python打包的exe文件为什么有时候运行很慢有时候很快? 同一个exe文件 有时候等个5秒就可以弹出输入框有......
  • python打包的exe文件为什么有时候运行很慢有时候很快?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python打包处理的问题。问题如下:大佬们 请问下 你们有没有遇到这种情况 python打包的exe文件为什么有时候运行很慢有时候很快? 同一个exe文件 有时候等个5秒就可以弹出输入框......
  • 【Python调用ddddocr打包成exe文件指定模型库及注意事项】
    ddddocr打包成exe后一直存在各种各样的问题,例如:ddddocr\common.onnxfailed.Filedoesn’texist查阅资料后,问题得到解决。但相关资料不多,且不够详细,特写下本文,以便于后来者解决问题。希望本文能帮到你。目标:为了方便调用,打算分别起三个服务,并且打包成EXE方便......
  • 优化 Go 语言数据打包:性能基准测试与分析
    优化Go语言数据打包:性能基准测试与分析场景:在局域网内,需要将多个机器网卡上抓到的数据包同步到一个机器上。原有方案:tcpdump-w写入文件,然后定时调用rsync进行同步。改造方案:使用Go重写这个抓包逻辑及同步逻辑,直接将抓到的包通过网络发送至服务端,由服务端写入,这样就减少......
  • electron nsis打包windows应用程序
    使用electron开发应用程序之后,经常会单独对windows做32位或者是64位程序打包操作,有时候默认的程序做不了相应的需求,往往需要添加单独的页面或者是修改默认的操作,比如一下添加一个默认的选择页面:自定义脚本代码如下所示:!defineMUI_LANGUAGE"Chinese"Unicodetrue!includensDial......
  • uniapp - 实现安卓App打包上架应用商店详细教程,详解Hbuilder打包编译apk发布上传到应
    前言【苹果App】打包上架Appstore应用商店,请访问。在uni-app安卓App项目开发中,详解打包app及上架应用市场教程,uniapp打包app安卓应用并发布到软件商店,提供多种方式打包编译为APK文件(HbuilderX云打包/本地原生打包/离线打包),附带申请Android签名证书多种方法、对要上......
  • PyInstaller打包模型文件
    最近需要将python项目打包成可执行文件,研究了下,记录下整个过程。项目是基于mxnet实现的一个物体检测器,需要打包成exe文件(windows)和linux的可执行文件,选择PyInstaller作为打包工具。主要有三个问题需要注意:1.由于PyInstaller会将python环境中的所有安装包都打包进去,所以......