การอัปเดต yum ล้มเหลว: ข้อผิดพลาด: ไม่สามารถดึงข้อมูลเมตาของที่เก็บ (repomd.xml) สำหรับที่เก็บ ...


34

ฉันใช้ CentOS 6.3 เมื่อฉันพยายามอัปเดตระบบด้วย yum ฉันมีข้อความนี้:

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

My yum.conf

[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
ตั้งแต่เมื่อวานคุณถามคำถามมากมายเกี่ยวกับข้อผิดพลาดเกี่ยวกับการเชื่อมต่ออินเทอร์เน็ตและปัญหาเกี่ยวกับเส้นทางของยัมคุณเพิ่งพิจารณาติดตั้งระบบของคุณใหม่หรือไม่? ดูเหมือนว่าจะสวย $$$ เอ็ดขึ้น
— Kiwy

คุณต้องแก้ไขการเชื่อมต่ออินเทอร์เน็ตก่อน การติดตั้งใหม่อาจเป็นตัวเลือก หรือลองบูทระบบซีดีสด
— เตอร์

ฉันแก้ไขปัญหาด้วยการลบโฟลเดอร์ "yum.repos.d" และสร้างไฟล์ example.repo ใหม่ เพิ่มรายละเอียด repo จากที่นี่: linuxquestions.org/questions/linux-newbie-8/…
— Yang

คำตอบ:


33

ca-bundles.crt ของคุณเก่าเกินไป หนึ่งรอบการทำงานจนกว่าคุณจะอัปเกรดเป็น CentOS เวอร์ชันใหม่กว่าคือการเปลี่ยน epel.repo จากการใช้ https เป็น http

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

2
+1 เปิด แต่คุณไม่จำเป็นต้องอัพเกรด CentOS เพื่อคว้ามัดใบรับรองล่าสุด (เพราะการสนับสนุนระยะยาวของ CentOS) yum update ca-certificatesควรทำตามเคล็ดลับ (หลังจากปิดการใช้งาน https สำหรับ epel หรือคว้า rpm โดยตรงและอัปเดตโดยใช้ rpm)
— Kev

@kev ดีในทฤษฎีความคิดเห็นของคุณควรจะทำงาน แต่เศร้าสำหรับฉันเมื่อฉันขอให้yum to update ca-certificatesฉันได้รับ"ไม่มีแพคเกจทำเครื่องหมายสำหรับการอัปเดต" ในความเป็นจริงเมื่อฉันทำyum list | grep ca-certificatesฉันได้รับca-certificate.noarch 2010.63-3.el6_1.5 นี้เป็นเวอร์ชันล่าสุดใน CentOS 6.4 ของฉัน ในกล่อง CentOS 6.5 ของฉันฉันได้รับca-certificate.noarch 2014.1.98-65.1.el6ดังนั้นคุณต้องอัปเดตเป็น CentOS 6.5 อย่างน้อยเพื่อรับ CA-Ceritifcates ล่าสุดจาก CentOS หรือติดตั้ง rpm ด้วยตนเองและติดตั้งด้วยตนเอง .
— RobertDeRose

@Kev Rob ตอกมัน ธุรกิจขององค์กรจำนวนมากยังคงอยู่ในความวุ่นวายที่เก่าแก่มาก ฉันกำลังทำงานกับ CentOS4.5 สำหรับลูกค้าในปัจจุบันและต้องทำสิ่งต่างๆมากมายที่ปกติไม่ควรทำ
— SgtPooki

@RobD ดูเหมือนว่า OP กำลังใช้ http และเมื่อฉันพบปัญหาเดียวกันฉันก็ใช้ http ไม่ใช่ https ดังนั้นฉันแค่อยากรู้ว่าคุณจะอนุมานว่าใบรับรอง SSL รูทที่ล้าสมัยนั้นเป็นต้นเหตุได้อย่างไร
— Dwight Spencer

@WightSpencer ขออภัยฉันไม่เข้าใจคำถามของคุณ OP คืออะไร ฉันอนุมานว่าใบรับรองรูท SSL ของฉันเป็นปัญหาเพราะในกล่อง CentOS 6.2 เก่าของฉันฉันไม่สามารถอัปเดตได้ แต่ในกล่อง 6.6 ของฉันฉันสามารถทำได้ เพียงเปลี่ยนจาก https เป็น http เพื่อแก้ไขปัญหา ฉันมากขึ้นหรือน้อยลงเพียงแค่ จำกัด ให้แคบลง
— RobertDeRose

16

ลองสิ่งนี้ (ต้องเป็น root)

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

ดูการแก้ไข
— az93

เย้! มันทำงาน :)
— facundofarias

1
ทำงานได้อย่างสมบูรณ์และเป็นวิธีที่สะอาดกว่าคำตอบอื่น ๆ ในหัวข้อนี้
— Dwight Spencer

ฉันต้องเพิ่มyum update --disableplugin fastestmirrorรหัสผ่านเพราะหนึ่งในขั้นตอนเหล่านั้น (อาจyum clean) ลบข้อมูลที่จำเป็นในการติดต่อกับกระจก ฉันบอกว่า "ไม่" เมื่อมันเสนอให้ทำการอัปเกรดจากนั้นก็ทำแบบธรรมดาyum updateและสำเร็จในครั้งนี้ ฉันเชื่อว่ารหัสผ่านแรกทำให้ดาวน์โหลดรายการมิเรอร์ใหม่จากไซต์ CentOS หลักซึ่งช่วยให้บัตรผ่านชุดที่สองประสบความสำเร็จ
— Warren Young

