yum error “Tidak dapat mengambil metalink untuk repositori: epel. Harap verifikasi jalurnya dan coba lagi ”memperbarui ContextBroker

106

Saya mencoba memperbarui Orion ContextBroker menggunakan perintah yum install contextBroker. Sayangnya saya mendapatkan error berikut:

Plugin yang dimuat: fastmirror, refresh-packagekit, security Loading

kecepatan cermin dari file host yang di-cache

Kesalahan: Tidak dapat mengambil metalink untuk repositori: epel. Harap verifikasi jalurnya dan coba lagi

Apa yang salah?

JosepB
sumber
3
Langkah pemecahan masalah yang disarankan: dapatkah sistem Anda curl -v https://mirrors.fedoraproject.org?
mwfearnley
Jawaban yang dipilih adalah solusi yang tidak memperbaiki masalah root, dan pada kenyataannya penginstalan paket mungkin terus gagal. Saya menyarankan agar tidak memilih jawaban terbaik, dan biarkan penghitungan suara mengurutkan jawaban yang berhasil bagi kebanyakan orang.
Paul

Jawaban:

125

Saya memecahkan masalah ini dengan mengedit file /etc/yum.repos.d/epel.repodan keduanya /etc/yum.repos.d/epel-testing.repo, mengomentari semua entri yang dimulai dengan mirrorlist=...dan menghapus komentar semua entri yang dimulai dengan baseurl=....

fgalan
sumber
Dalam kasus saya, perbaikan ini memungkinkan yum berhasil mengunduh metadata untuk epel repo, tetapi mencoba menginstal paket kemudian gagal [Errno 14] Peer cert cannot be verified or peer cert invalid. Perbaikan yang benar adalah memperbarui sertifikat-ca, seperti dalam jawaban di bawah ini.
bain
3
mengomentari semua entri yang dimulai dengan metalink = ... dan menghapus komentar semua entri yang dimulai dengan baseurl = .... bekerja untuk saya di RHEL7.1
Anurag Singh
1
Mencoba metode Anda, lalu yum clean all && yum updateberhasil. Tetapi tidak sepenuhnya, katanya, epel-release-7-11.noarch: [Errno 256] No more mirrors to trydll. Jadi saya mencoba yum update curl --disablerepo=epelseperti yang disarankan sbetharia, dan mencoba yum clean all && yum updatelagi, akhirnya berhasil sekarang.
Hosi Golden
Bekerja untuk saya. Terima kasih banyak.
tarekahf
3
Saya tidak memiliki mirrorlist=baris, tetapi saya memiliki metalink=baris, dan itu perlu dikomentari.
JellicleCat
171

Anda hanya perlu memperbarui paket ca-certificate. Sebelumnya nonaktifkan semua repo dengan https yang gagal. Itulah mengapa solusi dengan mengomentari mirrorlist atau menggunakan http, bukan https, juga akan berfungsi.

Misalnya jika Anda hanya perlu menonaktifkan repo epel:

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

Ini juga akan membantu wget, curl, dan apa pun yang menggunakan sertifikat SSL.

XoR
sumber
9
Ini harus diterima sebagai jawaban yang benar, karena mendiagnosis sumber masalah yang sebenarnya, bukan hanya memberikan solusi.
Horatio Alderaan
1
Saya telah menguji ini pada kotak bento CentOS 6.5 dan itu membuat hal-hal sedikit lebih dapat diandalkan saat dijalankan yum clean all && yum makecache. Namun, terkadang masih gagal. Menambahkan percobaan ulang ke skrip saya membuatnya semakin dapat diandalkan. Saya menduga bahwa beberapa mirror tidak dapat diandalkan dan percobaan ulang dapat memberikan mirror lain yang berfungsi. Jadi jika pada awalnya tidak berhasil, coba lagi!
TrinitronX
1
Ini datang dari pengalaman, dan ya, pesannya samar :)
XoR
2
pastikan jika Anda berada di belakang proxy perusahaan untuk juga mengaturnya untuk https misalnyaexport https_proxy=<your proxy>
Markus
3
epel-repo RPM harus memiliki ca-certificate yang memiliki ketergantungan !!
Stéphane
59

gunakan perintah ini:

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

