本地 yum repo 出现问题

本地 yum repo 出现问题

我尝试使用 在服务器 (alecto) 上设置本地 repo reposync。此部分似乎顺利完成,并且目标目录 (/repo) 已填充。

我这样做是为了能够更新运行 CentOS 的多个虚拟机,而无需影响我的互联网连接。

问题是,在虚拟机上使用“yum update”时,大多数(并非全部)软件包都会失败,显然是在寻找比 /repo 目录中安装的软件包更旧的版本。例如,zlib-1.2.7-17当版本/repo为时,它会尝试安装zlib-1.2.7-18。我不知道它从哪里得到了应该使用 -17 版本的想法。

VM 中仅定义了一个 repo,/etc/yum.repos.d directory - alecto.repo其中包含:

[alecto]
name=Local network repo on Alecto
baseurl=ftp://192.168.1.110/
enabled=1
gpgcheck=0

这不是 FTP 设置 - 一些安装有效(例如yum install pigz),并且它们可能有效,因为它们的版本号不经常更改。

createrepo我已经在所有重新同步的目录上运行,并且已经清除了yum虚拟机上的所有缓存。

我的问题是:到底发生了什么?如果失败了,它从哪里yum获取它认为需要安装的版本号?

我已经苦苦思索了两天了,真的需要一些帮助。

答案1

access.redhat.com 上有几个问答显示了以下设置:

对于虚拟机

$ cat /etc/yum.repos.d/local.repo
[RHEL7]
name=Red Hat Enterprise Linux $releasever - $basearch
baseurl=ftp://<ip_address>/<somedirectory>/
enabled=1
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

然后运行以下命令:

$ sudo yum clean all
$ sudo yum repolist
[...]
RHEL7             | 1.5 kB     00:00     
RHEL7/primary     | 920 kB     00:00     
RHEL7                               3285/3285

repo id          repo name       status

RHEL7 Red Hat Enterprise Linux 6Server - x86_64     3,285
            repolist: 3,285

然后您可以在虚拟机上运行:

$ sudo yum update

注1:这是 URL,但需要帐户才能查看 -https://access.redhat.com/solutions/3187892

问答环节还引用了 YouTube 上的这个视频,任何人都可以观看,标题为:创建本地存储库并与离线系统共享

笔记2:您没有展示reposync下载 repo 的方法,但我怀疑您使用的方法是问题的根源。请观看视频,它显示了如何正确执行reposync

答案2

解决了!

我对发出 reposync 命令使用 alecto 自己的 yum.repos.d 来填充 /repo 的事实感到困惑。不知何故,我认为这同样适用于客户端 - 但事实并非如此,所以我不能只在客户端上指定 /repo 作为起点。这意味着 alecto.repo 从看起来像这样

[alecto]
name=Local network repo on Alecto
baseurl=ftp://192.168.1.110/
enabled=1
gpgcheck=0

对此

[base]
name=Local network repo on Alecto - base
baseurl=ftp://192.168.1.110/base/
enabled=1
gpgcheck=0

[epel]
name=Local network repo on Alecto - epel
baseurl=ftp://192.168.1.110/epel/
enabled=1
gpgcheck=0

etc...

我仍然不明白 -17 版本的 zlib 来自哪里,但我有更多时间时会研究一下。

相关内容