热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用FPM快速生成RPM包

许多朋友始终觉得RPM难做,主要是因为SPEC规则比较多,需要花精力去了解和熟悉。之前试用一个叫checkinstall的工具,可以自动打RPM包。很久没有维护了,在CentOS6

许多朋友始终觉得RPM难做,主要是因为SPEC规则比较多,需要花精力去了解和熟悉。之前试用一个叫checkinstall的工具,可以自动打RPM包。很久没有维护了,在CentOS6上编译有问题。虽然也有网友给打了Patch,最终能用起来,可惜使用过程中还是会遇到诸多错误。

如今巧遇FPM,一行命令就搞定RPM包!

使用FPM快速生成RPM包

一、我们来先安装FPM:

# FPM是Ruby模块
yum -y install ruby rubygems ruby-devel
# 添加淘宝的Ruby仓库
gem sources -a http://ruby.taobao.org/
# 移除原生的Ruby仓库
gem sources --remove http://rubygems.org/
# 安装fpm
gem install fpm

二、官网介绍了用FPM打deb包,我来翻译成rpm版:

# 去nodejs官网下载最新源码包
wget http://nodejs.org/dist/v0.10.12/node-v0.10.12.tar.gz
# 解压
tar zxvf node-v0.10.12.tar.gz -C /dev/shm/
# 进入源码目录
cd /dev/shm/node-v0.10.12/
# 指定配置参数
./configure --prefix=/usr --dest-cpu=x64 --dest-os=linux
# 使用多核编译
make -j24
mkdir /dev/shm/node-root
# 指定安装路径
make -j24 install DESTDIR=/dev/shm/node-root
# 生成RPM
fpm -f -s dir -t rpm -n nodejs --epoch 0 -v 0.10.12 --iteration 1.el6 -C /dev/shm/node-root -p ~/rpmbuild/RPMS/x86_64/ -d 'openssl >= 0.9.8'  -d 'libstdc++ >= 4.4.3' --verbose --category 'Development/Languages' --description 'Node.js real-time applications' --url 'nodejs.org' --license 'BSD' -m 'higkoo' --no-rpm-sign --workdir /dev/shm usr/bin usr/lib usr/share
# 查看RPM包信息
rpm -qpi ~/rpmbuild/RPMS/x86_64/nodejs-0.10.12-1.el6.x86_64.rpm

三、查看安装包信息:

使用FPM快速生成RPM包

 小技巧:'-e' 参数支持打包之前手动修改FPM自动生成的SPEC文件,然后再打包。不过注意CentOS5和CentOS6之间的rpm包不能混用,因为他们之间的glibc版本不同,动态库链接不上。

 OK,没玩过就赶紧动手吧!

via : http://hi.baidu.com/higkoo/item/204c61c0d450ca3098b4980c 

使用FPM快速生成RPM包

推荐阅读
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 与.Net大师Jeffrey Richter面对面交流——TUP对话大师系列活动回顾(多图配详细文字)...
    与.Net大师JeffreyRichter面对面交流——TUP对话大师系列活动回顾(多图配文字)上周末很有幸参加了CSDN举行的TUP活动, ... [详细]
  • 让你明白kvm是什么
    参考:https:blog.csdn.netbbwangjarticledetails80465320KVM工具集合:libvirt:操作和管理KVM虚机的虚拟化API ... [详细]
  • 数学中的常见的距离公式
    数学中的常见的距离公式转载自:点击打开链接最近看到文章中对距离的衡量依据所针对的问题,针对所使用到的各种距离公式从网上搜罗如下1.欧氏距离,最常见的两点之间或多点之间的距离表示法, ... [详细]
author-avatar
平凡天使心619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有