atau gunakan perintah

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

pergi ke baris nomor 4 dan ubah url dari

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

untuk

mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
sumit pandit
sumber
Terima kasih; ini hanya berfungsi untuk saya setelah mencoba banyak solusi terdokumentasi lainnya (kesalahan saya adalah, Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). Pertanyaan saya adalah, mengapa ini berhasil? apakah ini karena masalah konfigurasi di situs repositori?
CODE-REaD
1
Mungkin bukan server HTTPS, tetapi dukungan sisi klien HTTPS pada sistem mungkin sudah tidak berlaku lagi, karena otoritas sertifikat akar tidak diperbarui, atau pustaka SSL tidak mendukung cipher baru.
mwfearnley
Setelah banyak mencoba, diselesaikan dengan perintah sed Anda. Cukup Salin + Tempel, itulah yang saya butuhkan karena biasanya saya tidak bertanggung jawab atas hal-hal semacam ini, hanya menginstal komputer uji untuk digunakan hanya oleh saya untuk menguji beberapa pembaruan basis data.
EAmez
1
Di Cent OS 7.6, inisudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979
19

Untuk kasus saya, mengomentari mirrorlistdan menghapus entri dengan baseurldin't work. Saya perhatikan masalahnya ada di bagian httpsdalam .repofile fedora. Saya menyelesaikannya dengan masuk /etc/yum.repository.ddan mengganti semua httpsdengan httpdi file .repo yang berbeda. Berhasil !!

Joseph N.
sumber
Ini mungkin ada hubungannya dengan proxy yang disetel di /etc/yum.conf (proxy perusahaan)?
Christof Kälin
19

Saya kira ini harus berhasil. Saya memecahkan masalah saya dengan ini.

$ sudo yum bersihkan semua

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

Varun
sumber
3
Ini wajan untuk Centos 6.8. Terima kasih
neo
1
Ini memecahkan masalah saya juga, saya ingin tahu mengapa update nssmembantu memecahkan masalah ini ?!
KLajdPaja
12

Memperbarui curl berhasil untuk kami. Entah bagaimana yum menggunakan curl untuk transaksinya.

yum update curl --disablerepo=epel
sbetharia.dll
sumber
Jawaban Anda lebih baik dari jawaban yang diterima, tidak perlu mengubah epel.repo atau epel-testing.repo.
Hosi Golden
Saya melacak ini dan memperbarui ikal sebelum membaca ini atau beberapa jawaban lainnya. Saya melihat bahwa memperbarui curl juga memperbarui nss ... jadi saya ingin tahu apakah itu masalahnya. Dalam kasus saya, saya menggulung URL metalink, melihat bahwa itu gagal, dan melihat bahwa itu bekerja dengan --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ). Diasumsikan ikal sudah usang dan memperbaruinya. Jadi sekarang saya bertanya-tanya apakah NSS bisa diperbarui tanpa memperbarui curl dan itu akan berhasil atau tidak.
Paul
9

Periksa apakah Anda mengakses internet melalui proxy, lalu tambahkan alamat proxy internet ke yum konfigurasi.

Menambahkan

proxy=http://ip:port

untuk /etc/yum.conf

Rashad Saif
sumber
2
pastikan untuk memiliki proxy https juga ditentukan.
Markus
1
ini berhasil untuk saya, tetapi hanya dengan parameter tambahan berikut:proxy_username=your_user proxy_password=your_passwd
MaggusK
7

Langkah-Langkah Panduan

Menjalankan perintah berikut akan memperbarui repo untuk menggunakan HTTP daripada HTTPS:

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

Anda kemudian harus dapat memperbarui dengan perintah ini:

yum -y update
Varadhan Work
sumber
Satu-satunya solusi yang berhasil untuk saya! Semua yang lain tidak mengubah apa pun untuk itu (saya butuh paket epel).
KuroNeko
Di Cent OS 7.6, inisudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979
6

Anda mungkin menemukan pesan / kesalahan ini, setelah menginstal epel-release. Perbaikan cepatnya adalah dengan memperbarui sertifikat SSL Anda:

yum -y upgrade ca-certificates

