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.