
CentOS 7, 8등 서비스가 종료된 OS를 새로 설치한 후 yum / dnf 명령어가 정상 동작하지 않는 경우가 자주 발생합니다.
이는 CentOS 프로젝트 정책 변경으로 인해 기본 미러 레포지토리가 더 이상 유지되지 않기 때문이며, 이 경우 기존 Base / Updates 레포를 vault.centos.org로 변경해주어야 합니다.
1. yum / dnf 이 동작하지 않는 이유
- CentOS 7 : 2024-06-30 EOL (End Of Life)
- CentOS 8 : 2021-12-31 EOL
- 공식 미러에서 패키지 제거 → 기본 repo 접근 불가
따라서 기본 레포를 그대로 사용하면 아래와 같은 오류가 발생합니다.
Cannot find a valid baseurl for repo: base
Failed to download metadata for repo
2. 해결 방법 개요
CentOS에서 제공하는 보관용 아카이브 레포지토리(vault.centos.org)를 사용합니다.
- 과거 릴리즈 패키지를 그대로 보관
- 보안 업데이트는 제공되지 않음 (중요)
- 레거시 서버 / 테스트 환경에 적합
3. vi 편집기를 이용한 레포 URL 일괄 변경 방법
repo 파일을 직접 수정하는 대신, vi의 치환 기능(%s)을 사용하면 기존 미러 레포 주소를 vault.centos.org로 빠르게 변경할 수 있습니다.
1) repo 파일 열기
vi /etc/yum.repos.d/CentOS-Base.repo
2) mirrorlist 비활성화
:%s/^mirrorlist=/#mirrorlist=/g
mirrorlist 항목은 더 이상 사용되지 않으므로 주석 처리합니다.
3) 기존 mirror URL을 vault 레포로 치환
:%s|mirror.centos.org|vault.centos.org|g
구분자로 / 대신 |를 사용하면 URL 치환 시 가독성이 좋아집니다.
4) 주석 처리된 baseurl 활성화
:%s/^#baseurl=/baseurl=/g
기본적으로 주석 처리된 baseurl을 다시 활성화하여 vault 레포를 사용하도록 변경합니다.
5) 저장 후 종료
:wq
4. vi 치환 명령어 요약
| 명령어 | 설명 |
| :%s/old/new/g | 파일 전체에서 old → new 치환 |
| :%s/^text/#text/g | 라인 시작 문자열 주석 처리 |
| :%s|old|new|g | / 대신 | 구분자 사용 (URL 치환에 유용) |
vi 치환 방식은 여러 repo 파일을 수정해야 할 때 특히 유용하며, 최소한의 작업으로 레포 설정을 변경할 수 있습니다.
실무에서는 위의 방법이 CentOS 7/8 긴급 복구, 신규 서버 세팅, 레거시 환경 유지 시 자주 활용되는 방법입니다.
위의 방법 외에 5, 6번의 방법을 통한 수정 방법도 있으니, 편한 방법으로 적용 해보시면 됩니다.
5. CentOS 7 레포지토리 변경 방법
cd /etc/yum.repos.d/
기존 repo 백업
mkdir backup
mv CentOS-*.repo backup/
Vault 레포 생성
cat << EOF > CentOS-Base.repo
[base]
name=CentOS-7 - Base
baseurl=http://vault.centos.org/7.9.2009/os/\$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7 - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/\$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7 - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/\$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF
6. CentOS 8 레포지토리 변경 방법
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' CentOS-*
CentOS 8은 기본적으로 8.5 기준 vault 레포를 사용하게 됩니다.
7. 캐시 초기화 및 동작 확인
yum clean all
yum makecache
yum repolist
정상적으로 repo 정보가 출력되면 설정 완료입니다.
8. 주의사항
- Vault 레포는 보안 패치가 제공되지 않음
- 운영 서버에는 Rocky Linux / AlmaLinux 전환 권장
- 테스트, 레거시 유지 목적에만 사용 권장
CentOS 7, 8 환경을 유지해야 하는 경우 vault.centos.org 레포 설정은 사실상 필수 작업입니다.
vault 를 제외한 다양한 레포주소가 있으니, 해당 유효한 주소의 레포로 위와 같이 설정 하셔도 무관합니다.
감사합니다.
'Server > CentOS' 카테고리의 다른 글
| [RHEL/CentOS] NTP 서버 설정 (0) | 2025.06.04 |
|---|---|
| [RHEL/CentOS] VNC 서버 설치 및 설정 방법 (0) | 2025.06.02 |