美文网首页
FPM工具制作RPM包

FPM工具制作RPM包

作者: 夏胖运维 | 来源:发表于2020-11-07 17:15 被阅读0次

1. FPM简介

1.1. 支持的源类型包

dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm: 对rpm进行转换
gem: 对rubygem包进行转换
python: 将Python模块打包成相应的类型

1.2. 支持的目标类型包

rpm: 转换为rpm包
deb: 转换为deb包
solaris: 转换为solaris包
puppet: 转换为puppet包

2. FPM的安装

2.1. 安装ruby和gem

安装ruby环境和gem命令:

yum -y install ruby rubygems ruby-devel

gem命令是从rubygem仓库安装软件类似yum从yum仓库安装软件
查看当前源:

[root@localhost~]# gem source list
*** CURRENT SOURCES ***
http://rubygems.org/

2.2. 修改ruby源

添加国内源:

[root@localhost~]# gem sources -a http://mirrors.aliyun.com/rubygems/

移除国外源:

[root@localhost~]# gem sources --remove http://rubygems.org/

2.3. 安装FPM工具

[root@localhost~]# gem install fpm
[root@loaclhost~]#sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf    //开启yum缓存

2.4. FPM常用参数

-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
-d:指定依赖于哪些包
-f:第二次包时目录下如果有同名安装包存在,则覆盖它
-p:输出的安装包的目录,不想放在当前目录下就需要指定
--post-install:软件包安装完成之后所要运行的脚本;同--offer-install
--pre-install:软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove
--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove

安装遇到问题:

1.Need executable 'rpmbuild' to convert dir to rpm {:level=>:error}
解决方法:
[root@localhost]# yum install -y rpm-build
2.如果里面有gcc make的错误.
解决方法:
yum install -y gcc

3. FPM使用

3.1. fpm打包Nginx

[root@localhost opt]# fpm -s dir -t rpm -n nginx -v 1.6.1 -d 'pcre-devel,openssl-devel' --post-install /opt/nginx_rpm.sh -f /opt/nginx/ <br>
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"nginx-1.6.1-1.x86_64.rpm"}

3.2. fpm相对路径打包

[root@localhost~]# fpm -s dir -t rpm -n opt -v 1.1.1.1 -d 'gcc,gcc+' -C ../opt/   
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"opt-1.1.1.1-1.x86_64.rpm"}

3.3. 使用fpm将生成包指定到/tmp下

[root@bogon ~]# fpm -s dir -t rpm -n ansible-v 1.1.1.1 -d 'gcc,gcc+' -f ansible-p /tmp/

no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"/tmp/ansible-1.1.1.1-1.x86_64.rpm"}

4. 查看rpm包信息

4.1. 查看rpm执行的脚本

[root@localhost opt]# rpm -qp --scripts nginx-1.6.1-1.x86_64.rpm       
postinstallscriptlet (using /bin/sh):
#!/bin/bash
useraddnginx -M -s /sbin/nologin

4.2. 查看rpm包的依赖

[root@localhost opt]# rpm -qpR nginx-1.6.1-1.x86_64.rpm 
openssl-devel
/bin/sh
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1

4.3. 查看rpm包中的内容

rpm -qpl nginx-1.6.1-1.x86_64.rpm

相关文章

  • FPM工具制作RPM包

    1. FPM简介 1.1. 支持的源类型包 1.2. 支持的目标类型包 2. FPM的安装 2.1. 安装ruby...

  • fpm制作rpm包

    1、安装ruby 官网下载地址:下载 Ruby (ruby-lang.org)[http://www.ruby-l...

  • ruby环境更新

    昨天因为想用fpm制作rpm包,因为是一个比较复杂的环境,因此产生了一些波折。 使用fpm工具首先要配置ruby ...

  • Rpm打包手顺

    RPM包制作方法 一. 打包的步骤 1.材料的准备: 打包工具(yum install rpm-build) 一个...

  • CentOS FPM 打 RPM 包

    Reference Remove rexml - rexml broken in Ruby versions be...

  • centOS安装yum本地仓库

    配置yum源仓库 1.制作本地仓库 新建文件夹packages,将rpm包导入 安装制作工具 yum ...

  • 【com】基于RPM源码包制作RPM包

    基于RPM源码包制作RPM包(以heat为例) 一、下载源码包 yumdownloader --source op...

  • rpm包制作

    Linux 下RPM打包制作流程 开始前的准备 安装rpmbuild软件包 yum -y install rpm-...

  • RPM包制作

    在CentOS中验证了如下的RPM包制作流程。 1. 首先查看/usr/lib/rpm/macros中%_topd...

  • 制作RPM包

    前言 拥有源码,把源码制作RPM包进行安装和使用。 制作RPM包步骤 准备普通用户(rpmbuilduser)创建...

网友评论

      本文标题:FPM工具制作RPM包

      本文链接:https://www.haomeiwen.com/subject/zfhqbktx.html