1.下载nginx源码包
wget http://nginx.org/download/nginx-1.20.1.tar.gz
2.更新yum软件源
yum update
3.下载编译工具和依赖
yum install -y gcc pcre-devel pcre zlib zlib-devel
4.解压tar包
tar -zxvf nginx-1.20.1.tar.gz -C ~/
5.进入源码文件配置编译信息
# --prefix后面加的是绝对地址 意思是编译安装后软件输出的位置
./configure --prefix=/opt/nginx
6.编译&编译安装
make && make install
7.安装RAM密钥
command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
8.安装RAM
curl -L get.rvm.io | bash -s stable
9.更新RAM的配置文件
source /etc/profile.d/rvm.sh
10.安装Ruby2.6
rvm install 2.6
11.查看ruby是否安装成功
ruby -v
12.安装fpm依赖模块
yum -y install rubygems ruby-devel
13.更换rubygems仓库
gem sources -a http://mirrors.aliyun.com/rubygems/
gem sources --remove https://rubygems.org/
gem source list
14.安装fpm工具
gem install fpm
15.检查fpm是否正确安装
fpm --help
16.编写shell文件
vim /root/rpm_building/ngnix_rpm.sh
#!/bin/bash
# 源码编译一般都要添加执行用户
useradd nginx -M -s /sbin/nologin
17.打包
打包格式:
fpm -s 源文件类型 -t 目标文件类型 -n 打包后名称 -v 打包后版本号 -d 所需要依赖 --post-install 安装完后执行的脚本 -f 源文件地址
fpm -s dir -t rpm -n nginx -v 1.20.1 -d 'pcre-devel,openssl-devel' --post-install /root/rpm_building/ngnix_rpm.sh -f /opt/nginx/
参数说明:
1.-s 指定源类型
2.-t 指定目标类型,即想要制作为什么包
3.-n 指定包的名字
4.-v 指定包的版本号
5.-d 指定依赖于哪些包
6.-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
7.–post-install 软件包安装完成之后所要运行的脚本;同–after-install
可能会出现的错误:
- Need executable ‘rpmbuild’ to convert dir to rpm {:level=>:error}
解决办法:安装rpm-build
yum install rpm-build -y