我们有一个内部yum服务器,包含几个repos(RHEL repo的副本,内部创建的程序,等等).我们的内部系统是从互联网上防火墙的,所以他们只能使用我们的内部服务器.
为了在将它们一直推入生产之前测试补丁,我们有一个默认启用的稳定仓库.任何更新都会放在-latest repo中.当我们修补服务器时,我们将使用-latest-repo来构建新的基线并在几台服务器上进行测试.经过测试,我们将该基线作为新的稳定基准.默认情况下禁用-latest repos.
其中一个repos用于我们从epel,rpmforge等获取的一些包.我们有一个脚本,它只将我们想要的包与他们需要的任何依赖项同步.在同步包之后,每晚使用createrepo重建repo.由于这些软件包未经测试,因此它们最终会出现在通常被禁用的int-optional-latest repo中.如果服务器需要来自该repo的包,我们将使用enable-repo = int-optional-latest安装它.
今天,一位同事试图在服务器上安装perl-Excel-Writer-XLSX.服务器找不到包.我尝试使用createrepo重建存储库,并grepped repodata文件以确保文件存在.它是.我还验证了该文件存在于存储库中
repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX
我还使用了清除客户端的元数据缓存
sudo yum clean expire-cache
尽管如此,客户端仍然声称服务器上不存在该软件包.
我认为问题不在服务器端,因为当我尝试从另一台机器进行搜索时,它找到了包.我验证了repo文件是正确的,并且名称yum.example.com在两台服务器上解析为相同的IP地址 – 但其中一个可以找到包,而另一个则不能.