FPM打包工具
支持的源类型包:
- dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
- rpm: 对rpm进行转换
- gem: 对rubygem包进行转换
- python: 将Python模块打包成相应的类型
支持的目标类型包:
- rpm: 转换为rpm包
- deb: 转换为deb包
- solaris: 转换为solaris包
- puppet: 转换为puppet包
FPM的安装:
安装ruby环境和gem命令:
yum -y install ruby rubygems ruby-devel
gem命令是从rubygem仓库安装软件类似yum从yum仓库安装软件
查看当前源:
[root@localhost~]# gem source list
*** CURRENT SOURCES ***
http://rubygems.org/
添加国内源:
[root@localhost~]# gem sources -a http://mirrors.aliyun.com/rubygems/
移除国外源:
[root@localhost~]# gem sources --remove http://rubygems.org/
安装FPM工具:
[root@localhost~]# gem install fpm
[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.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
[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/
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相对路径打包:
[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下:
[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执行的脚本
[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包的依赖
[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包中的内容:
rpm -qpl zabbix-3.0-1.x86_64.rpm
镜像同步公网YUM源:
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源:
rsync://mirrors.ustc.edu.cn/epel/6/x86_64/
命令:reposync
参考文档:
http://blog.oldboyedu.com/autodeploy-rpm/
http://www.zyops.com/autodeploy-rpm
FPM打包工具的更多相关文章
- 使用FPM打包工具打rpm包
使用FPM打包工具打rpm包 一:安装ruby环境和gem命令 fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5 # yum -y install ruby rubygems ...
- FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节
注意部FPM时的环境一定要跟生产环境的系统版本最好是保持一至,我第一次测试没通过,(我在CENTOS7和部属FPM打好的包在Centos6.x和安装,结果失败) 1:安装 FPM打包工具的依赖包: [ ...
- FPM打包工具使用
author:headsen chen date: 2019-01-19 14:57:09 个人原创博客,转自请注明出处和作者,否则追究法律责任 1,安装依赖和语言包 yum -y install ...
- centos6.5安装fpm打包工具
FPM功能简单说就是将一种类型的包转换成另一种类型.FPM的github:https://github.com/jordansissel/fpm 1.支持的源类型包: dir: 将目录打包成所需要的类 ...
- fpm 打包工具安装调试
https://github.com/jordansissel/fpm 官方git yum install ruby-devel gcc make rpm-build rubygems gem so ...
- rpm打包工具---FPM
FPM的安装:fpm是由ruby gem仓库里面安装的所以要先装ruby.yum安装的ruby版本是1.8.7版本,使用gem命令会报错: >= 1.9.3,所以要安装一个比1.9.3版本高的 ...
- fpm打包神奇rpm包升级python2.7.16
fpm打包神器参考文档:https://www.cnblogs.com/flintlovesam/p/6594635.html FPM的安装:安装ruby环境和gem命令: yum -y instal ...
- Linux-源码安装及FPM打包
目录 源码安装 制作RPM包(使用FPM工具) 安装rpm后要执行的脚本(优化版) 源码安装 这里举例Nginx的源码安装,需要前往Nginx官网找到稳定版本源码安装包下载. ## 源码安装nginx ...
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
随机推荐
- java-通讯stocket插件mina实例
mina是对nio的具体实现.是目前比较高效和流行的nio(非阻塞式I/O)框架 mina主要包括: 其中服务端为:NioSocketAcceptor 客户端为:NioSocketConnector ...
- 数据库开发基础-SQl Server 主键、外键、子查询(嵌套查询)
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- WordPress 博客文章时间格式the_time()设置
国外设计的WordPress 主题里的文章的时间格式是类似“十一月 21, 2010”这种格式的,而中国人习惯的是年在前,月紧跟其后,日在末尾,所以看国外的就显得很别扭,但是我们可以通过修改WP时间代 ...
- 【2016多校训练4】Multi-University Training Contest 4
1001 Another Meaning 题意:字符串A中包含的字符串B可以翻译或不翻译,总共有多少方案. 题解:动规,dp[i]表示A的第i位为止有多少方案. 转移方程: dp[i]=dp[i-1 ...
- Linux基础2
命令格式命令的类型:1.内部命令 linux系统使用的shell提供.2.外部命令 安装第三方软件才会. type 命令名 查命令的类型 | 把前边命令的输出作为后边命令的输入 管道 grep 对数据 ...
- python 学习笔记11(objgraph)
33. objgraph objgraph是Python的一个第三方包.安装之前需要安装xdot. 用途 安装 例子
- POJ2796 Feel Good 单调栈
题意:给定一个序列,需要找出某个子序列S使得Min(a[i])*Σa[i] (i属于S序列)最大 正解:单调栈 这题的暴力还是很好想的,只需3分钟的事就可以码完,以每个点拓展即可,但这样的复杂度是O( ...
- python dict.get()和dict['key']的区别
先看代码: In [1]: a = {'name': 'wang'} In [2]: a.get('age') In [3]: a['age'] --------------------------- ...
- ubuntu 设置hostname
永久修改hostname: # sudo vim /etc/hostname # sudo vim /etc/hosts
- POJ1426 Find The Multiple (宽搜思想)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24768 Accepted: 102 ...