??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
使用FPM打包工具打rpm包

转载   5431039   2017-06-21   浏览量:410


一:安装ruby环境和gem命令: fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5

  # yum -y install ruby rubygems ruby-devel

查看当前ruby源  

  # gem source -l  

添加国内源

  # gem sources -a //mirrors.aliyun.com/rubygems/

删除国外源

  # gem sources --remove --remove //rubygems.org/

安装fpm 可能要失败

  # gem install fpm

我这里解决方法安装旧版本的fpm

  # gem install fpm -v 1.4.0

  # gem -v

二:打包 以git-2.9.4.tar.gz打包为例子:

 第1步:将git编译安装到:/tmp/installdir/Data/apps/git下

  # tar xf git-2.9.4.tar.gz # cd git-2.9.4

  # make prefix=/tmp/installdir/Data/apps/git all

  # make prefix=/tmp/installdir/Data/apps/git install

 /tmp/installdir/为fpm打包时指定的相对路径,rpm安装时会自动去掉这个目录,git会直接安装到生产环境的/Data/apps/git下,所以要保障这个/tmp/installdir 目录的纯净。

 

第2步:建立rpm安装后需要执行脚本 在/tmp/installtarget/install_after.sh  #rpm安装后执行脚本

  #!/bin/bash

  /bin/cp -a /usr/bin/git /usr/bin/git.1.7.1  2> /dev/null

  /bin/rm -f /usr/bin/git

  /bin/ln -s /Data/apps/git/bin/git /usr/bin/git

  exit 0

 

第3步:建立rpm卸载后需要的执行的脚本 在/tmp/installtarget/remove_after.sh

 #!/bin/bash

 unlink /usr/bin/git

 /bin/mv /usr/bin/git.1.7.1 /usr/bin/git 2> /dev/null

 /bin/rm -rf /Data/apps/git

 exit 0

 

第4步打包

 fpm -s dir -t rpm -n hdf-git-client -v 2.9.4 -C /tmp/installdir/ --description 'git for haodf.com' --post-install /tmp/installtarget/install_after.sh --post-uninstall /tmp/installtarget/remove_after.sh -p /root/

 

FPM:常用参数说明

-s:指定源类型:    

           dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包    

           rpm: 对rpm进行转换    

           gem: 对rubygem包进行转换  

           python: 将Python??榇虬上嘤Φ睦嘈?/span>

-t:指定目标类型,即想要制作为什么包

-n:指定包的名字 -v:指定包的版本号

 -C:指定打包的相对路径

-d:指定依赖于哪些包,格式为-d 'name'

-f:第二次包时目录下如果有同名安装包存在,则覆盖它

 -p:输出的安装包的目录,不想放在当前目录下就需要指定

--post-install:软件包安装完成之后所要运行的脚本;同--offer-install

--pre-install:软件包安装完成之前所要运行的脚本; 同--before-install

--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove

--pre-uninstall:软件包卸载完成之前所要运行的脚本; 同—before-remove


转载自://blog.51cto.com/wskfnso/1940400

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



awk的使用---业务需求
awk是按照流来处理的,所以处理1-5G的文本数据相对还是可以的!求和awk-F:-vsum=0'{sum+=$3}END{printsum}'/etc/passwd或者 awk-F: '{sum+=$3}END{printsum}'/etc/passwd默认变量为0规定日志格式$17为domainname$19为request$21为响应状
使用fpm来制作rpm包
使用fpm来制作rpm包2017/2/22一、配置fpm环境1、安装ruby和fpm使用rvm来管理rubycurl -sSL https://rvm.io/mpapis.asc | gpg2 --import -curl -L https://get.rvm.io | bash&nb
Puppet使用ENC报'Could not load external node results for'
这个问题出现有一段时间了,最开始的时候从一天3-5次左右到最近的一天出现10多次的告警邮件...因为Puppet同步采取了主动触发和定时同步两种策略,几乎每次的报错都是在定时同步时出现...PuppetServer采用双主结构,Webui使用Foreman,为了确定这个报错是出现在那台服务器上,通过对源代码的log增加主机标记最终定位到了这个错误只是出现在一台服务器上...,出现的很偶然,但
ruby_expect??榈氖褂?.
通过ruby实现类expect功能的脚本..在ruby中有2两种实现方式:1.利用标准库中的Pty基于io流的方式实现(较为复杂,涉及到输入输出io流).2.通过rubygems利用扩展包实现.本次主要介绍这个。首先通过gem安装软件包:     在国内因为强大的GFW,导致rubygems安装第三方库很慢..  &nb
CocoaPods安装和使用教程
第一步 移除ruby的源地址gemsources--removehttps://rubygems.org/   //注释:等有反应之后再敲入以下命令第二步添加ruby的源地址   gemsources-a//ruby.taobao.org/   第三步查看ruby的源地址
Ruby_SVN打包脚本
根据SVN相关目录中的.f文件里面的内容来打包,并ci到另一个SVN,然后再发邮件给指定人员。脚本如下:#!/usr/bin/rubyrequire'net/smtp'require'fileutils'require'find'svn_server="//192.168.1.5/svn/TEST"to_mail="/home/test/maillist.tx
使用checkinstall制作rpm包
前段时间写过一篇 采用redhat官方指定的方法(自己写spec文件)制作RPM包今天写的主要是基于网上的2个开源软件来实现RPM包制作的个人试了一下感觉跟方便所以记录下 怕以后能用到一个checkinstall这个软件  应该有人听过他是一个交互式过程来制作RPM包的 过程比较简单还有一个是 fpm这个大家应
puppet的facter使用几例
在puppet中有一个很重要的组件template,配合facter??榭梢允迪职葱枧渲玫墓δ?。facter可以看做是在client端用来收集信息的一个功能组件。其代码目录可以通过facter|grepdirrubysitedir=>/usr/lib/ruby/site_ruby/1.8 查看(rb文件),每一个变量对应一个rb文件,rb文件的结构也比较简单,自定义的话
为什么要使用符号作为hash的键
使用符号在比较时即节省时间又节省内存,因为符号仅仅存储一次 ruby的符号是一种不可改变的字符串,同一个符号在代码中多次引用时,是指向同一个对象,拥有相同的object id 而字符串是可变的,代码中的相同的内容有时却要分别存储,拥有不同的object id 用字符串作为hash的键,ruby要计算该字符串的hash值,并将其与hash中的其他键的
零基础学习capistrano 使用(-)
学习Capistrano,主要考虑用其做代码的自动化发布参考:https://github.com/capistrano/capistranohttps://github.com/capistrano/capistrano/wiki//huacnlee.com/blog/using-nginx-proxy-to-mirror-rubygem-org///ruby.taoba