fpm包安装-
2016-05-17 20:19
393 查看
【前提需求知识】rpm包的组成1、RPM的命名格式:name-version-release.arch.rpm
fpm包安装
【我的系统环境】centos 6.5
【解决依赖关系】 安装依赖包
添加国内镜像[root@ops-rpmbuild01
~]# gem sources -a http://ruby.taobao.org/改用
name:这里指的是对应软件的名称,比如httpd,我们的apache服务 version:这里的版本主要指的是对应的源代码的版本号(这其中的version有三部分组成:主版本号、次版本号、发布号) release:这个是这个RPM的修订的次数,发布商的发布版本号,与源代码的版本号无关 arch:这个是它所支持的硬件平台,有x86_64,i386,ppc,noarch等例子:httpd-2.2.15-29.el6.x86_64.rpm 上面,我们以httpd服务为例,它的name就是httpd,version为2.2.15,release为29.e16(红帽或者Centos厂商修订发布的第29次),这里,还包含了此包使用的系统,即centos,arch就是x86_64。 说明下常见的el6是代表啥意思:
fcXX,elXX:表示这个软件包的发行商版本,就像这里的fc18,说明这个软件包是在Fedora 18下使用的。而openssl-1.0.0-20.el6.x86_64.rpm表示这个软件包是在RHEL 6.x(Red Hat Enterprise Linux)/CentOS 6.x下使用。2、RPM的打包功能及其分包机制:
核心包,即主包,它的命名与源程序一样(不是源代码啊) 例子:php-5.3.3-26.el6.x86_64.rpm,上面提到的httpd也是核心包 子包:它在name的后面有个子包名 例子:php-mysql-5.3.3-26.el6.x86_64.rpm,这里的mysql就是子包名 例子:mysql-devel-5.1.52-1.el6.x86_64.rpm devel:表示这个RPM包是软件的子包开发包
fpm包安装
【我的系统环境】centos 6.5
【解决依赖关系】 安装依赖包
yum -y install ruby rubygems ruby-devel gcc
添加国内镜像[root@ops-rpmbuild01
~]# gem sources -a http://ruby.taobao.org/改用
gem sources -a https://ruby.taobao.org/[/code] href="https://ruby.taobao.org/" target=_blank>
移除默认的gem sources --remove http://rubygems.org/[/code] href="http://rubygems.org/" target=_blank>
查看源gem sources -l【安装fpm包】gem install fpm 改用gem install fpm -v 1.4.0[root@ops-rpmbuild01
~]# gem install fpm -v 1.4.0Successfully
installed fpm-1.4.01 gem installedInstalling ri
documentation for fpm-1.4.0...Installing RDoc
documentation for fpm-1.4.0... 参考:http://www.jianshu.com/p/df61ea673838 【结果】成功安装fpm --version1.4.0【错误1 】[root@ops-rpmbuild01
~]# gem sources -a http://ruby.taobao.org/Error fetching http://ruby.taobao.org/:bad
response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz) 原因:淘宝停止基于 HTTP
协议的镜像服务 需要改用https的协议 【错误2】[root@ops-rpmbuild01
~]# gem install fpmBuilding native
extensions. This could take a while...ERROR: Error installing fpm:ERROR:
Failed to build gem native extension. /usr/bin/ruby
extconf.rbcreating Makefile 原因: 系统没有gcc环境 ,安装yum install
gcc 【错误3】[root@ops-rpmbuild01
~]# gem install fpmBuilding native
extensions. This could take a while...Building native
extensions. This could take a while...ERROR: Error installing fpm:ruby-xz
requires Ruby version >= 1.9.3. 默认安装的是[root@ops-rpmbuild01
~]# ruby -vruby 1.8.7
(2013-06-27 patchlevel 374) [x86_64-linux] 解决办法: 1 更新ruby 解决办法2: 安装旧版本的fpm[root@ops-rpmbuild01
~]# gem install fpm -v 1.4.0
【fpm参数详解之用法】
fpm 包命令参数详解
语法:fpm [OPTIONS] [ARGS] ...
选项:-t 输出类型,我们是制作rpm包,所以-t rpm -s 输入类型,一般是输入的目录 -s dir -f 强制,即使安装的时候覆盖已经存在的源文件 -n 包名 -v 包的版本,默认是1.0 -d, 依赖包关系 -C CHDIR Change directory to here before searching for files(安装所需要文件的目录) --iteration 1.el6 发行 -p ~/rpmbuild/RPMS/x86_64/ rpm包制作生成后的位置 --description 添加包的描述信息 --category 这个软件属于系统的哪个组 --url 包官方路径 --license License -m, --maintainer MAINTAINER 默认是主机名 --no-rpm-sign --workdir WORKDIR 工作目录默认是/tmp
注意:
关于组categroy: 查看linux(centos)上所有软件的分组情况可以查看文件cat /usr/share/doc/rpm-4.8.0/GROUPSLicense: 软件授权方式,通常就是GPL
【小试牛刀】
参考github的说明 nodejs的rpm包制作(和官网有一定的修改看个人习惯和使用的包种类,我使用rpm包) https://github.com/jordansissel/fpm/wiki/PackageMakeInstall
步骤:cd /usr/local/src wget http://nodejs.org/dist/v0.6.0/node-v0.6.0.tar.gz tar xzf node-v0.6.0.tar.gz cd node-v0.6.0 ./configure --prefix=/usr/local make
This requires your 'make install' obey DESTDIR or otherwise allows you to install to a specific target directory.mkdir /data/installdir make install DESTDIR=/data/installdir
此时在/data/installdir这个目录下胡会生成很多目录文件
开始使用fpm制作
# Create a nodejs deb with only bin and lib directories:
# The 'VERSION' and 'ARCH' strings are automatically filled in for you
# based on the other arguments given.fpm -s dir -t rpm -n nodejs -v 0.6.0 -C /data/installdir \ -n nodejs \ -p /root \ --epoch 0 \ -d "libssl0.9.8 > 0" \ -d "libstdc++6 >= 4.4.3" \ --verbose \ --iteration 1.el6 \ --category 'Development/Languages' \ --description 'Node.js real-time applications' \ --url 'nodejs.org' \ --license GPL \ usr/local/bin usr/local/lib
查看制作好的包的结果:
rpm -qpi /root/nodejs-0.6.0-1.el6.x86_64.rpm
可以使用 rpm -qpi /root/nodejs-0.6.0-1.el6.x86_64.rpm 可以看到包中含有的文件
本文出自 “崔德华运维打工从业路” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1774475
相关文章推荐
- PowerDesigner 业务处理模型( BPM ) 说明 及Enterprise Architect使用教程
- 运维开发平台化ipmi和Cobbler构建自动化装机平台
- 关于组播TIdIPMCastServer的试验
- 2. npm 的使用
- 麦子学院 —— 产品经理的工作方法及应用(二)
- 产品经理三大领域的技术
- 使用npm install -g cordova命令安装cordova报错问题解决办法
- Activiti支持直接部署扩展名为bpmn的流程文件
- 打包Activiti的流程资源文件(bpmn20.xml、form、png)
- npm小结
- npm包管理工具
- jbpm4.4审批实例
- 与DevOps相关的一些概念:Trunk Based Development
- 代码静态分析工具--PMD,Findbugs,CheckStyle
- 麦子学院 ― 产品经理之基础阶段和产品思维
- 静态代码扫描——PMD自定义规则实践(Log日志文件中不要输出敏感信息)
- 修改npm全局安装模式的路径
- SAM和APM
- VISIO标准图-BPMN
- 产品经理如何做好时间管理,提升工作效率