yum errore "Impossibile recuperare metalink per il repository: epel. Verifica il suo percorso e riprova ”aggiornando ContextBroker


106

Sto cercando di aggiornare Orion ContextBroker utilizzando il comando yum install contextBroker. Sfortunatamente ottengo il seguente errore:

Plugin caricati: più velocemirror, refresh-packagekit, caricamento di sicurezza

velocità di mirroring dal file host memorizzato nella cache

Errore: impossibile recuperare il metalink per il repository: epel. Verifica il percorso e riprova

Cosa potrebbe andare storto ?


3
Passaggio suggerito per la risoluzione dei problemi: può il tuo sistema curl -v https://mirrors.fedoraproject.org?
mwfearnley

La risposta selezionata è una soluzione alternativa che non risolve il problema principale e in effetti l'installazione del pacchetto potrebbe continuare a non riuscire. Suggerisco di deselezionare la risposta migliore e lasciare che il conteggio dei voti ordini le risposte a quella che ha funzionato per la maggior parte delle persone.
Paul,

Risposte:


125

Ho risolto questo problema modificando sia /etc/yum.repos.d/epel.repoe /etc/yum.repos.d/epel-testing.repofile, commentando tutte le voci che iniziano con mirrorlist=...e togliere i commenti tutte le voci che iniziano con baseurl=....


Nel mio caso, questa correzione ha permesso a yum di scaricare correttamente i metadati per il repository epel, ma il tentativo di installare i pacchetti non è riuscito con [Errno 14] Peer cert cannot be verified or peer cert invalid. La soluzione corretta era aggiornare i certificati CA, come nella risposta di seguito.
bagno

3
commentare tutte le voci che iniziano con metalink = ... e rimuovere il commento da tutte le voci che iniziano con baseurl = .... ha funzionato per me su RHEL7.1
Anurag Singh

1
Ho provato il tuo metodo, poi ha yum clean all && yum updatefunzionato. Ma non completamente, diceva epel-release-7-11.noarch: [Errno 256] No more mirrors to tryecc. Così ho provato yum update curl --disablerepo=epelcome suggerito da sbetharia, e ho yum clean all && yum updateriprovato, ora finalmente ha funzionato.
Hosi Golden

Ha funzionato per me. Molte grazie.
tarekahf

3
Non avevo mirrorlist=righe, ma avevo metalink=righe e quelle dovevano essere commentate.
JellicleCat

170

Hai solo bisogno di aggiornare il pacchetto CA-certificates. Prima di ciò, disabilita tutti i repository con https che non funzionano. Ecco perché la soluzione con commentando la mirrorlist o usando http invece di https funzionerebbe anche.

Ad esempio, se devi disabilitare solo epel repo:

yum --disablerepo=epel -y update  ca-certificates

Ciò aiuterà anche wget, curl e qualsiasi altra cosa che utilizzi certificati SSL.


9
Questa dovrebbe essere accettata come la risposta corretta, in quanto diagnostica la vera fonte del problema, piuttosto che fornire solo una soluzione.
Horatio Alderaan

1
L'ho testato sulla bento box di CentOS 6.5 e rende le cose leggermente più affidabili durante l'esecuzione yum clean all && yum makecache. Tuttavia, a volte fallisce ancora. L'aggiunta di un nuovo tentativo al mio script lo ha reso ancora più affidabile. Sospetto che alcuni mirror siano inaffidabili e un nuovo tentativo può fornire un altro mirror che funziona. Quindi se all'inizio non riesce, prova a riprovare!
TrinitronX

1
Bene, questo deriva dall'esperienza, e sì, il messaggio è criptico :)
XoR

2
assicurati se sei dietro un proxy aziendale per impostarlo anche per https, ad esempioexport https_proxy=<your proxy>
Markus

3
epel-repo RPM dovrebbe avere ca-certificates ha dipendenza !!
Stéphane

59

usa questo comando:

sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

o in alternativa usa command

vi /etc/yum.repos.d/epel.repo