6

พิมพ์ " http://mirror.centos.org/centos/6 " บนเบราว์เซอร์ของคุณและดู "addons" ไม่มีอยู่

ดังนั้นลอง yum --disablerepo=addons update


ฉันควรทำอย่างไรดี?
— az93


ปัญหาเดียวกัน ...
— az93

เราจะเห็นยำ conf ของคุณหรือไม่
— Amauche

ดูการแก้ไข
— az93

3

ปัญหาสำหรับฉันคือ repos ใช้ https และไม่ทำงาน

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

สิ่งนี้แสดงในไฟล์ repo ที่ใช้ https เปิดในเอดิเตอร์และทำให้เป็น http สำหรับฉันที่แก้ไขปัญหา


3

คำตอบก่อนหน้าทั้งหมดไม่ทำงานสำหรับฉัน แต่การเรียกใช้คำสั่งต่อไปนี้ไม่ได้:

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

ซึ่งฉันได้จากโพสต์บล็อกนี้



2

หากคุณใช้ 6.5 ฉันไม่รู้ว่าทำไม แต่ไม่มีไดเรกทอรี 6.5 ที่ที่เก็บ yum อย่างเป็นทางการสำหรับ centOS แพ็คเกจทั้งหมดจะส่งคืนรหัสสถานะ 404

ถ้าคุณลองทำสิ่งนี้: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm คุณจะได้รับ 404 แต่ถ้าคุณลอง รุ่น 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm ใช้งานได้


1

หากคุณเรียกใช้ "yum update" หรือ "yum upgrade" โดยไม่มีพารามิเตอร์อื่น ๆ แพ็คเกจทั้งหมดในระบบของคุณรวมถึง yum จะได้รับการอัปเกรดดังนั้นจึงไม่จำเป็นต้องอัพเกรด yum ด้วยตัวเองเว้นแต่ว่าคุณกำลังอัพเกรด Fedora หรือ CentOS


อันที่จริงฉันต้องติดตั้ง ftp แต่เมื่อฉันใช้ yum ติดตั้ง ftp ฉันไปที่ปัญหาเดียวกัน
— az93

1

ผมติดตั้ง CentOS ผ่านจรจัดและมันมาพร้อมกับ/etc/yum.repos.d/ไดเรกทอรี prepopulated puppet.repoกับสิ่งที่ต้องการ แท้จริงและดูเถิดpuppet.repoและ Repos รวมอื่น ๆ ไม่ได้ชี้ไปยังแหล่งข้อมูลที่ถูกต้อง

ดังนั้นฉันจึงลบออกและทำงานได้ในขณะนี้ยำ


1

ในกรณีของฉันซึ่งยอดเยี่ยมจริงๆตำแหน่งของไฟล์ XML ซึ่งมีข้อมูล repo จะเปลี่ยนไป

  • ฉันมีการเชื่อมต่ออินเทอร์เน็ต (ใช้ping 8.8.8.8งานได้)
  • เมื่อฉันทำงานyum upgradeหลังจาก404ข้อผิดพลาดมากมายฉันจะได้รับชื่อของแพ็คเกจที่ฉันต้องดาวน์โหลด แต่ฉันไม่สามารถดาวน์โหลดได้

และเมื่อฉันเรียกดู URL repo 404 แรกซึ่งก็คือ:

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

และฉันเห็นมันหายไป ไปที่โฟลเดอร์หลักของhttp://mirror.airenetworks.es/CentOS/7.4.1708/readmeฉันฉันได้รับนี้:

ไดเรกทอรีนี้ (และรุ่นของ CentOS) เลิกใช้แล้ว สำหรับผู้ใช้ปกติคุณควรใช้ / 7 / และไม่ใช่ /7.4.1708/ ในเส้นทางของคุณ โปรดดูคำถามที่พบบ่อยนี้เกี่ยวกับโครงการเผยแพร่ CentOS:

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

หากคุณรู้ว่าคุณกำลังทำอะไรและต้องการอยู่ในระดับ 7.4.1708 ให้ไปที่http://vault.centos.org/เพื่อดูแพ็คเกจ

โปรดทราบว่า 7.4.1708 จะไม่ได้รับการอัปเดตใด ๆ อีกต่อไปรวมทั้งการแก้ไขปัญหาความปลอดภัย

ดังนั้นฉันต้องกลับ/etc/yum.repo.dไปแก้ไขไฟล์

ฉันมี:

[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

ฉันสงสัยว่า$releaseverไม่มีการใช้งานอีกต่อไปดังนั้นฉันสามารถทดสอบได้โดยเปลี่ยนเป็น7: (อย่าลืมหลบหนี&ด้วย\)

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

เราสามารถรับรายการไฟล์:

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/

ดังนั้นเราสามารถตั้งค่าตัวแปรดังนี้:

  1. เปิด /etc/yum.repo.d/CentOS-Base.repo
  2. ในส่วนที่กำหนด:[base]releasever=7
  3. เรียกใช้ซ้ำyum upgradeหรือyum install xxx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.