1. 背景:为什么要将源码包转化为rpm包呢?
1. 简化安装的过程,可以自动解决依赖关系,便于升级和卸载
2. 提高了软件的可移植性
3. 便于分发和共享
2. 转化过程
2.1. 安装将源码包转化为rpm包的工具
[root@test ~]# yum -y install rpm-build
2.2. 拷贝源码包到rpmbuild的工作目录
[root@test ~]# cp nginx-1.17.6.tar.gz rpmbuild/SOURCES/
2.3. 安装nginx的依赖
[root@test ~]# yum -y install gcc make pcre-devel openssl-devel
2.4. 编辑配置文件
[root@test ~]# cat rpmbuild/SPECS/nginx.spec
Name:nginx
Version:1.17.6
Release:1
Summary:test
#Group:
License:GPL
URL:www.a.com
Source0:nginx-1.17.6.tar.gz
#BuildRequires:
Requires:pcre-devel openssl-devel
%description
test~~
%prep
%setup -q
%build
./configure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/*
%changelog
[root@test ~]#
2.5. 将源码包转换为rpm包
[root@test ~]# rpmbuild -ba rpmbuild/SPECS/nginx.spec
2.6. 执行rpmbuild之后生成rpm包
[root@test ~]# ls rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm
rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm
2.7. 哪台机器要用到这个rpm包就可以拷贝到哪台机器了
3. 进一步操作-将做好的rpm包配成网络yum源
3.1. 安装httpd服务并启动
[root@test ~]# yum -y install httpd
[root@test ~]# systemctl start httpd
3.2. 在/var/www/html/目录下创建nginx目录,并将做好的rpm包复制到nginx目录下
root@test nginx]# cd /var/www/html/
[root@test html]# mkdir nginx
[root@test html]# ll
total 4
drwxr-xr-x 2 root root 4096 Sep 3 20:43 nginx
[root@test html]#
[root@test html]# cp ~/rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm nginx/
[root@test html]# ls
nginx
[root@test html]# ls nginx/
nginx-1.17.6-1.x86_64.rpm
3.3. 安装生成yum源工具
[root@test ~]# yum -y install createrepo
3.4. 在/var/www/html/中执行以下命令
[root@test ~]# createrepo nginx
3.5. 将原本的yum源改一个名字
改之前:
[root@test ~]# ll /etc/yum.repos.d/
total 8
-rw-r--r-- 1 root root 675 Sep 3 20:05 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Sep 3 20:05 epel.repo
改之后:
[root@test yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@test yum.repos.d]# mv epel.repo epel.repo.bak
[root@test yum.repos.d]# ls
CentOS-Base.repo.bak epel.repo.bak
3.6. 创建自定义的yum源文件
[root@test yum.repos.d]# vim nginx.repo
[root@test yum.repos.d]# cat nginx.repo
[nginx]
name=nginx
baseurl=http://39.103.57.11:80/nginx
enable=1
gpgcheck=0
[root@test yum.repos.d]# ls
CentOS-Base.repo.bak epel.repo.bak nginx.repo
3.7. 浏览器查看
3.8. 通过yum安装nginx
[root@test ~]# yum -y install nginx
3.9. 停止httpd服务,不然会占用80端口
[root@test ~]# systemctl stop httpd
3.10. 启动nginx
[root@test ~]# /usr/local/nginx/sbin/nginx
[root@test ~]# ss -lntup | grep 80
udp UNCONN 0 0 *:68 *:* users:(("dhclient",pid=803,fd=6))
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=4927,fd=6),("nginx",pid=4926,fd=6))
[root@test ~]#
3.11. 浏览器访问