서로 다른 OS 주요 버전의 yum 저장소를 혼합하면 작동하지 않습니다.

서로 다른 OS 주요 버전의 yum 저장소를 혼합하면 작동하지 않습니다.

우선, 저는 일반적으로 서로 다른 주요 OS 버전에 대해 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으로 변경해야 합니다.

관련 정보