转自 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/

fpm来制作rpm包的更多相关文章

  1. fpm 制作rpm包

    使用fpm命令制作rpm包并安装 工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 ...

  2. 制作RPM包

    RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象 ...

  3. 利用fpm制作rpm包

    使用fpm制作rpm包 安装如下 [root@web01 ~]# yum install -y gcc zlib zlib-devel wget http://ruby.taobao.org/mirr ...

  4. fpm定制化RPM包之nginx rpm包的制作

    fpm定制化RPM包之nginx rpm包的制作 1.安装ruby模块 # yum -y install ruby rubygems ruby-devel 2.添加阿里云的Rubygems仓库,国外资 ...

  5. fpm制作rpm包

    一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特 ...

  6. fpm工具来制作rpm包软件

    第1章 rpm包的制作 1.1 fpm的概念介绍 FPM功能简单说就是将一种类型的包转换成另一种类型 1.1.1.支持的源类型 类型 说明 dir   将目录打包成所需要的类型,可以用于源码编译安装的 ...

  7. 速成制作rpm包

    FPM 由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包.通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐.这就用到了FP ...

  8. linux制作RPM包

    制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...

  9. FPM简介(定制rpm包)

    FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前 ...

随机推荐

  1. Javascript 笔记与总结(2-9)获取运行时的 style 对象

    获取内存中(正在渲染)的 style 的值(非内联 style,obj.style 只能获得内联 style 的值),可以用 obj.currentStyle(低版本 IE 和 Opera 支持)和 ...

  2. PHP 多个文件上传

    关键函数: is_uploaded_file():用于判断指定的文件是否是通过 HTTP POST 上传的,如果是则返回 TRUE.用于防止潜在的攻击者对原本不能通过脚本交互的文件进行非法管理,这可以 ...

  3. 如何用Apache TCPMon来截获SOAP消息

    在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPMon可以帮助我们做到这一点.  TCPMon的下载地址在http://ws.apa ...

  4. php常用[字符串]函数

    nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $ ...

  5. linux C gcc -lm

    使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数 ...

  6. MillWheel: Fault-Tolerant Stream Processing at Internet Scale

    http://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/41378.pdf   为什么要做M ...

  7. UltraEdit 标签(tab)不见的3个解决办法

    UltraEdit 标签(tab)不见的3个解决办法 2010-11-08 09:19 1042人阅读 评论(0) 收藏 举报 工具c 方法1:点 视图->视图/列表(V)->打开文件标签 ...

  8. 解决微软的两个恶心问题(VS2008死机、Win2008 WAS无法启动)

    1.Visual Studio 2008,在切换到Web设计界面或Html Markup界面时,过一段时间就出现假死,点击任何地方没反应,也关闭不了,只能用任务管理器结束任务. 上网查了下,应该是先装 ...

  9. Qt Model/View(官方翻译,图文并茂)

    http://doc.trolltech.com/main-snapshot/model-view-programming.html 介绍 Qt 4推出了一组新的item view类,它们使用mode ...

  10. partial类与[MetadataType(typeof(类名))]有什么区别?

    在MVC的Model中,我们可以定义很多与视图相关的元数据,这些元数据对我们开发视图起着相当重要的作用,特别是在数据验证方面.这些元数据一般情况下我们是不会定义在业务实体(或持久化实体)上面,所以很多 ...