zoukankan      html  css  js  c++  java
  • fpm来制作rpm包

    转自 http://blog.halfss.com/blog/2013/02/26/fpmbao-guan-li/  

    另查看 http://my.oschina.net/lxcong/blog/143855

    fpm包管理

    1简介

    fpm:对包的类型进行转换,从一种类型转换到另一种类型

    #包作者整理了PPT:

    https://docs.google.com/presentation/d/11TOsLeg58w7GCt6i7y1VIQWnUYotsx0MzGMJ_dWUJNo/present#slide=id.i0
    

    目前源类型支持:

    • dir:二进制包

    • rpm:redhat系列的包

    • gem:ruby的包 #fpm就是用ruby写的,也是gem中的一个包

    • python:python的模块

    目标类型:

    • rpm
    • deb
    • solaris
    • puppet

    2安装

    2.1安装环境

    fpm是ruby写的,系统环境需要rbuy

    #ruby版本要大于1.8.5

    在centos5上默认的源的ruby版本为1.8.5,

    需添加一下源:

    rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-6.noarch.rpm
    
    

    该源中的ruby版本为1.8.7

    $ gem sources --remove https://rubygems.org/
    $ gem sources -a https://ruby.taobao.org/
    $ gem sources -l
    yum install -y ruby ruby-devel rubygems rpm-build
    
    

    2.2安装fpm

    gem install fpm
    

    3使用

    3.1常用语法

    常用命令:
    
    fpm -s 源类型 -t 目标类型 [options]
    
    
    
    常用的options:
    
    -n 生成的package名字
    
    -p 生成的package文件输出位置
    
    -v 生成的package版本
    
    -d 生成的package依赖于什么软件,通常为-d 'name' 或这 -d 'name > version'
    
    -a 系统架构名称,如果是noarch则为'-a all' 或者 '-a native'
    
    --description 软件包描述
    
    --conflicts 与其他什么软件冲突
    
    
    
    详情:fpm -h
    
    

    3.2示例

    [root@localhost test]# tar -xf libiconv-1.13.1.tar.gz 
    
    [root@localhost test]# cd libiconv-1.13.1
    
    [root@localhost libiconv-1.13.1]# ./configure --prefix=/usr
    
    
    
    [root@localhost libiconv-1.13.1]# make
    
    [root@localhost libiconv-1.13.1]# mkdir /tmp/libiconv-1.13.1
    
    [root@localhost libiconv-1.13.1]# make install DESTDIR=/tmp/libiconv-1.13.1
    
    
    
    [root@localhost libiconv-1.13.1]# ls /tmp/libiconv-1.13.1/
    
    usr
    
    
    
    [root@localhost rpm_test]# ls
    
    [root@localhost rpm_test]# fpm -s dir -t rpm -n libiconv -v 1.13.1 -C /tmp/libiconv-1.13.1 usr
    
    [root@localhost rpm_test]# ls
    
    libiconv-1.13.1-1.x86_64.rpm
    
    [root@localhost rpm_test]# rpm -qpl libiconv-1.13.1-1.x86_64.rpm 
    
    /usr/bin/iconv
    
    /usr/include/iconv.h
    
    /usr/include/libcharset.h
    
    …….
    
    

    参考:

    • http://waydee.blog.51cto.com/4677242/834002

    • http://blog.sina.com.cn/s/blog_704836f40101fscj.html

    • http://www.ducea.com/2011/08/31/build-your-own-packages-easily-with-fpm/

  • 相关阅读:
    python-super方法
    python--mixin
    python中将输出写入文件
    一致性hash算法
    mysql之触发器trigger
    python内置函数
    python3.5+Django2.2+pymysql+mysql
    File "D:PythonPython37-32libsite-packagesdjangoviewsdebug.py", line 332, in get_traceback_html   t = DEBUG_ENGINE.from_string(fh.read())
    RuntimeError: You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to po
    python:面向对象
  • 原文地址:https://www.cnblogs.com/cmsd/p/3569585.html
Copyright © 2011-2022 走看看