Kemungkinan kesalahan di atas juga dapat terjadi saat pembaruan sertifikat, jika demikian, nonaktifkan saja epelrepo yaitu gunakan perintah berikut:

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

Setelah sertifikat diperbarui, Anda akan dapat menggunakan yum secara normal, bahkan repo epel pun akan berfungsi dengan baik. Jika Anda mendapatkan kesalahan yang sama untuk repo yang berbeda, cukup taruh namanya di atas --disablerepo=<repo-name>bendera.


Catatan : gunakan sudojika Anda bukan rootpengguna.

Nabeel Ahmed
sumber
1
Itu jawaban terbaik untuk saya :)
qingbo
5

Saya memecahkan masalah ini dengan solusi ini.

Anda tinggal mengubah file ini /etc/yum.repos.d/epel.repo

mirrorlist = ubah url https ini menjadi http

baseurl = ubah url https ini menjadi http

bagaimana saya memulai
sumber
4

Semua hal di atas tidak berhasil untuk saya, tetapi membangun kembali database rpm, dengan perintah berikut, berhasil:

sudo rpm --rebuilddb

Terima kasih atas bantuannya.

Beavus Slagerty
sumber
1
Harus menggunakan baseurl daripada mirrorlist (jawaban yang diterima) sebelum melakukan ini
Telmo Pimentel Mota
3

Untuk kotak yang tidak memiliki akses internet, Anda dapat menghapus epelrepositori:

yum remove epel-release --disablerepo=epel

Ini terjadi pada saya karena saya tidak sengaja menginstal epel-releasemenggunakan rpmpada kotak prod.

Howard Lee
sumber
3

Saya mengalami masalah yang sama meskipun paket ca-certificate up-to-date. Mirror https://mirrors.fedoraproject.org/ saat ini ditandatangani DigiCert High Assurance EV Root CAyang termasuk dalam myca-bundle

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

Alasan mengapa koneksi https gagal dalam kasus saya, adalah karena tanggal sistem ditetapkan ke tahun 2002 yang DigiCert High Assurance EV Root CAtidak (belum) valid.

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

Mengubah waktu sistem memperbaiki masalah.

sauerburger
sumber
Terima kasih banyak atas jawaban ini. You Sir adalah legenda
Tony Sepia
2

Saya menyelesaikannya dengan masuk ke /etc/yum.repository.d/. Untuk kasus saya, saya mengomentari daftar cermin dan entri yang tidak datang dengan baseurl. serta menambahkan sslverify = false.

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

Laxman S.
sumber
Tidak hanya itu, tetapi juga mengubah URL menjadi archives.fedoraproject.org/pub/archive/fedora/linux/releases/… (untuk fedora.repo dan fedora-update.repo). Perhatikan "arsip" di depan dan "pub / arsip" di jalur)
dagelf
yum install -y yum-utils --disablerepo = epel && yum-config-manager --save --setopt = epel.sslverify = false
Andrei Sedoi
2

Saya telah mengatasi masalah ini dengan mengubah entri https di file epel.repo menjadi http.

Fabricio
sumber
1

Dalam kasus saya ketika saya mengomentari mirrorlist kesalahannya hilang tetapi repo juga tidak berfungsi jadi saya secara manual mengarahkan baseurl yang tepat /etc/yum.repos.d/epel.reposeperti di bawah ini

[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

Rohit Sharma
sumber
0

Mengubah URL daftar cermin dari https ke http memperbaiki masalah saya.

Anil Reddy
sumber
0

Memperbaiki milik saya seperti ini:

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`
Futur'Fusionneur
sumber
0

Tidak ada yang berhasil untuk saya (saya bahkan tidak mencoba peretasan seperti mengedit file repo secara manual).

Namun itu berhasil setelah yang sederhana yum update -y

jaustin
sumber
0

Penyebab lain yang mungkin adalah arsitektur Anda tidak didukung. Saya mengalami ini karena saya diberi VM CentOS, ingin menginstal EPEL dan tidak bisa seumur hidup saya menyelesaikannya.

Ternyata VM tersebut adalah CentOS 7 i386, yang merupakan arsitektur yang tampaknya tidak lagi didukung oleh EPEL. Saya kira satu-satunya solusi dalam kasus ini adalah menginstal ulang.

aross
sumber