使用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 --remove http://rubygems.org/

安装fpm 可能要失败

# gem install fpm

我这里解决方法安装旧版本的fpm

# gem install fpm -v 1.4.0

# gem -v

二:打包 以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

时间: 2024-08-24 23:58:33

使用FPM打包工具打rpm包的相关文章

FPM打包工具制作Tengine为RPM包详解

目录 1.Tengine编译安装 2.FPM制作Tengine为RPM包 3.总结 1.Tengine编译安装 [[email protected] ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m [[email protected] ~]# uname -r 2.6.32-358.el6.x86_64 请确保系统安装了"Development tools"和"Server Platform D

FPM打包工具制作线上nginx的RPM包

一.安装FPM打包工具 1.FPM是ruby的模块,先安装FPM依赖的包 [[email protected] ~]#  yum -y install ruby rubygems ruby-devel rpm-build 2.因国内网络环境,访问http://rubygems.org/站点时不稳定,所以增加国内toabao提供的一个镜像站点,把原来的站点移除 [[email protected] ~]#  gem sources -a https://ruby.taobao.org/ [[ema

安装fpm打包工具

1      安装fpm打包工具 建议首次安装依次进行.后面很绕还容易把服务器搞崩溃,即使安装不上也就算了,这个打包在自己机器测试最好嘛. 1.1  首次安装 yum -y install ruby rubygems ruby-devel gem sources-a http://mirrors.aliyun.com/rubygems/ gem sources--remove http://rubygems.org/ gem installfpm ERROR:  Could not find a

云计算学习路线教程大纲课件:使用RPM工具管理RPM包

云计算学习路线教程大纲课件:使用RPM工具管理RPM包: ==================================================================================== 需要考虑: OS版本,e.g. Centos6/7 # cat /etc/redhat-release 系统架构,e.g. i386/x86_64 # uname -m 依赖关系,e.g. ntfs-3g-devel 需要依赖ntfs-3g rpm包的版本, e.g. 2

使用fpm工具制作rpm包

本次rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前也可以做一些准备,比如检测一下相应的服务是否停止了,在卸载软件再做一些扫尾的工作,只要把这些定义成一个个脚本,fpm中指定相应的选项即可轻松实现.这里涉及的参数是:--pre-install FILE:表示安装之前所要运行的脚本--post-install FILE:表示安装之后所要运行的脚本--pre-uninstall FILE:

采用fpm工具制作rpm包

本次rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前也可以做一些准备,比如检测一下相应的服务是否停止了,在卸载软件再做一些扫尾的工作,只要把这些定义成一个个脚本,fpm中指定相应的选项即可轻松实现.这里涉及的参数是:--pre-install FILE:表示安装之前所要运行的脚本--post-install FILE:表示安装之后所要运行的脚本--pre-uninstall FILE:

fpm打包工具

在linux环境下时,总是需要进行大量的软件安装和软件测试,如果从源码编译,可能要花费大量的编 译时间,在确保包依赖关系正常的情况下,将安装好的软件打包成rpm包,可以很快的安装部署 打成rpm包有两种方式: 1.写spec文件,使用rpm-build 2.使用fpm打包 第一种方式我没有尝试过,太繁琐,一点一点写spec文件的参数,各种出错,一不留神就花费大半个 小时:软件的产生就是为了方便系统管理员管理,减少不必要的时间浪费,学会软件使用需要花费太 多的时间掌握,实在是有点惨不忍睹. 第二种

Centos6.5利用RubyGems的fpm制作zabbix_agent的rpm包,并使用ansible批量部署

一. 搭建rpm包制作环境 安装gcc [[email protected] ~]# yum install gcc 安装make [[email protected] ~]# yum install make 安装ruby源(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装) [[email protected] ~]# yum install ruby rubygems ruby-devel 查看ruby源 [[email protected] ~]# 

Centos7安装dnf工具管理rpm包

dnf是新型的rpm包管理工具,功能比yum更强大 第一步: wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-conf-0.6.4-2.sdl7.noarch.rpm 第二步: wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//dnf-0.6.4-2.sdl7.noarch.rpm 第三步: wget http:/