Błąd yum „Nie można pobrać metalinku dla repozytorium: epel. Sprawdź jego ścieżkę i spróbuj ponownie ”aktualizując ContextBroker


106

Próbuję zaktualizować Orion ContextBroker za pomocą polecenia yum install contextBroker. Niestety pojawia się następujący błąd:

Wczytane wtyczki: najszybszy mirror, zestaw odświeżania pakietu, ładowanie bezpieczeństwa

prędkość lustra z buforowanego pliku hosta

Błąd: nie można pobrać metalinku dla repozytorium: epel. Sprawdź jego ścieżkę i spróbuj ponownie

Co mogło się nie udać?


3
Sugerowany krok rozwiązywania problemów: czy Twój system może curl -v https://mirrors.fedoraproject.org?
mwfearnley

Wybrana odpowiedź to obejście, które nie rozwiązuje problemu z rootem i w rzeczywistości instalacja pakietu może nadal kończyć się niepowodzeniem. Proponuję odznaczyć najlepszą odpowiedź i pozwolić, aby liczba głosów posortowała odpowiedzi na tę, która zadziałała dla większości ludzi.
Paweł

Odpowiedzi:


125

Rozwiązałem ten problem, edytując oba pliki /etc/yum.repos.d/epel.repoi /etc/yum.repos.d/epel-testing.repo, komentując wszystkie wpisy zaczynające się od mirrorlist=...i odkomentowując wszystkie wpisy zaczynające się od baseurl=....


W moim przypadku ta poprawka pozwoliła firmie yum na pomyślne pobranie metadanych dla repozytorium epel, ale próba zainstalowania pakietów zakończyła się niepowodzeniem [Errno 14] Peer cert cannot be verified or peer cert invalid. Poprawną poprawką było zaktualizowanie certyfikatów ca, jak w odpowiedzi poniżej.
bain

3
komentowanie wszystkich wpisów zaczynających się od metalink = ... i odkomentowywanie wszystkich wpisów zaczynających się od baseurl = .... działało dla mnie na RHEL7.1
Anurag Singh

1
Wypróbowałem twoją metodę i yum clean all && yum updatezadziałało. Ale nie do końca, powiedział epel-release-7-11.noarch: [Errno 256] No more mirrors to tryitd. Spróbowałem więc tak, yum update curl --disablerepo=epeljak sugerowała sbetharia, i spróbowałem yum clean all && yum updateponownie, w końcu zadziałało.
Hosi Golden,

Pracował dla mnie. Wielkie dzięki.
tarekahf

3
Nie miałem mirrorlist=linii, ale miałem metalink=linie i te wymagały komentarza.
JellicleCat

171

Trzeba było tylko zaktualizować pakiet certyfikatów ca. Wcześniej po prostu wyłącz wszystkie repozytoria z https, które nie działają. Dlatego też działałoby rozwiązanie z komentowaniem listy lustrzanej lub korzystaniem z protokołu http zamiast https.

Na przykład, jeśli chcesz wyłączyć tylko repozytorium epel:

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

Pomoże to również wget, curl i wszystkim innym, co korzysta z certyfikatów SSL.


9
Powinno to zostać zaakceptowane jako poprawna odpowiedź, ponieważ diagnozuje ona prawdziwe źródło problemu, a nie tylko zapewnia obejście.
Horatio Alderaan

1
Przetestowałem to na pudełku bento CentOS 6.5 i sprawia, że ​​praca jest nieco bardziej niezawodna yum clean all && yum makecache. Jednak nadal czasami zawodzi. Dodanie ponownej próby do mojego skryptu sprawiło, że był jeszcze bardziej niezawodny. Podejrzewam, że niektóre lustra są zawodne i ponowna próba może dać inne, które działa. Więc jeśli na początku się nie uda, spróbuj ponownie!
TrinitronX

1
Cóż, wynika to z doświadczenia i tak, przekaz jest tajemniczy :)
XoR

