RPM包制作

因为fpm依赖于ruby环境,所以我们先安装环境

yum install -y ruby ruby-devel rubygems

添加 TUNA 源并移除默认源

gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/

列出已有源

gem sources -l

查看的时候会只有一个新的源

gem install fpm 
====>   显示源的地址:https://mirrors.tuna.tsinghua.edu.cn/rubygems/ -

安装fpm

安装fpm正确界面
[root@m1_m.61  08:10:26 ~]# gem install fpm   <========此命令可能受网络原因影响,需要执行多次
Fetching: cabin-0.9.0.gem (100%)
Successfully installed cabin-0.9.0
Fetching: backports-3.14.0.gem (100%)
Successfully installed backports-3.14.0
Fetching: arr-pm-0.0.10.gem (100%)
Successfully installed arr-pm-0.0.10
Fetching: clamp-1.0.1.gem (100%)
Successfully installed clamp-1.0.1

正式制作rpm包

制作rpm包:(制作的包会显示在当前目录)
[root@m1_m.61  08:14:35 /application]# fpm -s dir -t rpm -n nginx -v 1.16.0 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.16.0/
Created package {:path=>"nginx-1.16.0-1.x86_64.rpm"}
[root@m1_m.61  08:14:52 /application]# ll
total 2696
lrwxrwxrwx  1 root root      26 Apr 30 18:35 nginx -> /application/nginx-1.16.0/
drwxr-xr-x 11 root root     151 Apr 30 18:37 nginx-1.16.0
-rw-r--r--  1 root root 2757738 May  7 08:14 nginx-1.16.0-1.x86_64.rpm

>上条命令详解
fpm      -s dir                       -t rpm                  -n nginx             
      指定 源类型                  指定目标类型             指定包的名字
-v 1.16.0                     -d 'pcre-devel,openssl-devel'                        
指定包的版本                        指定依赖于哪些包
       
--post-install /server/scripts/nginx_rpm.sh (此脚本只要创建即可,不需要写入内容)   
      软件包安装完成之后所要运行的脚本         
    -f /application/nginx-1.16.0/
      第二次打包时目录下如果有同名安装包存在,则覆盖它
>
-s          指定源类型
-t          指定目标类型,即想要制作为什么包
-n          指定包的名字
-v          指定包的版本号
-C          指定打包的相对路径  Change directory to here before searching forfiles
-d          指定依赖于哪些包
-f          第二次打包时目录下如果有同名安装包存在,则覆盖它
-p          输出的安装包的目录,不想放在当前目录下就需要指定
--post-install      软件包安装完成之后所要运行的脚本;同--after-install
--pre-install       软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall    软件包卸载完成之后所要运行的脚本;同--after-remove
--pre-uninstall     软件包卸载完成之前所要运行的脚本;同--before-remove
>使用rpm -qpl 命令可以查看rpm包的内容。
>注:fpm类似tar打包一样,只是fpm打的包能够被yum命令识别而已。
>软链接可以打包成rpm包,但是打包后里面的内容只有一个软链接
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容