1. 支持的 源类型包

    ① dir       : 将目录打包成所需要的类型, 可用于源码编译安装软件包
    ② rpm       : 对 rpm 包进行转换
    ③ gem       : 对 rubygem 包进行转换
    ④ python    : 将 python 模块打包成响应的类型
  2. 支持的 目标类型包

    ① rpm       : 转换为 rpm 包
    ② deb       : 转换为 deb 包
    ③ solaris   : 转换为 solaris 包
    ④ puppet    : 转换为 puppet 模块
  3. FPM 安装 及 使用帮助 : FPM 基于 ruby , 需要首先安装 ruby 环境.

    ruby > 1.8.5
    
    $ yum install ruby rubygems ruby-devel gcc make libffi-devel -y
    $ yum install rpm-build -y      # fpm 依赖 rpmbuild
    $ gem sources list
    $ gem sources --remove https://rubygems.org/
    $ gem sources --add https://ruby.taobao.org
    
    $ gem install fpm   # for centos7
    
    $ gem install json -v 1.8.3  # for centos6
    $ gem install fpm -v 1.3.3   # for centos6
    
    $ fpm --help
        -s          指定源类型
        -t          指定目标类型,即想要制作为什么包
        -n          指定包的名字
        -v          指定包的版本号
        -C          指定打包的相对路径  Change directory to here before searching forfiles
        -d          指定依赖于哪些包
        -f          第二次打包时目录下如果有同名安装包存在,则覆盖它
        -p          输出的安装包的目录,不想放在当前目录下就需要指定
        --post-install      软件包安装完成之后所要运行的脚本;同--after-install
        --pre-install       软件包安装完成之前所要运行的脚本;同--before-install
        --post-uninstall    软件包卸载完成之后所要运行的脚本;同--after-remove
        --pre-uninstall     软件包卸载完成之前所要运行的脚本;同--before-remove
    
        --description 
  4. 示例: 定制 nginx rpm 包

    $ yum -y install pcre-devel openssl-devel libzip
    $ useradd nginx -M -s /sbin/nologin
    $ tar xf nginx_1.10.tar.gz
    
    $ cd nginx_1.10
    $ ./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
    $ make && make install
    $ echo "nginx-1.10.2" > /opt/nginx/version
    
    $ vim /tmp/nginx_rpm.sh
        #!/bin/bash
        useradd nginx -M -s /sbin/nologin
    
    $  fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel,libzip' --post-install /tmp/nginx_rpm.sh -f /opt/nginx     # 注意此处的 绝对路径.
    
    $  rpm -qpl nginx-1.6.2-1.x86_64.rpm    # 查看软件包内容.

有用的命令.

$ yum provides *bin/prove
    provides       Find what package provides the given value
    resolvedep     Determine which package provides the given dependency

$ tar -tvf new.tgz      # 查看包的内容, 不解压包.

$ make install DESTDIR=/tmp/installdir/ 

$ getent passwd root    # 查看手否存在用户root
    root:x:0:0:root:/root:/bin/bash

$ rpm -qp --scripts tengine-2.1.0-1.el6.x86_64.rpm  # 查看 rpm 保存的脚本信息

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

  1. 利用fpm制作rpm包

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

  2. fpm制作rpm包

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

  3. fpm 制作rpm包

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

  4. Linux基于FPM制作RPM包(以Nginx为例)

    1.搭建Epel  Yum源  安装在线yum源 [root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源 [root@ ...

  5. linux制作RPM包

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

  6. 制作RPM包

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

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

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

  8. 速成制作rpm包

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

  9. FPM定制RPM包实践

    1.1 快速部署方案 ✔ 问题:当领导给你 100 台已经安装好系统的服务器,然后让优化,让你提出一个快速部署方案. 解答: 1.tar 打包 先编译安装 打包-->分发-->解包(比如 ...

随机推荐

  1. linux 内核的rt_mutex (realtime互斥体)

    linux 内核有实时互斥体(锁),名为rt_mutex即realtime mutex.说到realtime一定离不开priority(优先级).所谓实时,就是根据优先级的不同对任务作出不同速度的响应 ...

  2. AngularJS2基本构造

    2.NG2入门 2.1 基本构造 angularjs主要有8个构造快: 模块(module) 组件(component) 模板(template) 元数据(metadata) 数据绑定(data bi ...

  3. 设计模式的征途—5.原型(Prototype)模式

    相信大多数的人都看过<西游记>,对孙悟空拔毛变出小猴子的故事情节应该都很熟悉.孙悟空可以用猴毛根据自己的形象复制出很多跟自己一模一样的小猴兵出来,其实在设计模式中也有一个类似的模式,我们可 ...

  4. Log4j appender输出类型配置

    Log4j官方的appender给出了一下几种实现 org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), ...

  5. druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索

    最近项目中有个定时任务的需求,定时检查mysql数据与etcd数据的一致性,具体实现细节就不说了,今天要说的就是实现过程中遇到了druid抛出的异常,以及解决的过程 异常 异常详细信息 五月 05, ...

  6. OC中NSFileManager

    NSFileManager介绍 NSFileManager是用来管理文件系统的 它可以用来进行常见的文件\文件夹操作(拷贝.剪切.创建等) NSFileManager使用了单例模式singleton ...

  7. 将 Eclipse 的配色改为黑底白字

    1.先到 eclipsecolorthemes下载一个主题. 2.Eclipse File-->Import 3.Import视窗内选择 General-->Preferences 4.选 ...

  8. Hive篇之安装

    1,安装 hive的版本的选择,是选择内置的数据库保存元数据,还是用外部的mysql之类的数据库保存元数据,同时,如果使用外置的mysql,需要注意对mysql远程访问的配置. 再就是关于文件的配置了 ...

  9. 关于SVN工具的配置及使用

    一.在Ubuntu下的配置 1.检测svn是否已经安装过 使用命rpm -qa | grep subversion,如果是一下结果,说明系统已经安装过svn了 如果什么都没有输出,则说明没有安装过sv ...

  10. $>_<$

    Hello word! 从jdk环境变量的配置,myeclipse的安装,tomcat的部署和使用,面向对象的编程思想,什么是java. 思维从模糊到清晰,一路摸索,不见泰山!