vai alla riga numero 4 e cambia l'URL da

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

per

mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

Grazie; questo ha funzionato per me dopo aver provato molte delle altre soluzioni documentate (il mio errore era, Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). La mia domanda è: perché ha funzionato? è dovuto a un problema di configurazione nel sito del repository?
CODE-REaD

1
Probabilmente non è il server HTTPS, ma il supporto lato client HTTPS sui sistemi può non essere aggiornato, poiché le autorità di certificazione radice non vengono aggiornate o le librerie SSL non supportano nuove crittografie.
mwfearnley

Dopo molti tentativi, risolto con il tuo comando sed. Basta copiare + incollare, questo è ciò di cui avevo bisogno perché di solito non mi occupo di questo genere di cose, sto solo installando un computer di prova che può essere utilizzato solo da me per testare alcuni aggiornamenti del database.
EAmez

1
In Cent OS 7.6, questo èsudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

19

Per il mio caso, commentare mirrorliste decomprimere le voci con baseurlnon funziona. Ho notato che il problema era con l' httpsinterno dei .repofile Fedora. L'ho risolto entrando /etc/yum.repository.de sostituendo tutto httpscon httpin diversi file .repo. Ha funzionato !!


Questo probabilmente ha a che fare con un proxy impostato in /etc/yum.conf (proxy aziendale)?
Christof Kälin

19

Immagino che dovrebbe funzionare. Ho risolto il mio problema con questo.

$ sudo yum clean all

$ sudo yum --disablerepo = "epel" update nss


3
Questo wok per Centos 6.8. Grazie
neo

1
Questo ha risolto anche il mio problema, sono curioso di sapere perché update nssaiuta a risolvere questo problema?!
KLajdPaja,

12

L'aggiornamento di curl ha funzionato per noi. In qualche modo yum usa curl per le sue transazioni.

yum update curl --disablerepo=epel

La tua risposta è migliore della risposta accettata, non è necessario modificare epel.repo o epel-testing.repo.
Hosi Golden

Ho rintracciato questo e aggiornato curl prima di leggere questa o alcune delle altre risposte. Vedo che l'aggiornamento di curl ha aggiornato anche nss ... quindi mi chiedo se fosse quello il problema. Nel mio caso, ho piegato l'URL del metalink, ho visto che non funzionava e ho visto che funzionava con --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ). Presunto curl era obsoleto e lo ha aggiornato. Quindi ora mi chiedo se NSS avrebbe potuto essere aggiornato senza aggiornare curl e avrebbe funzionato o meno.
Paul

9

Verifica se accedi a Internet tramite un proxy, quindi aggiungi l'indirizzo proxy Internet alla yumconfigurazione.

Inserisci

proxy=http://ip:port

per /etc/yum.conf


2
assicurati di avere specificato anche il proxy https.
Markus

1
questo ha funzionato per me, ma solo con il seguente parametro aggiuntivo:proxy_username=your_user proxy_password=your_passwd
MaggusK

7

Procedura dettagliata

L'esecuzione del comando seguente aggiornerà il repository per utilizzare HTTP anziché HTTPS:

sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

Dovresti quindi essere in grado di aggiornare con questo comando:

yum -y update

L'unica soluzione che funziona per me! Tutti gli altri non hanno cambiato nulla (ho bisogno di pacchetti epel).
KuroNeko

In Cent OS 7.6, questo èsudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

6

Potresti imbatterti in questo messaggio / errore, dopo aver installato epel-release. La soluzione rapida è aggiornare i tuoi certificati SSL:

yum -y upgrade ca-certificates

È probabile che l'errore di cui sopra possa verificarsi anche durante l'aggiornamento del certificato, in tal caso, disabilitare semplicemente il epelrepository, ovvero utilizzare il seguente comando:

yum -y upgrade ca-certificates --disablerepo=epel 

Una volta aggiornati i certificati, sarai in grado di utilizzare yum normalmente, anche il repository epel funzionerà correttamente. Nel caso in cui ricevi lo stesso errore per un repository diverso, metti il ​​suo nome contro la --disablerepo=<repo-name>bandiera.


