CentOS 7 또는 CentOS 8, 9에서 yum
이나 dnf
패키지 관리자를 사용하여 패키지를 설치하거나 업데이트하려 할 때, 아래와 같은 문제가 발생하여 설치에 실패하는 경우가 있습니다.
# yum upgrade -y CentOS Linux 8 - AppStream 34 B/s | 38 B 00:01 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
No URLs in mirrorlist 해결 방법
이 문제는 CentOS 패키지 리포지토리의 주소가 잘못되었거나 접속하지 못하여 발생하는 문제이지만, 최근들어 CentOS 7/8의 공식 패키지의 지원 종료로 인해 깨끗한 OS에서도 빈번하게 발생하는 문제입니다.
CentOS는 이제 더 이상 일반적인 지원 목록에서 제외되었으며 CentOS를 사용할 경우 Stream 버전을 사용하도록 권장하고 있습니다. Stream 버전을 사용하기 위해서는 기존의 운영체제에서 새 Stream 배포판으로 이전해야만 합니다.
이 문서가 도움이 되실 수 있습니다: https://www.centos.org/centos-linux-eol/
이 문제는 아래 두 명령어를 실행하여 저장소 경로를 변경함으로서 일시적으로 해결하실 수 있습니다. 일반적인 패키지 설치에는 문제가 더 이상 발생하지 않겠지만, CentOS 8 시스템 관련 업데이트는 더 이상 지원되지 않으므로 어디까지나 일시적인 해결책임을 인지하셔야 합니다.
아래 과정은 root
사용자 권한을 사용하여 진행해야 합니다.
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
결론적으로 미래에는 CentOS Stream으로 이전해야만 하는 상황입니다. 아래 CentOS 다운로드 링크에서 Stream 배포판에 대해 알아보실 수 있습니다.
또는 하단의 명령어를 사용한 후 재부팅하면 CentOS Stream 배포판으로 교체할 수 있다고 합니다. (직접 확인해보지는 않았습니다.)
$ sudo dnf install centos-release-stream -y $ sudo dnf swap centos-{linux,stream}-repos -y $ sudo dnf distro-sync -y
감사합니다.
그런데 위의
sudo sed -i -e “s|mirrorlist=|#mirrorlist=|g” /etc/yum.repos.d/CentOS-*
sudo sed -i -e “s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g” /etc/yum.repos.d/CentOS-*
명령어를 적용시킨 후
오류: repo ‘gitlab_gitlab-ce’의 메타 데이터를 다운로드하지 못했습니다: repomd.xml GPG signature verification error: Bad GPG signature
라는 오류가 발생하는데 혹시 이에대해 아시는 정보가 있을까요?