Cập nhật yum không thành công: Lỗi: Không thể truy xuất siêu dữ liệu của kho lưu trữ (repomd.xml) cho kho lưu trữ


34

Tôi đang sử dụng CentOS 6.3. Khi tôi cố gắng cập nhật hệ thống của mình với yum, tôi có thông báo này:

yum update

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ircam.fr
 * centosplus: miroir.univ-paris13.fr
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum clean all

Loaded plugins: fastestmirror
Cleaning repos: CactiEZ addons base centosplus extras pgdg93 update
Cleaning up Everything
Cleaning up list of fastest mirrors

yum check

Loaded plugins: fastestmirror
check all

yum erase apf

Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: apf
Determining fastest mirrors
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
CactiEZ                                                | 2.9 kB     00:00
CactiEZ/primary_db                                     |  13 kB     00:00
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum upgrade

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

Yum của tôi

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

1
kể từ hôm qua bạn đã hỏi rất nhiều câu hỏi về lỗi với kết nối internet và các vấn đề về đường dẫn, bạn đã xem xét để cài đặt lại hệ thống của mình chưa? Có vẻ như khá
khó khăn

Bạn cần sửa kết nối internet trước. Cài đặt lại có thể là một lựa chọn. Hoặc thử khởi động hệ thống CD trực tiếp.
peterph

Tôi đã giải quyết vấn đề bằng cách xóa thư mục "yum.repos.d" và tạo lại tệp example.repo. thêm chi tiết repo từ đây: linuxquestions.org/questions/linux-newbie-8/ Khăn
Yang

Câu trả lời:


33

Ca-bundles.crt của bạn đã quá cũ. Một cách giải quyết cho đến khi bạn nâng cấp lên phiên bản CentOS mới hơn sẽ là thay đổi epel.repo từ việc sử dụng https thành http

sudo sed -i 's/https/http/g' /etc/yum.repos.d/epel.repo

2
+1 Điểm trên. Nhưng bạn không cần phải nâng cấp CentOS để lấy gói chứng chỉ mới nhất (vì hỗ trợ dài hạn của CentOS). yum update ca-certificatesnên thực hiện thủ thuật (sau khi vô hiệu hóa https cho epel hoặc lấy trực tiếp vòng / phút và cập nhật bằng vòng / phút).
Kev

@kev Về lý thuyết, bình luận của bạn sẽ hoạt động, nhưng thật đáng buồn cho tôi khi tôi hỏi yum to update ca-certificatestôi nhận được "Không có gói nào được đánh dấu để cập nhật" . Trong thực tế khi tôi làm, yum list | grep ca-certificatestôi nhận được chứng chỉ ca.noarch 2010.63-3.el6_1.5 này là phiên bản mới nhất trên hộp CentOS 6.4 của tôi. Trên hộp CentOS 6.5 của tôi, tôi nhận được chứng chỉ ca.noarch 2014.1.98-65.1.el6 Vì vậy, có vẻ như bạn cần cập nhật ít nhất lên CentOS 6.5 để nhận CA-Ceritifcates mới nhất từ ​​CentOS hoặc cài đặt thủ công vòng / phút .
RobertDeRose

@Kev Rob đóng đinh nó. Rất nhiều doanh nghiệp kinh doanh vẫn còn trên các distro rất cũ. Hiện tại tôi đang làm việc trên CentOS4.5 cho một khách hàng và phải làm rất nhiều việc mà thông thường không nên làm.
SgtPooki

@RobD Có vẻ như OP đang sử dụng http và khi tôi gặp vấn đề tương tự tôi cũng đang sử dụng http chứ không phải https. Vì vậy, tôi chỉ tò mò làm thế nào bạn có thể suy luận rằng chứng chỉ gốc ssl ca bị lỗi thời là nguyên nhân gốc?
Dwight Spencer

@DwightSpencer xin lỗi, tôi không hiểu câu hỏi của bạn, OP là gì? Tôi đã suy luận rằng chứng chỉ gốc ssl ca của tôi là vấn đề vì trên hộp CentOS 6.2 cũ của tôi, tôi không thể cập nhật, nhưng trên hộp 6.6 của tôi thì tôi có thể. Chỉ cần thay đổi từ https sang http đã giải quyết được vấn đề. Tôi ít nhiều chỉ thu hẹp nó xuống.
RobertDeRose

16

Hãy thử điều này (phải là root)

yum clean all
yum check
yum erase apf
yum update ca-certificates
yum upgrade

Nhìn vào bản chỉnh sửa
az93

Yay! Nó hoạt động :)
facundofarias

1
Hoạt động hoàn hảo và đây là cách sạch hơn so với một số câu trả lời khác về chủ đề này.
Dwight Spencer

Tôi đã phải thêm một yum update --disableplugin fastestmirrorlượt vào đó vì một trong những bước đó (có thể yum clean) đã xóa thông tin cần thiết để liên hệ với các gương. Tôi nói với nó "không" khi nó đề nghị thực hiện nâng cấp, sau đó thực hiện một cách đơn giản yum updatevà lần này nó đã thành công. Tôi tin rằng lần đầu tiên làm cho nó tải xuống một danh sách nhân bản mới từ trang web chính của CentOS, cho phép vượt qua lần thứ hai thành công.
Warren Young


