先ping
先ping
Published on 2024-07-30 / 37 Visits
0
0

实验-自建yum源仓库

一、准备两台机器

准备两台虚拟机如下:

主机名称

IP地址

备注

master-61

172.16.1.61

服务端 用于创建本地yum仓库

test-110

172.16.1.110

客户端 使用yum从本地仓库进行软件安装

此实验均已机器均已关闭防火墙。

二、在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安装啦


Comment