一、准备两台机器
准备两台虚拟机如下:
此实验均已机器均已关闭防火墙。
二、在master-61搭建yum仓库
2.1.安装必要工具
需要安装必要的工具,yum-utils
,里面包含了yumdownloader
这个工具,可以用来下载包及其依赖。
创建为一个yum仓库,需要安装createrepo工具。
[root@master-61 ~]#yum install -y yum-utils createrepo
2.2.创建存储RPM包的目录
[root@master-61 /]#mkdir -p /opt/local-repo
2.3.下载一些软件包及依赖到目录
[root@master-61 /]#yumdownloader --resolve --destdir=/opt/local-repo nginx nfs-utils mariadb-server
上次元数据过期检查:0:12:11 前,执行于 2025年03月11日 星期二 21时18分54秒。
(1/15): perl-Math-BigInt-1.9998.18-460.el9.noarch.rpm 516 kB/s | 188 kB 00:00
(2/15): mysql-selinux-1.0.13-1.el9_5.noarch.rpm 56 kB/s | 36 kB 00:00
(3/15): mariadb-10.5.27-1.el9_5.x86_64.rpm 3.3 MB/s | 1.6 MB 00:00
(4/15): mariadb-server-utils-10.5.27-1.el9_5.x86_64.rpm 968 kB/s | 211 kB 00:00
(5/15): perl-DBI-1.643-9.el9.x86_64.rpm 2.0 MB/s | 700 kB 00:00
(6/15): perl-Sys-Hostname-1.23-481.el9.x86_64.rpm 156 kB/s | 16 kB 00:00
(7/15): perl-Math-Complex-1.59-481.el9.noarch.rpm 644 kB/s | 45 kB 00:00
(8/15): mariadb-gssapi-server-10.5.27-1.el9_5.x86_64.rpm 115 kB/s | 14 kB 00:00
(9/15): mariadb-common-10.5.27-1.el9_5.x86_64.rpm 237 kB/s | 27 kB 00:00
(10/15): mariadb-server-10.5.27-1.el9_5.x86_64.rpm 5.9 MB/s | 9.7 MB 00:01
(11/15): nginx-1.26.3-1.el9.ngx.x86_64.rpm 393 kB/s | 997 kB 00:02
(12/15): mariadb-errmsg-10.5.27-1.el9_5.x86_64.rpm 1.1 MB/s | 211 kB 00:00
(13/15): nfs-utils-2.5.4-27.el9.x86_64.rpm 2.1 MB/s | 431 kB 00:00
(14/15): perl-DBD-MariaDB-1.21-16.el9_0.x86_64.rpm 881 kB/s | 151 kB 00:00
(15/15): mariadb-backup-10.5.27-1.el9_5.x86_64.rpm 5.0 MB/s | 6.5 MB 00:01
说明:
这里下载了nginx,nfs和MariaDB相关rpm包。--resolve
:自动下载依赖包。--destdir=/opt/local-repo
指定下载目录
查看目录
[root@master-61 /]#cd /opt/local-repo/
[root@master-61 /opt/local-repo]#ls
mariadb-10.5.27-1.el9_5.x86_64.rpm nfs-utils-2.5.4-27.el9.x86_64.rpm
mariadb-backup-10.5.27-1.el9_5.x86_64.rpm nginx-1.26.3-1.el9.ngx.x86_64.rpm
mariadb-common-10.5.27-1.el9_5.x86_64.rpm perl-DBD-MariaDB-1.21-16.el9_0.x86_64.rpm
mariadb-errmsg-10.5.27-1.el9_5.x86_64.rpm perl-DBI-1.643-9.el9.x86_64.rpm
mariadb-gssapi-server-10.5.27-1.el9_5.x86_64.rpm perl-Math-BigInt-1.9998.18-460.el9.noarch.rpm
mariadb-server-10.5.27-1.el9_5.x86_64.rpm perl-Math-Complex-1.59-481.el9.noarch.rpm
mariadb-server-utils-10.5.27-1.el9_5.x86_64.rpm perl-Sys-Hostname-1.23-481.el9.x86_64.rpm
mysql-selinux-1.0.13-1.el9_5.noarch.rpm
2.4.生成YUM仓库元数据
[root@master-61 /opt/local-repo]#pwd
/opt/local-repo
[root@master-61 /opt/local-repo]#createrepo .
Directory walk started
Directory walk done - 15 packages
Temporary output repo path: ./.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
[root@master-61 /opt/local-repo]#ll
总用量 21248
-rw-r--r-- 1 root root 1685168 3月 11 21:31 mariadb-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 6802953 3月 11 21:31 mariadb-backup-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 27421 3月 11 21:31 mariadb-common-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 215823 3月 11 21:31 mariadb-errmsg-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 14756 3月 11 21:31 mariadb-gssapi-server-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 10140481 3月 11 21:31 mariadb-server-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 215578 3月 11 21:31 mariadb-server-utils-10.5.27-1.el9_5.x86_64.rpm
-rw-r--r-- 1 root root 37323 3月 11 21:31 mysql-selinux-1.0.13-1.el9_5.noarch.rpm
-rw-r--r-- 1 root root 441058 3月 11 21:31 nfs-utils-2.5.4-27.el9.x86_64.rpm
-rw-r--r-- 1 root root 1020824 3月 11 21:31 nginx-1.26.3-1.el9.ngx.x86_64.rpm
-rw-r--r-- 1 root root 154378 3月 11 21:31 perl-DBD-MariaDB-1.21-16.el9_0.x86_64.rpm
-rw-r--r-- 1 root root 717213 3月 11 21:31 perl-DBI-1.643-9.el9.x86_64.rpm
-rw-r--r-- 1 root root 192503 3月 11 21:31 perl-Math-BigInt-1.9998.18-460.el9.noarch.rpm
-rw-r--r-- 1 root root 46399 3月 11 21:31 perl-Math-Complex-1.59-481.el9.noarch.rpm
-rw-r--r-- 1 root root 16069 3月 11 21:31 perl-Sys-Hostname-1.23-481.el9.x86_64.rpm
drwxr-xr-x 2 root root 4096 3月 11 21:47 repodata
createrepo
命令会在目录下生成repodata
文件夹,包含仓库元数据。
2.5.配置本地yum仓库
创建仓库配置文件:
[root@master-61 /opt/local-repo]#tee /etc/yum.repos.d/local.repo <<'EOF'
[local-repo]
name=Local YUM Repository
baseurl=file:///opt/local-repo
enabled=1
gpgcheck=0
EOF
测试本地yum源安装nginx
[root@master-61 /opt/local-repo]#yum clean all
85 个文件已删除
[root@master-61 /opt/local-repo]#yum makecache
···
Local YUM Repository 964 kB/s | 16 kB 00:00
···
元数据缓存已建立。
[root@master-61 /opt/local-repo]#yum install nginx
上次元数据过期检查:0:01:29 前,执行于 2025年03月11日 星期二 21时58分51秒。
依赖关系解决。
=========================================================================================================
软件包 架构 版本 仓库 大小
=========================================================================================================
安装:
nginx x86_64 2:1.26.3-1.el9.ngx local-repo 997 k
事务概要
=========================================================================================================
安装 1 软件包
总计:997 k
安装大小:3.3 M
确定吗?[y/N]: y
可以看到仓库为local-repo了
2.6.共享仓库给其他机器(通过http共享)
安装nginx并启动服务:
[root@master-61 /opt/local-repo]#yum install -y nginx
上次元数据过期检查:0:04:36 前,执行于 2025年03月11日 星期二 21时58分51秒。
软件包 nginx-2:1.26.3-1.el9.ngx.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@master-61 /opt/local-repo]#systemctl start nginx
[root@master-61 /opt/local-repo]#systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@master-61 /opt/local-repo]#
将本地仓库目录软链接到Nginx默认目录,并修改属主为nginx:
[root@master-61 ~]#chown -R nginx:nginx /opt/local-repo
[root@master-61 ~]#ln -s /opt/local-repo /usr/share/nginx/html/local-repo
[root@master-61 ~]#ll /usr/share/nginx/html/local-repo
lrwxrwxrwx 1 root root 15 3月 11 22:13 /usr/share/nginx/html/local-repo -> /opt/local-repo
[root@master-61 ~]#chown -R nginx:nginx /usr/share/nginx/html/local-repo
[root@master-61 ~]#ll /usr/share/nginx/html/local-repo
lrwxrwxrwx 1 nginx nginx 15 3月 11 22:13 /usr/share/nginx/html/local-repo -> /opt/local-repo
3.客户端机器上配置
test-110机器上创建repo文件
[root@test-110 ~]#tee /etc/yum.repos.d/local.repo <<'EOF'
[local-repo]
name=Local YUM Repository
baseurl=http://172.16.1.61/local-repo
enabled=1
gpgcheck=0
测试安装
[root@test-110 ~]#yum clean all
0 files removed
[root@test-110 ~]#yum install nginx -y
···
Local YUM Repository 2.1 MB/s | 16 kB 00:00
···
Dependencies resolved.
=========================================================================================================
Package Architecture Version Repository Size
=========================================================================================================
Installing:
nginx x86_64 2:1.26.3-1.el9.ngx local-repo 997 k
Transaction Summary
=========================================================================================================
Install 1 Package
Total download size: 997 k
Installed size: 3.3 M
Downloading Packages:
nginx-1.26.3-1.el9.ngx.x86_64.rpm 33 MB/s | 997 kB 00:00
---------------------------------------------------------------------------------------------------------
Total 32 MB/s | 997 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: nginx-2:1.26.3-1.el9.ngx.x86_64 1/1
Installing : nginx-2:1.26.3-1.el9.ngx.x86_64 1/1
Running scriptlet: nginx-2:1.26.3-1.el9.ngx.x86_64 1/1
----------------------------------------------------------------------
Thanks for using nginx!
Please find the official documentation for nginx here:
* https://nginx.org/en/docs/
Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* https://nginx.org/en/support.html
Commercial subscriptions for nginx are available on:
* https://nginx.com/products/
----------------------------------------------------------------------
Verifying : nginx-2:1.26.3-1.el9.ngx.x86_64 1/1
Installed:
nginx-2:1.26.3-1.el9.ngx.x86_64
Complete!
可以看到已经从本地yum仓库Repository 为 local-repo
安装啦