fpm定制rpm包方法

本文介绍了如何使用fpm工具来定制RPM包,以openresty为例,详细阐述了从卸载旧版ruby到安装ruby,再到安装fpm和创建nginx(openresty)的rpm包的整个过程,包括错误处理和安装脚本的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在工作中,有很多种制作rpm包的方法,研究了rpmbuild制作方法,感觉这个方法不好掌控,操作起来没有fpm方便,所以使用了fpm方法来定制rpm包,效果非常好。

在这里以制作openresty的rpm包为例进行步骤详解:

卸载系统自带的ruby包(yum remove -y ruby)

上传ruby2.5.5版本的安装包

解压并编译安装tar -zxvf ruby-2.5.5.tar.gz 

  cd ruby-2.5.5

    ./configure --prefix=/usr/local/ruby2.5

    make && make install

    export PATH=$PATH:/usr/local/ruby2.5/bin

    ruby -v

    gem install json -v 1.8.3  #如果报错信息如下图

请安装较新版本的json比如1.8.5,如果安装新版本报如下错误,处理方法:

ERROR:  Loading command: install (LoadError)
	cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

   1.第一种错误处理:

yum install zlib-devel -y  #如果已经安装则进行下一步
cd ruby-2.5.8/ext/zlib     #ruby-2.5.8是源码包解压之后的目录
ruby extconf.rb
vim Makefile  #打开Makefile修改里面的$(top_srcdir)为../..保存退出即可
make && make install

    2.第二种错误处理:

yum install openssl openssl-devel -y  #如果已经安装则进行下一步
cd ruby-2.5.8/ext/openssl     #ruby-2.5.8是源码包解压之后的目录
ruby extconf.rb
vim Makefile  #打开Makefile修改里面的$(top_srcdir)为../..保存退出即可,注意,这里可以批量替换哦
make && make install

下面是制作nginx的rpm包案例,我用的是openresty,前提是已经安装好了openresty哦

编写nginx安装脚本:

    vim nginx_install_devel.sh    

#!/bin/bash
useradd -M -s /sbin/nologin www -u 666
ln -s /usr/local/openresty/bin/* /usr/local/sbin/
ln -sf /usr/local/src/openresty-1.11.2.2 /usr/local/openresty

脚本编写完成

安装fpm 命令:

gem install fpm 

fpm制作rpm包命令:

fpm -s dir -t rpm -n openresty -v 1.11.2 -d 'pcre-devel,openssl-devel' --post-install /etc/bailitop/nginx_install_devel.sh -f /usr/local/openresty/

-n:指定安装的软件包名称

-v:安装软件的版本号

-d:安装软件支持的模块

--post-install:指定安装软件的脚本

-f:指定该软件安装目录

如果报错信息如下

Need executable 'rpmbuild' to convert dir to rpm {:level=>:error}

则需要先安装rpmbuild,安装命令为yum -y install rpm-build

然后再执行fpm命令
至此,rpm包制作完成,将该rpm包传送到其他服务器上,yum安装即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值