自动化利器-RPM自定义打包
2017-02-13 22:10
309 查看
1.Rpm打包程序
1.1为什么要使用rpm打包
1、编译安装软件,优点是可以定制化安装目录、按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长。2、yum安装软件,优点是全自动化安装,不需要为依赖问题发愁了,缺点是自主性太差,软件的功能、存放位置都已经固定好了,不易变更。
===>如果你现在还为是使用编译安装软件还是使用yum安装软件发愁,那你就out了。
3、编译源码,根据自己的需求做成定制RPM包-->搭建内网yum仓库--yum安装。结合前两者的优点,暂未发现什么缺点。可能的缺点就是RPM包的通用性差,只能适用于本公司的环境。另外一般人不会定制RPM包。这是中大型互联网企业运维自动化的必要技能。
rpm的概念,想了解的朋友可以查看http://www.ibm.com/developerworks/cn/linux/l-rpm/
2 fpm工具打包详解
FPM的作者是jordansisselFPM的github:https://github.com/jordansissel/fpm
FPM功能简单说就是将一种类型的包转换成另一种类型。
2.1 支持的源类型包
dir #将目录打包成所需要的类型,可以用于源码编译安装的软件包rpm #对rpm进行转换
gem #对rubygem包进行转换
python #将python模块打包成相应的类型
2.2支持的目标类型包
rpm #转换为rpm包deb #转换为deb包
solaris #转换为solaris包
puppet #转换为puppet模块
2.3 fpm安装
[root@student ~]# yum -y install ruby rubygems ruby-devel ß安装ruby模块[root@student ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ ß添加阿里云的Rubygems仓库,国外资源会影响下载速度
http://mirrors.aliyun.com/rubygems/ added to sources
[root@student ~]# gem sources --remove http://rubygems.org/ ß移除原生的ruby仓库
http://rubygems.org/ removed from sources
[root@student ~]# gem install fpm ß安装fpm
3.fpm常用参数
-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
4.实战定制Nginx的Rpm包
编写脚本[root@oldboy ~]# cd /server/scripts/ ß进入到/server/scripts
[root@oldboy scripts]# vim nginx_rpm.sh ß这是安装完rpm包要执行的脚本
#!/bin/bash
useradd nginx -M -s /sbin/nologin
ln -s /application/nginx-1.6.2/ /application/nginx
[root@student scripts]# fpm -s dir -t rpm -n nginx -v 1.6.3 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/ ß打包
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.3-1.x86_64.rpm"}
[root@student scripts]# rpm -qpl nginx-1.6.3-1.x86_64.rpm ß查看包内容
[root@student scripts]# rpm -qp --scripts nginx-1.6.3-1.x86_64.rpm ß查看脚本
postinstall scriptlet (using /bin/sh):
#!/bin/sh
useradd nginx -M -s /sbin/nologin
ln -s /application/nginx/nginx-1.6.3/ /application/nginx
5.实战定制LNMP的Rpm包
如果是rpm包 直接依赖---然后替换配置文件,启动即可。如果是源码直接打包目录。
Rpm安装报错
安装制作好的rpm包报错:Error:cpio: Digest mismatch解决:yum remove prelink -y
相关文章推荐
- rpm打包利器rpm_create
- 自定义RPM打包+本地yum仓库 - 学习笔记
- 【linux】自定义rpm打包路径
- RPM打包利器RPM_CREATE
- 运维自动化_rpmbulid 线上服务rpm打包
- FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节
- rpm打包利器rpm_create简介
- 使用jenkins搭建自动化打包的apk 下载
- 【软件测试自动化-QTP系列讲座 8】==自定义COM组件的实现 (二)activex dll生成篇==
- MySQL5.6.12 rpm制作及及自动化部署安装
- 使用Maven的assembly插件实现自定义打包
- Android 自定义类库打包jar! 谁说不可以打包res 文件?
- 【Android自动化打包】03. APK的数字签名
- 前端打包利器:webpack工具
- rpm打包php 5.4至un-striped
- CentOS6.7上使用FPM打包制作自己的rpm包
- Centos下将swftools打包成rpm
- rpm打包工具
- Hudson之——Hudson的使用(使用 Hudson 来自动化编译、分析、打包、发布、部署项目)
- jfinal下超爽的freemarker自定义标签,web开发的利器