首先:我很清楚,一般来说,为不同的主要操作系统版本混合使用 yum 存储库是一个非常糟糕的主意。
然而,在 CentOS 7 上,我需要 CentOS 6 中的一些软件包。因此,我添加了 CentOS 6 存储库,并用$releasever
显式替换6.8
(再次,非常糟糕,我知道)。
执行中
yum list foobar
我希望获得 CentOS 7 和 6 中所有可用的 foobar 版本的列表。但是 yum 只显示el7
软件包。我已经验证它foobar
位于已启用的 CentOS 6 存储库中。
我本来希望能够下载/安装 CentOS 6 软件包,但失败了:
# yum --disablerepo="*" --enablerepo="CentOS-6*" install foobar
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
There are no enabled repos.
Run "yum repolist all" to see the repos you have.
You can enable repos with yum-config-manager --enable <repo>
按照建议检查存储库:
# yum repolist all |grep "CentOS-6.8 - Base"
base_6/x86_64 CentOS-6.8 - Base enabled: 6,696
yum 是否明确检查存储库是否适合主要版本?或者我还缺少其他东西吗?
答案1
如果您在 /etc/yum.repo.d/ 中检查 CentOS 6 Base 的存储库文件,您会发现以下字符串:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
CentOS 7 中的变量 $releasever 始终等于 7,因此如果您想从此存储库安装某些内容,则应将此变量更改为 6。