2
upewnij się, że korzystasz z korporacyjnego serwera proxy, aby ustawić go również na https, np.export https_proxy=<your proxy>
Markus

3
epel-repo RPM powinien mieć certyfikaty ca i zależność !!
Stéphane

59

użyj tego polecenia:

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

lub alternatywnie użyj polecenia

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

przejdź do linii numer 4 i zmień adres URL z

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

do

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

Dzięki; to po prostu zadziałało dla mnie po wypróbowaniu wielu innych udokumentowanych rozwiązań (mój błąd to, Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). Moje pytanie brzmi, dlaczego to zadziałało? czy jest to spowodowane problemem z konfiguracją w witrynie repozytorium?
CODE-READ

1
Prawdopodobnie nie serwer HTTPS, ale obsługa HTTPS po stronie klienta w systemach może stać się nieaktualna, ponieważ główne urzędy certyfikacji nie są aktualizowane lub biblioteki SSL nie obsługują nowych szyfrów.
mwfearnley

Po wielu próbach rozwiązany za pomocą polecenia sed. Po prostu kopiuj + wklej, właśnie tego potrzebowałem, ponieważ zwykle nie zajmuję się tego rodzaju rzeczami, po prostu instaluję komputer testowy, który będzie używany tylko przeze mnie do testowania niektórych aktualizacji bazy danych.
EAmez

1
W Cent OS 7.6 jest tosudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

19

W moim przypadku komentowanie mirrorlisti niepomyślne wpisy baseurlnie działały. Zauważyłem, że problem httpsdotyczył .repoplików iniside w Fedorze. Rozwiązałem go wchodząc /etc/yum.repository.di zastąpienie wszystkich httpsz httpróżnych plików .repo. To się udało!!


Prawdopodobnie ma to związek z proxy ustawionym w /etc/yum.conf (proxy firmy)?
Christof Kälin,

19

Myślę, że to powinno działać. Rozwiązałem ten problem.

$ sudo yum clean all

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


3
To działa dla Centosa 6.8. Dzięki
neo

1
To rozwiązało również mój problem, jestem ciekaw, dlaczego update nsspomaga rozwiązać ten problem ?!
KLajdPaja

12

Aktualizacja curl zadziałała dla nas. W jakiś sposób yum używa curl do swoich transakcji.

yum update curl --disablerepo=epel

Twoja odpowiedź jest lepsza niż zaakceptowana, nie musisz zmieniać epel.repo lub epel-testing.repo.
Hosi Golden,

Wyśledziłem to i zaktualizowałem curl przed przeczytaniem tej lub niektórych innych odpowiedzi. Widzę, że aktualizacja curl zaktualizowała również nss ... więc zastanawiam się, czy to był problem. W moim przypadku zwinąłem adres URL metalink, zobaczyłem, że się nie udało i zobaczyłem, że działa z opcją --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ). Założono, że curl jest nieaktualny i zaktualizowano go. Więc teraz zastanawiam się, czy NSS mógł zostać zaktualizowany bez aktualizacji curl i zadziałałby, czy nie.
Paweł

9

Sprawdź, czy łączysz się z Internetem przez serwer proxy, a następnie dodaj adres internetowego serwera proxy do yumkonfiguracji.

Dodaj

proxy=http://ip:port

do /etc/yum.conf


2
upewnij się, że określono również serwer proxy https.
Markus,

1
to zadziałało dla mnie, ale tylko z dodatkowym parametrem:proxy_username=your_user proxy_password=your_passwd
MaggusK

7

Kroki przejścia

Uruchomienie następującego polecenia zaktualizuje repozytorium tak, aby korzystało z protokołu HTTP zamiast HTTPS:

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

Powinieneś wtedy móc zaktualizować za pomocą tego polecenia:

yum -y update

Jedyne rozwiązanie, które na mnie działa! Wszyscy inni nic w tym nie zmienili (potrzebuję pakietów Epel).
KuroNeko

W Cent OS 7.6 jest tosudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

