🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # fpm介绍 项目地址:[https://github.com/jordansissel/fpm](https://github.com/jordansissel/fpm) fpm的目标是使构建软件包(如rpm,deb,OSX软件包等)变得容易且快速。 简单说就是将一种类型的包转换成另一种类型。 # 安装fpm 1. fpm是ruby写的,因此系统环境需要ruby,CentOS 7需要ruby版本号大于2.2。 2. 安装ruby模块 yum -y install ruby rubygems ruby-devel rpm-build 3. 查看当前使用的rubygems仓库 gem sources list 4. 添加淘宝的Rubygems仓库,外国的源慢,移除原生的Ruby仓库 gem sources --add https://ruby.taobao.org/ --remove http://rubygems.org/ 5. 安装fpm,gem从rubygem仓库安装软件类似yum从yum仓库安装软件。 gem install fpm ps: 遇到安装错误请检查ruby版本 # 使用fpm ## 常用参数 ``` -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实例 1. 创建文件夹 mkdir -p /opt/server/{pkg,scripts} 2. 创建用户 useradd -s /sbin/nologin -M www 3. 下载nginx源码包,解压 wget http://nginx.org/download/nginx-1.16.1.tar.gz tar zxvf nginx-1.16.1.tar.gz 4. yum安装依赖 yum install -y pcre-devel openssl-devel 5. 编译安装 ``` ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module make make install ``` 6. 准备安装用到的脚本 ``` [root@localhost scripts]# cat /opt/server/scripts/nginx_install_before.sh #!/bin/bash useradd www -s /sbin/nologin -M mkdir -p /etc/nginx [root@localhost scripts]# cat /opt/server/scripts/nginx_install_after.sh #!/bin/bash ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ ln -s /usr/local/nginx/conf/nginx.conf /etc/nginx ``` 7. 打包rpm,默认输出到当前路径 ``` fpm -s dir -t rpm -n nginx -v 1.16.1 -d 'pcre-devel,openssl-devel' --before-install /opt/server/scripts/nginx_install_pre.sh --after-install /opt/server/scripts/nginx_install_post.sh -f /usr/local/nginx/ ``` ## rpm包的使用方法 1. rpm命令安装 [root@localhost~]# rpm -ivh nginx-1.16.1-1.x86_64.rpm error: Failed dependencies: pcre-devel is needed by nginx-1.16.1-1.x86_64 openssl-devel is needed nginx-1.16.1-1.x86_64 但会报如上依赖错误,需要先yum安装依赖才能安装rpm包。 2. yum命令安装rpm包 yum -y localinstall nginx-1.16.1-1.x86_64.rpm 这个命令会自动先安装rpm包的依赖,然后再安装rpm包。 3. 离线网络下需要先搭建本地YUM源