본문 바로가기
Old Posts/Linux

[Linux] CentOS Failed to download metadata for repo ‘appstream’ 해결방법

by A6K 2022. 5. 26.

CentOS에서 패키지 관리자인 yum이나 dnf를 사용하다가 'Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist'를 만나게 되는 경우가 있다.

$ sudo yum update -y
CentOS Linux 8 - AppStream                                                                                                                                                           35  B/s |  38  B     00:01
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

CentOS를 위한 패키지 저장소의 주소가 잘 못되었거나 주소에 접속할 수 없기 때문에 발생하는 문제다. 이 문제의 근본적인 원인은 2021년 12월 31일부로 CentOS 8의 EOL(End-Of-Life)이 도래했기 때문이다.

이 문제를 해결하기 위한 근본적인 방법은 CentOS Stream 혹은 다른 리눅스 배포판으로의 전환하는 것이다.

관련글 : https://www.centos.org/centos-linux-eol/

하지만 리눅스 배포판을 전환하는 작업은 매우 큰 작업이기 때문에 당장 급한불부터 꺼야한다. 당장 yum이나 dnf를 이용한 명령이 동작하도록 수정해보자.

해결방법

위와 같은 에러 메시지는 패키지 저장소의 주소가 잘 못되었기 때문이다. CentOS 8의 EOL이 도래하면서 Mirror Site가  Vault로 전환되어 주소가 변경되었다. 따라서 yum이나 dnf의 저장소 주소를 vault 주소로 변경하면 된다.

다음 명령어로 기존 Mirror site를 vault로 전환하여 dnf나 yum을 사용할 수 있다.

$ sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
$ sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*

다시 수행하려고 했던 명령을 입력하면 에러가 발생하지 않는 것을 볼 수 있다.

하지만 이 방법은 미러 사이트를 vault로 변경해서 넘어간 것일 뿐이다. vault는 아카이브이기 때문에 패키지들의 지속적인 업데이트가 없다. 따라서 보안에 취약할 수 있기 때문에 근본적으로는 CentOS Stream으로 전환하거나 RHEL 8 혹은 다른 리눅스 배포판으로의 전환도 고려해야한다.


관련글

https://hbase.tistory.com/321

 

댓글