6

Możesz napotkać ten komunikat / błąd po zainstalowaniu epel-release. Szybką naprawą jest aktualizacja certyfikatów SSL:

yum -y upgrade ca-certificates

Możliwe, że powyższy błąd może również wystąpić podczas aktualizacji certyfikatu, jeśli tak, po prostu wyłącz epelrepozytorium, czyli użyj następującego polecenia:

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

Gdy certyfikaty zostaną zaktualizowane, będziesz mógł normalnie używać yum, nawet repozytorium epel będzie działać dobrze. Jeśli otrzymujesz ten sam błąd dla innego repozytorium, po prostu umieść jego nazwę pod --disablerepo=<repo-name>flagą.


Uwaga : użyj, sudojeśli nie jesteś rootużytkownikiem.


1
To najlepsza odpowiedź dla mnie :)
qingbo

5

Rozwiązałem ten problem tym rozwiązaniem.

po prostu zmień w tym pliku /etc/yum.repos.d/epel.repo

mirrorlist = zmień ten adres URL z https na http

baseurl = zmień ten adres URL z https na http


4

Wszystkie powyższe nie zadziałały, ale odbudowa bazy danych rpm za pomocą następującego polecenia:

sudo rpm --rebuilddb

Dziękuję wszystkim za pomoc.


1
Musiałem użyć baseurl zamiast listy lustrzanej (zaakceptowana odpowiedź) przed zrobieniem tego
Telmo Pimentel Mota

3

W przypadku skrzynek, które nie mają dostępu do internetu, możesz usunąć epelrepozytorium:

yum remove epel-release --disablerepo=epel

Zdarzyło mi się to, gdy przypadkowo zainstalowałem epel-releaseza pomocą rpmna pudełku prod.


3

Napotkałem ten sam problem, mimo że pakiet certyfikatów ca jest aktualny. Lustro https://mirrors.fedoraproject.org/ jest obecnie podpisane przez, DigiCert High Assurance EV Root CAktóre jest zawarte w myca-bundle

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

Przyczyną niepowodzenia połączeń https w moim przypadku było to, że data systemowa została ustawiona na rok 2002, w którym DigiCert High Assurance EV Root CA(jeszcze) nie obowiązuje.

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

Zmiana czasu systemowego rozwiązała problem.


Dziękuję bardzo za tę odpowiedź. Jesteś legendą
Tony Sepia

2

Rozwiązałem to, przechodząc do /etc/yum.repository.d/. W moim przypadku komentuję listę lustrzaną i niezakomentowane wpisy za pomocą baseurl. a także dodano sslverify = false.

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


Nie tylko to, ale także zmiana adresów URL na archives.fedoraproject.org/pub/archive/fedora/linux/releases/… (dla fedora.repo i fedora-updates.repo). Zwróć uwagę na „archiwa” z przodu i „pub / archiwum” na ścieżce)
dagelf

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

2

Rozwiązałem ten problem, zmieniając wpisy https w pliku epel.repo na http.


1

W moim przypadku, gdy komentuję listę lustrzaną, błąd zniknął, ale repozytorium również nie działało, więc ręcznie wskazuję właściwy adres podstawowy, /etc/yum.repos.d/epel.repojak poniżej

[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

Naprawiono moje w ten sposób:

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

Żadne z nich nie działało dla mnie (nawet nie próbowałem hacków, takich jak ręczna edycja pliku repo).

Jednak zadziałało po prostym yum update -y


0

Inną możliwą przyczyną jest to, że Twoja architektura nie jest obsługiwana. Wpadłem na to, ponieważ otrzymałem CentOS VM, chciałem zainstalować EPEL i przez całe życie nie mogłem tego zrobić.

Okazuje się, że maszyną wirtualną był CentOS 7 i386, który jest architekturą, która najwyraźniej nie jest już obsługiwana przez EPEL. Chyba jedynym rozwiązaniem w tym przypadku jest ponowna instalacja.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.