服务器更新后,yum客户端看不到新软件包


16

我们有一个内部yum服务器,其中包含几个存储库(RHEL存储库的副本,内部创建的程序等)。我们的内部系统已从Internet进行防火墙保护,因此它们只能使用我们的内部服务器。

为了在将补丁全面投入生产之前测试补丁,我们stable默认启用了一个仓库。任何更新都会放入存储-latest库中。修补服务器时,我们将使用-latest-repo构建新的基准并在几台服务器上对其进行测试。经过测试后,我们将该基准设为新的基准stable。该-latest回购协议默认情况下禁用。

仓库之一用于我们从epel,rpmforge等中获取的一些软件包。我们有一个脚本,该脚本仅将所需的软件包与所需的任何依赖项同步下来。软件包同步后,每晚都会使用createrepo重建仓库。由于这些程序包未经测试,因此最终会出现在int-optional-latest通常被禁用的存储库中。如果服务器需要该存储库中的软件包,我们将使用安装它enable-repo=int-optional-latest

今天,一位同事正在尝试在服务器上安装perl-Excel-Writer-XLSX。服务器找不到包。我尝试使用createrepo重建存储库,并greped repodata文件以确保该文件在那里。它是。我还使用以下方法验证了文件是否存在于存储库中

repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX

我还使用以下方法清除了客户端上的元数据缓存

sudo yum clean expire-cache

尽管如此,客户端仍然声称该软件包在服务器上不存在。

我不认为问题出在服务器端,因为当我尝试从另一台计算机进行搜索时,它找到了软件包。我验证了回购文件是正确的,并且名称yum.example.com在两台服务器上都解析为相同的IP地址-但是其中一个可以找到该程序包,而另一个则找不到。

Answers:


14

我开始研究yum服务器上的Web服务器日志,但没有找到IP中找不到文件的客户端点击。一开始我不理解这一点,因为我清除了客户端上的缓存。所以我又做了一次缓存清理,这次使用

sudo yum -v clean expire-cache

使用时-v,它将列出要清理的存储库-并且int-optional-latest不在列表中。我认为这是由于默认情况下禁用存储库。我做了另一次缓存清除,这次使用

sudo yum -v enable-repo=int-optional-latest clean expire-cache

之后,我尝试了另一个

sudo yum enable-repo=int-optional-latest install perl-Excel-Writer-XLSX

效果很好。


命令应在软件包名称的末尾带有X,例如:sudo yum enable-repo = int-optional-latest install perl-Excel-Writer-XLSX
Chris Madden

谢谢@ChrisMadden!剪切粘贴错误,很明显……
珍妮·D

1
sudo yum -v clean expire-cache

没有为我工作。但是,我能够使它与

sudo touch /etc/yum.repos.d/<your_repo_file>

yum repolist

显示它已更新。希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.