源码包制作成rpm包,可以在centos系列系统上平移
其他机器需要这个环境,把包发过去,就可以yum -y install new_pkg_name.rpm安装
比较方便
rpm包构建过程:
第一步:下载tar.gz源码包
在nginx官网下载自己准备用的版本,
把包传到linux主机:
真机是windows的话,传输方法有
1. rz命令 # receive ZMODEM
2. 用windterm远程登录时,直接把源码包往windterm界面拖,就和往聊天窗口拖文件类似
3. windterm快捷键,alt+w 然后 alt+f,会打开文件管理器,右击其空白处,点击“上传到当前文件夹”,选择源码包所在路径
上传到Linux主机的路径为:当前目录
官网地址:nginx: downloadhttps://nginx.org/en/download.html
第二步:安装 rpm-build
yum -y install rpm-build
第三步:创建默认目录树
]# rpmbuild -ba nginx.spec
会报错,但是会产生一个默认目录rpmbuild
]# ls rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
第四步:放材料
把源码包放到SOURCES目录中
把配置文件放在SPECS目录中
创建之后的结果会放在RPMS目录中
cp nginx-1.22.1.tar.gz rpmbuild/SOURCES
第五步:写配置文件
~]# cat rpmbuild/SPECS/nginx.spec
Name: nginx # rpm包名
Version: 1.22.1 # 版本
Release: 1 # 发行版
Summary: nginx is a tool for web server # Rpm概述信息,可自定义
# Group:
License: GPL # 自由软件
URL: www.test.com # 可自定义
Source0: nginx-1.22.1.tar.gz #源码包名称
# BuildRequires: gcc make pcre-devel openssl-devel # 依赖关系
Requires: pcre-devel openssl-devel # 依赖包
%description
nginx is a tool for web server, http/https cluster proxy, and TCP/UDP scheduler # rpm描述信息,可自定义
%post # 添加
useradd nginx # 用rpm包安装nginx之后,自动执行这条指令,创建用户nginx
%prep
%setup -q
%build
./configure --with-stream --with-http_ssl_module --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module # 跟装哪些模块,按自己需求
make %{?_smp_mflags}
%install
%make_install
%files
%doc
/usr/local/nginx/* # 安装路径
%changelog
第六步:用配置文件和源码包构建rpm包
构建成功:
]# rpmbuild -ba rpmbuild/SPECS/nginx.spec
]# ls rpmbuild/RPMS/x86_64/
nginx-1.22.1-1.x86_64.rpm nginx-debuginfo-1.22.1-1.x86_64.rpm nginx-debugsource-1.22.1-1.x86_64.rpm
第七步:准备安装环境
~]# grep nginx /etc/passwd
~]# ls /usr/local/nginx
ls: 无法访问'/usr/local/nginx': 没有那个文件或目录
~]# rpm -q nginx
未安装软件包 nginx
第八步:使用rpm包安装nginx
~]# yum -y install rpmbuild/RPMS/x86_64/nginx-1.22.1-1.x86_64.rpm
~]# rpm -q nginx
nginx-1.22.1-1.x86_64
第九步:测试验证
~]# !grep
grep nginx /etc/passwd
nginx:x:1000:1000::/home/nginx:/bin/bash
~]# ls /usr/local/nginx/
conf html logs sbin
~]# rpm -q nginx
nginx-1.22.1-1.x86_64
~]# /usr/local/nginx/sbin/nginx
~]# ss -ntulp | grep nginx
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=15819,fd=9),("nginx",pid=15818,fd=9))