Khi thử bạn cập nhật CentOS hoặc cài đặt bất kỳ package nào đó bằng lệnh yum sẽ nhận được thông báo Error: “Cannot find a valid baseurl for repo: base/7/x86_64”
Nguyên nhân lỗi “Cannot find a valid baseurl for repo”
Nguyên nhân do CentOS đã không còn được hỗ trợ và các kho lưu trữ không còn được sử dụng. Vì vậy, chúng ta cần cập nhật URL của kho lưu trữ đến vault để tiếp tục sử dụng.
Giải pháp – Cập nhật kho lưu trữ
Chúng ta cần cập nhật file CentOS-Base.repo
trong /etc/yum.repos.d/CentOS-Base.repo
.
- Bỏ ghi chú các dòng bắt đầu bằng
baseurl
. - Cập nhật tất cả
http://mirrorlist.centos.org
thànhhttp://vault.centos.org
. - Cập nhật tất cả
http://mirror.centos.org
thànhhttp://vault.centos.org
. - Xóa bộ nhớ cache
sudo yum clean all
.
repo_file=/etc/yum.repos.d/CentOS-Base.repo
cp ${repo_file} ~/CentOS-Base.repo.backup
sudo sed -i s/#baseurl/baseurl/ ${repo_file}
sudo sed -i s/mirrorlist.centos.org/vault.centos.org/ ${repo_file}
sudo sed -i s/mirror.centos.org/vault.centos.org/ ${repo_file}
Tệp này trông như thế này:
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://vault.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://vault.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://vault.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://vault.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Làm sạch và cập nhật lại
Yum sẽ lưu lại tất cả dữ liệu về repositories đã được kích hoạt để cài đặt các packages trong thư mục /var/cache/yum/
, để xóa tất cả các file được cache từ các repositories đã được kích hoạt, bạn cần thực thi lệnh sau để làm sạch bộ nhớ đệm.
yum clean all
yum makecache
yum update -y
Trong bài viết này, chúng tôi đã giải thích cách khắc phục lỗi “Cannot find a valid baseurl for repo” trên CentOS. Chúng tôi mong muốn nghe từ bạn và chia sẻ trải nghiệm của bạn với chúng tôi. Bạn cũng có thể chia sẻ các giải pháp bạn biết để khắc phục vấn đề này qua phản hồi dưới đây.
Chúc các bạn thành công.