3

Vấn đề đối với tôi là các repos sử dụng https và nó không hoạt động.

cd /etc/yum.repos.d/
grep -RFi "https" *

Điều này cho thấy trong những tập tin repo https được sử dụng. Mở chúng trong một trình soạn thảo và làm cho nó http. Đối với tôi đã khắc phục vấn đề.


3

Tất cả các câu trả lời trước không hoạt động với tôi, nhưng chạy các lệnh sau đã làm:

$ sudo yum remove centos-release-SCL
$ sudo yum update # Update to CentOS 6.8
$ sudo yum install centos-release-scl
$ sudo yum update

Mà tôi nhận được từ bài viết trên blog này .



2

Nếu bạn sử dụng 6.5, tôi không biết tại sao, nhưng không tồn tại thư mục 6.5 tại kho lưu trữ yum chính thức cho centOS. Tất cả các gói sẽ trả về mã trạng thái 404

Nếu bạn thử cách này: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm bạn sẽ nhận được 404, nhưng nếu bạn thử phiên bản 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm nó hoạt động.


1

Nếu bạn chạy "cập nhật yum" hoặc "nâng cấp yum" mà không có bất kỳ tham số nào khác, tất cả các gói trên hệ thống của bạn, kể cả yum sẽ được nâng cấp, vì vậy bạn không cần phải tự nâng cấp yum trừ khi bạn đang nâng cấp các phiên bản Fedora hoặc CentOS.


Trong thực tế tôi cần phải cài đặt ftp. Nhưng khi tôi sử dụng yum cài đặt ftp thì tôi cũng gặp vấn đề tương tự.
az93

1

Tôi đã cài đặt CentOS thông qua Vagrant và nó đi kèm với /etc/yum.repos.d/thư mục được cài sẵn với những thứ như puppet.repo. Lo và kìa, puppet.repovà các repos khác bao gồm không chỉ ra tài nguyên hợp lệ.

Vì vậy, tôi loại bỏ chúng và yum làm việc bây giờ.


1

Trong trường hợp của tôi, điều thực sự đặc biệt, vị trí của tệp XML chứa thông tin repo đã bị thay đổi.

  • Tôi có kết nối Internet ( ping 8.8.8.8hoạt động)
  • Khi tôi chạy yum upgrade, sau rất nhiều 404lỗi, tôi có thể nhận được tên của các gói tôi phải tải xuống, nhưng tôi không thể tải chúng xuống.

Và, khi tôi duyệt vào URL repo 404 đầu tiên, đó là:

http://mirror.airenetworks.es/CentOS/7.4.1708/os/x86_64/repodata/repomd.xml

và tôi thấy nó vắng mặt. Đi đến thư mục mẹ của nó, http://mirror.airenetworks.es/CentOS/7.4.1708/readmetôi nhận được điều này:

Thư mục này (và phiên bản của CentOS) không được dùng nữa. Đối với người dùng bình thường, bạn nên sử dụng / 7 / chứ không phải /7.4.1708/ trong đường dẫn của mình. Vui lòng xem Câu hỏi thường gặp này liên quan đến chương trình phát hành CentOS:

https://wiki.centos.org/FAQ/General

Nếu bạn biết bạn đang làm gì và hoàn toàn muốn duy trì ở mức 7.4.1708, hãy truy cập http://vault.centos.org/ để biết các gói.

Xin lưu ý rằng 7.4.1708 không còn nhận được bất kỳ bản cập nhật nào, cũng như bất kỳ bản sửa lỗi bảo mật nào.

Vì vậy, tôi phải quay lại /etc/yum.repo.dđể chỉnh sửa các tập tin.

Tôi có:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.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://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Tôi nghi ngờ rằng $releasevernó không còn được sử dụng nữa, vì vậy tôi có thể kiểm tra bằng cách thay đổi nó thành 7: (nhớ thoát &với \)

curl http://mirrorlist.centos.org/?release=7\&arch=x86_64\&repo=os\&infra=arch

chúng ta có thể nhận được một danh sách các tập tin:

ftp://ftp.cesca.cat/centos/7.5.1804/os/x86_64/
http://ftp.rediris.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cica.es/CentOS/7.5.1804/os/x86_64/
http://centos.mirror.minorisa.net/7.5.1804/os/x86_64/
http://repo.nixval.com/CentOS/7.5.1804/os/x86_64/
http://centos.uvigo.es/7.5.1804/os/x86_64/
http://ftp.uma.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cixug.es/CentOS/7.5.1804/os/x86_64/
http://mirror.airenetworks.es/CentOS/7.5.1804/os/x86_64/
http://mirror.gadix.com/centos/7.5.1804/os/x86_64/

Vì vậy, chúng ta có thể đặt biến như thế này:

  1. Mở /etc/yum.repo.d/CentOS-Base.repo
  2. Trong [base]phần này, xác định : releasever=7.
  3. Chạy lại yum upgradehoặc yum install xxx.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.