author:headsen chen

date: 2019-01-19  14:57:09

个人原创博客,转自请注明出处和作者,否则追究法律责任

1,安装依赖和语言包

yum -y install ruby rubygems ruby-devel gcc

2,添加阿里云的Rubygems仓库,外国的源慢

gem sources -a http://mirrors.aliyun.com/rubygems/

3,移除原生的Ruby仓库

gem sources --remove http://rubygems.org/

4,安装fpm

gem install fpm

此时报错:

[root@ops-rpmbuild01 ~]# gem install fpm
Building 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.

5,解决办法是 先安装rvm,再把ruby版本提升至2.3.3

yum -y install curl
curl -L get.rvm.io | bash -s stable

curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
  curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

再次运行:

curl -L get.rvm.io | bash -s stable 

source /usr/local/rvm/scripts/rvm

检测rvm是否安装成功:
rvm -v

安装一个版本的ruby

rvm install 2.2.3

设置一个默认的ruby版本

rvm use 2.3.3

ruby --version

6,再次安装fpm

gem install fpm

7,fpm的参数

#    fpm -h #查看命令的帮助,下面对常用的参数进行简单的说明
# -s:指定源类型
# -t:指定目标类型
# -n:指定名字
# -v:指定版本号
# -C:指定打包的相对路径
# -d:指定依赖于哪些包
# -f:第二次打包时目录下如果有同名安装包存在,则覆盖它
# -p:输出的安装包的目录,不想放在当前目录下就需要指定
# --post-install 软件包安装完成之后所要运行的脚本;同--after-install
# --pre-install 软件包安装完成之前所要运行的脚本;同--before-install

8,通过源码包安装Nginx并 启动

 yum install  -y pcre-devel openssl-devel
rpm -qa pcre-devel openssl-devel
mkdir -p /home/oldboy/tools
cd /home/oldboy/tools
wget -q http://nginx.org/download/nginx-1.10.2.tar.gz
tar fx nginx-1.10.2.tar.gz
cd nginx-1.10.2
useradd www
./configure --user=www --group=www --prefix=/application/nginx-1.10.2 --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /application/nginx-1.10.2 /application/nginx
/application/nginx/sbin/nginx
lsof -i:80

9,fpm打包实例

[root@localhost mnt]# fpm -s dir -t rpm -n nginx -v 1.0.0.2 -C /application/nginx-1.10.2 -f
Created package {:path=>"nginx-1.0.0.2-1.x86_64.rpm"}
[root@localhost mnt]# ls
install_after.sh nginx nginx-1.0.0.2-1.x86_64.rpm remove_after.sh

FPM打包工具使用的更多相关文章

  1. 使用FPM打包工具打rpm包

    使用FPM打包工具打rpm包 一:安装ruby环境和gem命令 fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5 # yum -y install ruby rubygems ...

  2. FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节

    注意部FPM时的环境一定要跟生产环境的系统版本最好是保持一至,我第一次测试没通过,(我在CENTOS7和部属FPM打好的包在Centos6.x和安装,结果失败) 1:安装 FPM打包工具的依赖包: [ ...

  3. FPM打包工具

    支持的源类型包: dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm: 对rpm进行转换 gem: 对rubygem包进行转换 python: 将Python模块打包成相应的类型 ...

  4. centos6.5安装fpm打包工具

    FPM功能简单说就是将一种类型的包转换成另一种类型.FPM的github:https://github.com/jordansissel/fpm 1.支持的源类型包: dir: 将目录打包成所需要的类 ...

  5. fpm 打包工具安装调试

    https://github.com/jordansissel/fpm  官方git yum install ruby-devel gcc make rpm-build rubygems gem so ...

  6. rpm打包工具---FPM

    FPM的安装:fpm是由ruby gem仓库里面安装的所以要先装ruby.yum安装的ruby版本是1.8.7版本,使用gem命令会报错: >= 1.9.3,所以要安装一个比1.9.3版本高的 ...

  7. fpm打包神奇rpm包升级python2.7.16

    fpm打包神器参考文档:https://www.cnblogs.com/flintlovesam/p/6594635.html FPM的安装:安装ruby环境和gem命令: yum -y instal ...

  8. Linux-源码安装及FPM打包

    目录 源码安装 制作RPM包(使用FPM工具) 安装rpm后要执行的脚本(优化版) 源码安装 这里举例Nginx的源码安装,需要前往Nginx官网找到稳定版本源码安装包下载. ## 源码安装nginx ...

  9. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

随机推荐

  1. Java写 插入 选择 冒泡 快排

    /** * Created by wushuang on 2014/11/19. */ public class SortTest { @Test public void mainTest() { i ...

  2. VS2012:升级Update2和Update3均告损坏,重装方法

    My steps (after backing up everything before deleting it): 1. Uninstalled VS2012 Pro from Windows 8 ...

  3. Eclipse + PyDev 快捷键

    ●多行缩进(减少缩进):tab/shift+tab ●复制行: Ctrl+Alt+方向键'↓' ●删除行:Ctrl+d ●自动完成:Alt+/  ●注释:Ctrl+/ ●窗口最大小:Ctrl+m == ...

  4. PHP文本操作

    1. 用PHP获取文件指定行或者随机行 <?php /*** * 功能: 随机获取一个文件里的某一行 * 实现: 先将文件读进一个数组: 随机获取0~数组长度-1之间的一个随机数:以这个随机数做 ...

  5. ioncube

    FileRun多功能的VPS文件管理器使用ioncube加密的 ioncube通过将代码编译成字节码,使PHP源代码免受他人监控.剽窃以及改动 ioncube提供了一个安装的向导程序 下载地址http ...

  6. flashfxp v3.7 注册码

    -------- FlashFXP Registration Data START --------FLASHFXPvwBW1S4QvwAAAAC5W5MNJwXnsl73i3CxcVAAvAyagF ...

  7. Linux定时运行程序脚本

    项目开发中经常需要用将某个脚本定时运行从而避免其运行并不会影响到其他程序.虽说可以在脚本中利用sleep命令来做这一点,Linux自带了crontab命令可以很好的执行这一操作. 比如我们有名为som ...

  8. Python 常用类库

    python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1 ...

  9. 产品半夜发现bug让程序员加班,程序员应如何回应?

    群友半夜2点被产品叫起来改东西,然后他打车去公司加班,群友愤慨,特为此创作一个小段子 产品:XXX出bug了你赶紧看看 修复一下 开发:我宿舍没电脑 没网络啊 产品:你看看周围有没有网吧远程一下 或者 ...

  10. error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800”

    _MSC_VER 定义编译器的版本.下面是一些编译器版本的_MSC_VER值:MS VC++ 10.0 _MSC_VER = 1600MS VC++ 9.0 _MSC_VER = 1500MS VC+ ...