使用FPM方式制作RPM包

fpm 制作rpm包

 
  • 使用fpm命令制作rpm包并安装

工作中有如下情况需要将文件打包rpm:

  1. 避免重复工作,将源码程序打包为rpm
  2. 使用yum发布项目,项目打包为rpm
  3. 将自己写好的程序打包为rpm,提供给用户下载
  4. 其他

以前打包rpm是一个非常复杂的一件事情,自从有了fpm,打包rpm就和tar打包文件一样简单

支持的源类型包:

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

支持的目标类型包:

    • rpm: 转换为rpm包
    • deb: 转换为deb包
    • solaris: 转换为solaris包
    • puppet: 转换为puppet包

FPM常用参数:

-s:指定源类型

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

-n:指定包的名字

-v:指定包的版本号

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

-d:指定依赖于哪些包

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

-p:制作的rpm安装包存放路径,不想放在当前目录下就需要指定;

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

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

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

--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
--prefix:制作好的rpm包默认安装路径;

安装FPM

基于已安装了epel源后进行安装ruby等软件

1.安装依赖包

 yum -y install ruby rubygems ruby-devel

2.安装生成RPM包的基础关键命令

yum -y install rpm-build

3.升级软件版本

gem update --system

报错后会显示需要的版本号 ==> x.xx.x

4.安装该版本的软件包

yum -y install rubygems-update -v(提示需要的版本号)

5.再次进行升级

gem update --system

6.添加国内的源(增加读取速度)

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

7.移除国外源

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

8.安装FPM工具

gem install fpm

9.编写nginx脚本

vim nginx.sh

#!/bin/bash

#创建运行用户和组

useradd -M -s /sbin/nologin nginx

#创建链接文件

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

#指定测试网页

echo “<h1>欢迎来到nginx</h1>” > /usr/local/nginx/html/index.html

#起服务

nginx

10.制作软件包

fpm -s dir -t rpm -n nginx -v (nginx版本号) -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx/

**查看软件包的版本号

 

posted @ 2019-09-17 15:32  Joshua¥A¥  阅读(256)  评论(0编辑  收藏  举报