Nota : usa sudose non sei l' rootutente.


1
Questa è la risposta migliore per me :)
qingbo

5

Ho risolto questo problema con questa soluzione.

devi solo cambiare in questo file /etc/yum.repos.d/epel.repo

mirrorlist = cambia questo URL https in http

baseurl = cambia questo URL https in http


4

Tutto quanto sopra non ha funzionato per me, ma una ricostruzione del database rpm, con il seguente comando, ha funzionato:

sudo rpm --rebuilddb

Grazie a tutti per l'aiuto.


1
Ho dovuto usare baseurl invece di mirrorlist (risposta accettata) prima di farlo
Telmo Pimentel Mota

3

Per le scatole che non hanno accesso a Internet, puoi rimuovere il epelrepository:

yum remove epel-release --disablerepo=epel

Questo è successo a me quando ho installato accidentalmente epel-releaseutilizzando rpmuna scatola prod.


3

Ho riscontrato lo stesso problema anche se il pacchetto ca-certificates è aggiornato. Il mirror https://mirrors.fedoraproject.org/ è attualmente firmato da DigiCert High Assurance EV Root CAcui è incluso nel mioca-bundle

$ grep -A 3 "DigiCert High" /etc/ssl/certs/ca-bundle.crt 
# DigiCert High Assurance EV Root CA
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3

Il motivo per cui le connessioni https non sono riuscite nel mio caso, era che la data di sistema era impostata sull'anno 2002 in cui DigiCert High Assurance EV Root CAnon è (ancora) valido.

$ date
Di 1. Jan 11:10:35 CET 2002

La modifica dell'ora di sistema ha risolto il problema.


Grazie mille per questa risposta. You Sir are a legend
Tony Sepia

2

L'ho risolto andando in /etc/yum.repository.d/. Per il mio caso, commento mirrorlist e voci di decompressione con baseurl. così come sslverify = false aggiunto.

/server/637549/epel-repo-for-centos-6-causing-error


Non solo, ma anche cambiando gli URL in archives.fedoraproject.org/pub/archive/fedora/linux/releases/… (per fedora.repo e fedora-updates.repo). Nota gli "archivi" di fronte e il "pub / archivio" nel percorso)
dagelf

yum install -y yum-utils --disablerepo = epel && yum-config-manager --save --setopt = epel.sslverify = false
Andrei Sedoi

2

Ho risolto questo problema modificando le voci https nel file epel.repo in http.


1

Nel mio caso quando ho commentato il mirrorlist l'errore è stato eliminato ma anche il repository non funzionava, quindi punto manualmente il baseurl giusto /etc/yum.repos.d/epel.repocome di seguito

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://iad.mirror.rackspace.com/epel/7Server/x86_64/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://iad.mirror.rackspace.com/epel/7Server/x86_64/debug/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://iad.mirror.rackspace.com/epel/7Server/SRPMS/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1


0

La modifica dell'URL della mirrorlist da https a http ha risolto il problema per me.


0

Corretto il mio in questo modo:

yum install elfutils-default-yama-scope-0.168-8.el7.noarch --disablerepo=epel
yum install nss-pem -disablerepo=epel
yum reinstall ca-certificates --disablerepo=epel
yum clean all
rm -rf /var/cache/yum
yum update`

0

Nessuno di questi ha funzionato per me (non ho nemmeno provato gli hack come la modifica manuale del file repo).

Tuttavia ha funzionato dopo un semplice file yum update -y


0

Un'altra possibile causa è che la tua architettura non è supportata. Mi sono imbattuto in questo perché mi è stata fornita una VM CentOS, volevo installare EPEL e non potevo farlo per tutta la vita.

Si scopre che la VM era CentOS 7 i386, un'architettura che apparentemente non è più supportata da EPEL. Immagino che l'unico rimedio in questo caso sia reinstallare.

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.