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

    FPM打包工具

    支持的源类型包:

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

    支持的目标类型包:

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

    将源码包打成rpm包:
    开启yum缓存

    [root@db02 ~]# vim /etc/yum.conf
    keepcache=1
    

    安装fpm

    fpm-1.3.3.x86_64.tar.gz
    

    有epel源

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    

    安装fpm的依赖(ruby环境和gem命令)

    [root@db04 ~]# yum install -y ruby-devel rubygems
    

    查看当前源

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

    添加华为的ruby源

    [root@db04 ~]# gem sources --add https://mirrors.huaweicloud.com/repository/rubygems/
    
    [root@db04 ~]# gem source --list
    *** CURRENT SOURCES ***
    
    https://rubygems.org/
    https://mirrors.huaweicloud.com/repository/rubygems/
    
    
    

    移除国外源

    [root@db04 ~]# gem source --remove https://rubygems.org/
    https://rubygems.org/ removed from sources
    

    移动fpm安装包,解压

    [root@db04 ~]# mv fpm-1.3.3.x86_64.tar.gz /server/tools/
    
    [root@db04 ~]# cd /server/tools/
    
    [root@db04 tools]# tar xf fpm-1.3.3.x86_64.tar.gz 
    

    安装gem,以及依赖

    [root@db04 tools]# gem install *.gem
    
    11 gems installed
    
    [root@db04 tools]# yum install -y gcc-c++ gcc glibc zlib-devel pcre-devel openssl-devel automake
    
    

    安装遇到问题:

    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常用参数:

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

    fpm使用示例:

    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"}
    

    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"}
    

    保存nignx的依赖包

    [root@db04 tools]# mkdir /nginx
    
    [root@db04 tools]# find /var/cache/yum/ -name '*.rpm'|grep -v ruby|xargs cp -t /nginx/
    

    解压

    [root@db04 ~]# tar xf nginx-1.16.0.tar.gz
    
    [root@db04 ~]# mkdir /app -p
    
    [root@db04 nginx-1.16.0]# ./configure --prefix=/app/nginx-1.16.0
    
    [root@db04 nginx-1.16.0]# echo $?
    0
    
    [root@db04 nginx-1.16.0]# make && make install
    
    make[1]: Leaving directory `/root/nginx-1.16.0'
    
    
  • 相关阅读:
    atexit函数的使用【学习笔记】
    Bootloader与Kernel间参数传递机制 taglist【转】
    Uboot中start.S源码的指令级的详尽解析【转】
    修改u-boot的开机logo及显示过程【转】
    Android 5.x SEAndroid/SElinux内核节点的读写权限【学习笔记】
    【转】IOS 计时器 NSTimer
    【转】iOS-延迟操作方法总结
    ios第三方开源库
    【转】 UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
    【转】iOS类似Android上toast效果
  • 原文地址:https://www.cnblogs.com/longren/p/11936010.html
Copyright © 2011-2022 走看看