pembaruan yum gagal: Kesalahan: Tidak dapat mengambil metadata repositori (repomd.xml) untuk repositori ...


34

Saya menggunakan CentOS 6.3. Ketika saya mencoba memperbarui sistem saya dengan yum, saya memiliki pesan ini:

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.conf saya

[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
sejak kemarin Anda banyak bertanya tentang bug dengan konektivitas internet dan masalah jalur, apakah Anda baru saja mempertimbangkan untuk menginstal ulang sistem Anda? Tampaknya cukup
mahal

Anda harus memperbaiki konektivitas internet terlebih dahulu. Menginstal ulang mungkin merupakan opsi. Atau coba boot sistem live CD.
peterph

Saya memecahkan masalah dengan menghapus folder "yum.repos.d" dan membuat ulang file example.repo. tambahkan detail repo dari sini: linuxquestions.org/questions/linux-newbie-8/…
Yang

Jawaban:


33

Ca-bundles.crt Anda terlalu tua. Satu penyelesaian sampai Anda meningkatkan ke versi CentOS yang lebih baru adalah mengubah epel.repo dari menggunakan https ke http

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

2
+1 Tempat di. Tetapi Anda tidak perlu memutakhirkan CentOS untuk mengambil bundel sertifikat terbaru (karena dukungan jangka panjang CentOS). yum update ca-certificatesharus melakukan trik (setelah menonaktifkan https untuk epel, atau meraih rpm secara langsung dan memperbarui menggunakan rpm).
Kev

@ kev Baik secara teori komentar Anda harus bekerja, tetapi sayangnya bagi saya ketika saya bertanya yum to update ca-certificatessaya mendapatkan "Tidak ada Paket ditandai untuk Pembaruan" . Bahkan ketika saya melakukan yum list | grep ca-certificatessaya mendapatkan ca-sertifikat ini. Raja 2010.63-3.el6_1.5 sebagai versi terbaru pada kotak CentOS 6.4 saya. Pada kotak CentOS 6.5 saya, saya mendapatkan ca-Certificate.noarch 2014.1.98-65.1.el6 Jadi sepertinya Anda perlu setidaknya memperbarui ke CentOS 6.5 untuk mendapatkan CA-Ceritifcates terbaru dari CentOS, atau secara manual mendapatkan rpm dan menginstalnya .
RobertDeRose

@Kev Rob memakukannya. Banyak bisnis perusahaan masih di distro yang sangat tua. Saya sedang mengerjakan CentOS4.5 untuk klien saat ini, dan harus melakukan banyak hal yang biasanya tidak harus dilakukan.
SgtPooki

@ROBD Sepertinya OP menggunakan http dan ketika saya mengalami masalah yang sama saya juga menggunakan http bukan https. Jadi saya hanya ingin tahu bagaimana Anda menyimpulkan bahwa ssl ca sertifikat root sudah ketinggalan jaman adalah penyebab root?
Dwight Spencer

@DwightSpencer maaf, saya tidak mengerti pertanyaan Anda, apa itu OP? Saya menyimpulkan bahwa sertifikat root ssl ca saya adalah masalah karena pada kotak CentOS 6.2 lama saya tidak dapat memperbarui, tetapi pada kotak 6.6 saya bisa. Cukup mengubah dari https ke http memecahkan masalah. Saya kurang lebih hanya mempersempitnya menjadi itu.
RobertDeRose

16

Coba ini (harus root)

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

Lihatlah hasil edit
az93

Yay!
Berhasil

1
Bekerja dengan sempurna dan ini jauh lebih bersih daripada beberapa jawaban lain di utas ini.
Dwight Spencer

Saya harus menambahkan yum update --disableplugin fastestmirrorpass di sana karena salah satu langkah (mungkin yum clean) menghapus info yang diperlukan untuk menghubungi mirror. Saya bilang "tidak" ketika ditawarkan untuk melakukan upgrade, kemudian melakukan yang sederhana yum updatedan berhasil kali ini. Saya percaya pass pertama membuatnya mengunduh daftar mirror baru dari situs CentOS utama, yang memungkinkan pass kedua berhasil.
Warren Young


3

Masalahnya bagi saya adalah bahwa repo menggunakan https dan itu tidak berhasil.

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

Ini menunjukkan dalam file repo apa https digunakan. Buka di editor dan jadikan sebagai http. Bagi saya itu memperbaiki masalah.


3

Semua jawaban sebelumnya tidak berfungsi untuk saya, tetapi menjalankan perintah berikut tidak berhasil:

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

Yang saya dapatkan dari posting blog ini .



2

Jika Anda menggunakan 6.5, saya tidak tahu mengapa, tetapi tidak ada direktori 6.5 di repositori yum resmi untuk centOS. Semua paket akan mengembalikan kode status 404

Jika Anda mencoba ini: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm Anda akan mendapatkan 404, tetapi jika Anda mencoba versi 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm berfungsi.


1

Jika Anda menjalankan "pembaruan yum" atau "peningkatan yum" tanpa parameter lain semua paket pada sistem Anda termasuk yum akan ditingkatkan sehingga benar-benar tidak perlu memperbarui yum sendiri kecuali jika Anda meningkatkan versi Fedora atau CentOS.


Sebenarnya saya perlu menginstal ftp. Tetapi ketika saya menggunakan yum install ftp saya mengalami masalah yang sama.
az93

1

Saya menginstal CentOS melalui Vagrant, dan itu datang dengan /etc/yum.repos.d/direktori yang sudah diisi sebelumnya dengan hal-hal seperti puppet.repo. Lihatlah, puppet.repodan repo lain yang disertakan tidak menunjukkan sumber daya yang valid.

Jadi saya menghapusnya dan yum bekerja sekarang.


1

Dalam kasus saya, yang benar-benar luar biasa, lokasi file XML yang berisi informasi repo diubah.

  • Saya memiliki koneksi Internet ( ping 8.8.8.8berfungsi)
  • Ketika saya menjalankan yum upgrade, setelah banyak 404kesalahan, saya bisa mendapatkan nama paket yang harus saya unduh, tetapi saya tidak bisa mengunduhnya.

Dan, ketika saya menjelajah ke 404 repo URL pertama, yaitu:

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

dan saya melihatnya tidak ada. Pergi ke folder induknya http://mirror.airenetworks.es/CentOS/7.4.1708/readmesaya dapatkan ini:

Direktori ini (dan versi CentOS) sudah usang. Untuk pengguna normal, Anda harus menggunakan / 7 / dan bukan /7.4.1708/ di jalur Anda. Silakan lihat FAQ ini mengenai skema rilis CentOS:

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

Jika Anda tahu apa yang Anda lakukan, dan benar-benar ingin tetap di level 7.4.1708, buka http://vault.centos.org/ untuk paket.

Harap diingat bahwa 7.4.1708 tidak lagi mendapat pembaruan, atau perbaikan keamanan apa pun.

Jadi, saya harus kembali ke /etc/yum.repo.duntuk mengedit file.

Saya sudah:

[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

Saya menduga itu $releaseversudah tidak digunakan lagi, jadi saya bisa mengujinya dengan mengubahnya menjadi 7: (ingat untuk melarikan diri &bersama \)

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

kita bisa mendapatkan daftar file:

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/

Jadi, kita dapat mengatur variabel seperti ini:

  1. Buka /etc/yum.repo.d/CentOS-Base.repo
  2. Pada [base]bagian, mendefinisikan: releasever=7.
  3. Jalankan kembali yum upgradeatau yum install xxx.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.