การอัปเดต 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.