• 使用 FPM 将源码包转化为rpm包(技巧)


                                                                  使用 FPM  将源码包转化为rpm包

    1、支持的源类型包

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

    2,fpm 参数表

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


    3,举 例

    使用fpm将jdk源码包做成一个rpm,方便快捷安装

    准备:源码包:jdk-8u191-linux-x64.tar.gz (官网下载:https://www.oracle.com/java/technologies/javase-downloads.html

    环境:Centos7 (内核:3.10.0-957.el7.x86_64)

    1,安装扩展源
    [root@localhost ~]# rpm -ivh epel-release-latest-7.noarch.rpm    
    [root@localhost ~]# ls /etc/yum.repos.d/
    [root@localhost ~]# yum clean all && yum makecache

    ===============================================================================================================

    2,部署fpm安装环境
    [root@localhost ~]# yum install -y ruby rubygems ruby-devel
    [root@localhost ~]# gem update --system                                                         //升级rubygems版本
    Updating rubygems-update
    ERROR:  Error installing rubygems-update:
        rubygems-update requires Ruby version >= 2.3.0.
    [root@localhost ~]# gem install rubygems-update -v 2.3.0
    [root@localhost ~]# gem update --system
    [root@localhost ~]# gem sources -a http://mirrors.aliyun.com/rubygems/     //添加国内源
    [root@localhost ~]# gem sources --remove https://rubygems.org/               //移除国外源:
    [root@localhost ~]# gem sources -l                                                               //查看当前源

    ===============================================================================================================

    3,安装fpm包
    [root@localhost ~]# gem install fpm                                                               //先默认下载,会提示版本不对,下载不成功
    [root@localhost ~]# gem install fpm -v 1.4.0                                                  //指定版本下载,这里选择的是旧版本v1.4.0

    ===============================================================================================================
    4,使用fpm命令打包做rpm
    [root@localhost ~]# fpm -s dir -t rpm -n jdk -v 8u191-linux-x64  -f  --post-install /root/jdk/jdk.sh /usr/local/java       //具体参数参考上面 参数表

    //其中/root/jdk/jdk.sh 是需要自己编写,如图:

    另外需要注意:1,在使用fpm命令前,一定要将jdk源码包完全编译make解码安装好!fpm命令最后/usr/local/java 是jdk源码包解压后的位置;转化任何源码包,都需要此源码包已经安装完毕后,再使用fpm命令将其打包;2, jdk.sh和jdk-8u191-linux-x64.tar.gz源码包要在同一个目录下

    ===============================================================================================================

    5,测试(找另一台原生的虚拟机测试):


    没有处理不了的问题,只有不能处理的人
  • 相关阅读:
    code-breaking picklecode中对signed_cookies引擎分析
    [一道蓝鲸安全打卡Web分析] 文件上传引发的二次注入
    攻防世界Web新手解析
    面向对象相关
    面试第二篇
    函数相关
    python复习目录
    面试第一篇
    Django Rest Framework进阶二
    Django Rest Framework进阶一
  • 原文地址:https://www.cnblogs.com/123456likun/p/14841528.html
Copyright © 2020-2023  润新知