zoukankan      html  css  js  c++  java
  • fpm打包工具

    版权归属原作者,原文转自:https://www.cnblogs.com/saneri/p/5265661.html

    date:2018-10-12  18:48:25

    支持的源类型包:

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

    支持的目标类型包:

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

    FPM的安装:

    安装ruby环境和gem命令:

    1
    yum -y install ruby rubygems ruby-devel

    gem命令是从rubygem仓库安装软件类似yum从yum仓库安装软件

     查看当前源:

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

    添加国内源:

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

    移除国外源:

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

    安装FPM工具:

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

    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
    2
    3
    4
    5
    6
    7
    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  

    fpm打包实例:

    1.fpm打包Nginx

    1
    2
    3
    4
    [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"}

    2.fpm相对路径打包:

    1
    2
    3
    4
    [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.使用fpm将生成包指定到/tmp下:

    1
    2
    3
    4
    5
    [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"}

    查看rpm包信息:

    1.查看rpm执行的脚本

    1
    2
    3
    4
    [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

    2.查看rpm包的依赖

    1
    2
    3
    4
    5
    [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

    3.查看rpm包中的内容:

    1
    rpm -qpl zabbix-3.0-1.x86_64.rpm

    镜像同步公网YUM源:

    1
    2
    3
    4
    centos官方标准源:
    rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/
    rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/
    rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/

    epel源:

    1
    rsync://mirrors.ustc.edu.cn/epel/6/x86_64/

    命令:reposync

  • 相关阅读:
    数据库插入大量数据时不要忘记先删除索引(小技巧)
    solr入门之权重排序方法初探之使用edismax改变权重
    sql server查看表占用索引空间(小技巧)
    sql server不要插入大数据,开销太大
    MongoDB——更新操作(Update)c#实现
    solr中facet及facet.pivot理解
    Solr --- Group查询与Facet区别
    Solr中的group与facet的区别
    solr之模糊搜索(Fuzzy matching)
    solr之~模糊查询
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/9780156.html
Copyright © 2011-2022 走看看