l'aggiornamento yum non riesce: errore: impossibile recuperare i metadati del repository (repomd.xml) per il repository ...


34

Sto usando CentOS 6.3. Quando provo ad aggiornare il mio sistema con yum ho questo messaggio:

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
da ieri hai fatto così tante domande sui bug con la connettività Internet yum e problemi di percorso, hai appena considerato di reinstallare il tuo sistema? Sembra piuttosto
fottuto

Devi prima risolvere la connettività Internet. La reinstallazione potrebbe essere un'opzione. Oppure prova ad avviare un sistema di live CD.
peterph

Ho risolto il problema eliminando la cartella "yum.repos.d" e ricreato un file example.repo. aggiungi i dettagli del repository da qui: linuxquestions.org/questions/linux-newbie-8/…
Yang

Risposte:


33

Il tuo ca-bundles.crt è troppo vecchio. Una soluzione alternativa fino all'aggiornamento a una versione più recente di CentOS sarebbe quella di modificare epel.repo dall'uso di https in http

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

2
+1 Spot on. Ma non dovresti aver bisogno di aggiornare CentOS per acquisire l'ultimo pacchetto di certificati (a causa del supporto a lungo termine di CentOS). yum update ca-certificatesdovrebbe fare il trucco (dopo aver disabilitato https per epel o aver preso direttamente rpm e aver aggiornato usando rpm).
Kev,

@kev Beh, in teoria il tuo commento dovrebbe funzionare, ma purtroppo per me quando chiedo yum to update ca-certificatesottengo "Nessun pacchetto contrassegnato per l'aggiornamento" . In effetti quando lo faccio yum list | grep ca-certificatesottengo questo ca-certificati.noarch 2010.63-3.el6_1.5 come l'ultima versione sulla mia scatola CentOS 6.4. Sulla mia scatola CentOS 6.5 ottengo ca-certificati.noarch 2014.1.98-65.1.el6 Quindi sembra che sia necessario aggiornare almeno a CentOS 6.5 per ottenere gli ultimi certificati CA da CentOS, oppure ottenere manualmente i giri / min e installarlo .
RobertDeRose,

@Kev Rob l'ha inchiodato. Molte aziende sono ancora in distrazioni molto vecchie. Attualmente sto lavorando su CentOS4.5 per un cliente e devo fare molte cose che normalmente non dovrebbero essere fatte.
SgtPooki,

@RobD Sembra che OP stia usando http e quando ho riscontrato lo stesso problema anche io stavo usando http non https. Quindi sono solo curioso di sapere come dedurre che i certificati root ssl ca essendo obsoleti sia la causa principale?
Dwight Spencer,

@DwightSpencer scusa, non capisco la tua domanda, cos'è OP? Ho dedotto che i miei certificati ssl ca root erano il problema perché sulla mia vecchia scatola CentOS 6.2 non potevo aggiornare, ma sulla mia scatola 6.6 potevo. Il semplice passaggio da https a http ha risolto il problema. Ho più o meno ristretto a quello.
RobertDeRose,

16

Prova questo (deve essere root)

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

Guarda la modifica
az93,

Sìì! Ha funzionato :)
facundofarias il

1
Ha funzionato perfettamente e questo è molto più pulito di alcune altre risposte su questo thread.
Dwight Spencer,

Ho dovuto aggiungere un yum update --disableplugin fastestmirrorpassaggio lì perché uno di quei passaggi (probabilmente yum clean) ha rimosso le informazioni necessarie per contattare i mirror. Gli ho detto "no" quando si è offerto di fare l'aggiornamento, poi ho fatto una cosa semplice yum updatee questa volta è riuscito. Credo che il primo passaggio abbia fatto scaricare una nuova lista di mirror dal sito principale di CentOS, che ha permesso al secondo passaggio di avere successo.
Warren Young,


3

Il problema per me era che i repository usano https e che non funziona.

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

Questo mostra in quali file repo viene utilizzato https. Aprili in un editor e rendilo http. Per me ciò ha risolto il problema.


3

Tutte le risposte precedenti non hanno funzionato per me, ma eseguendo i seguenti comandi ha funzionato:

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

Che ho ottenuto da questo post sul blog .




1

Se esegui "yum update" o "yum upgrade" senza altri parametri, verranno aggiornati tutti i pacchetti sul tuo sistema, incluso yum, quindi non è necessario aggiornare yum da solo a meno che tu non stia aggiornando le versioni Fedora o CentOS.


In effetti ho bisogno di installare ftp. Ma quando uso yum install ftp vado con lo stesso problema.
Az93,

1

Ho installato CentOS tramite Vagrant, ed è arrivato con la /etc/yum.repos.d/directory prepopolata con cose come puppet.repo. Ecco puppet.repoed altri repository inclusi non puntavano a risorse valide.

Quindi li ho rimossi e ora funziona.


1

Nel mio caso, il che è davvero eccezionale, la posizione del file XML che contiene le informazioni sul repository viene modificata.

  • Ho una connessione a Internet ( ping 8.8.8.8funziona)
  • Quando eseguo yum upgrade, dopo molti 404errori, posso ottenere i nomi dei pacchetti che devo scaricare, ma non riesco a scaricarli.

E, quando sfoglio il primo URL repository 404, che è:

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

e lo vedo assente. Andando nella sua cartella principale http://mirror.airenetworks.es/CentOS/7.4.1708/readmeottengo questo:

Questa directory (e versione di CentOS) è obsoleta. Per gli utenti normali, dovresti usare / 7 / e non /7.4.1708/ nel tuo percorso. Si prega di consultare queste FAQ relative allo schema di rilascio di CentOS:

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

Se sai cosa stai facendo e vuoi assolutamente rimanere al livello 7.4.1708, vai su http://vault.centos.org/ per i pacchetti.

Tieni presente che il 7.4.1708 non riceve più aggiornamenti né correzioni di sicurezza.

Quindi, devo tornare /etc/yum.repo.da modificare i file.

Io ho:

[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

Sospetto che $releasevernon sia più in uso, quindi posso provare cambiandolo in 7: (ricordati di scappare &con \)

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

possiamo ottenere un elenco di 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/

Quindi, possiamo impostare la variabile in questo modo:

  1. Apri il /etc/yum.repo.d/CentOS-Base.repo
  2. Nella [base]sezione, definire: releasever=7.
  3. Rieseguire yum upgradeo yum install xxx.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.