lỗi yum “Không thể truy xuất metalink cho kho: epel. Vui lòng xác minh đường dẫn của nó và thử lại ”cập nhật ContextBroker


106

Tôi đang cố gắng cập nhật Orion ContextBroker bằng lệnh yum install contextBroker. Rất tiếc, tôi gặp lỗi sau:

Các plugin đã tải: quickmirror, refresh-packagekit, security Loading

tốc độ nhân bản từ tệp máy chủ lưu trữ trong bộ nhớ cache

Lỗi: Không thể truy xuất metalink cho kho: epel. Vui lòng xác minh đường dẫn của nó và thử lại

Điều gì có thể xảy ra?


3
Bước khắc phục sự cố được đề xuất: hệ thống của bạn có được curl -v https://mirrors.fedoraproject.orgkhông?
mwfearnley

Câu trả lời đã chọn là một giải pháp thay thế không khắc phục được sự cố root và trên thực tế, việc cài đặt gói có thể tiếp tục không thành công. Tôi khuyên bạn nên bỏ chọn câu trả lời hay nhất và để số phiếu bầu sắp xếp các câu trả lời cho câu trả lời phù hợp với hầu hết mọi người.
Paul

Câu trả lời:


125

Tôi đã giải quyết vấn đề này khi chỉnh sửa cả /etc/yum.repos.d/epel.repo/etc/yum.repos.d/epel-testing.repotệp, nhận xét tất cả các mục bắt đầu bằng mirrorlist=...và bỏ ghi chú tất cả các mục bắt đầu bằng baseurl=....


Trong trường hợp của tôi, bản sửa lỗi này đã cho phép yum tải xuống thành công siêu dữ liệu cho repo epel, nhưng cố gắng cài đặt các gói sau đó không thành công với [Errno 14] Peer cert cannot be verified or peer cert invalid. Cách khắc phục chính xác là cập nhật ca-certificate, như trong câu trả lời bên dưới.
bain

3
cho ý kiến tất cả các mục bắt đầu với metalink = ... và uncommenting tất cả các mục bắt đầu với baseurl = .... làm việc cho tôi trên RHEL7.1
Anurag Singh

1
Đã thử phương pháp của bạn, rồi yum clean all && yum updatehiệu quả. Nhưng không hoàn toàn, nó nói, epel-release-7-11.noarch: [Errno 256] No more mirrors to tryvv Vì vậy, tôi đã thử yum update curl --disablerepo=epelnhư sbetharia đề xuất, và thử yum clean all && yum updatelại, cuối cùng nó đã hoạt động ngay bây giờ.
Hosi Golden

Đã làm cho tôi. Cảm ơn rất nhiều.
tarekahf

3
Tôi không có mirrorlist=dòng nào , nhưng tôi có metalink=dòng, và những dòng đó cần được bình luận.
JellicleCat

170

Bạn chỉ cần cập nhật gói ca-certificate. Trước đó, chỉ cần vô hiệu hóa tất cả các repo có https bị lỗi. Đó là lý do tại sao giải pháp với danh sách phản chiếu bình luận hoặc sử dụng http thay vì https cũng sẽ hoạt động.

Ví dụ: nếu bạn chỉ cần tắt repo epel:

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

Điều này cũng sẽ giúp wget, curl và bất kỳ thứ gì khác sử dụng chứng chỉ SSL.


9
Đây nên được chấp nhận là câu trả lời chính xác, vì nó chẩn đoán nguồn gốc thực sự của vấn đề, thay vì chỉ cung cấp một giải pháp xung quanh.
Horatio Alderaan

1
Tôi đã thử nghiệm điều này trên hộp bento CentOS 6.5 và nó làm cho mọi thứ đáng tin cậy hơn một chút khi chạy yum clean all && yum makecache. Tuy nhiên, đôi khi vẫn bị lỗi. Thêm một lần thử lại vào tập lệnh của tôi khiến nó trở nên đáng tin cậy hơn. Tôi nghi ngờ rằng một số gương không đáng tin cậy và việc thử lại có thể cho một gương khác hoạt động. Vì vậy, nếu lúc đầu nó không thành công, hãy thử lại!
TrinitronX

1
Vâng, điều này đến từ kinh nghiệm, và vâng, tin nhắn thật khó hiểu :)
XoR

2
chắc chắn rằng nếu bạn đằng sau một proxy công ty để cũng thiết lập nó cho https ví dụexport https_proxy=<your proxy>
Markus

3
epel-repo RPM nên có ca-chứng chỉ có phụ thuộc !!
Stéphane

59

sử dụng lệnh này:

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

hoặc cách khác sử dụng lệnh

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

chuyển đến dòng số 4 và thay đổi url từ

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

đến

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

Cảm ơn; điều này chỉ hoạt động đối với tôi sau khi thử nhiều giải pháp được ghi lại khác (lỗi của tôi là, Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). Câu hỏi của tôi là, tại sao nó hoạt động? Đây có phải là do sự cố cấu hình tại trang web của kho lưu trữ không?
CODE-REaD 19/07/19

1
Có thể không phải máy chủ HTTPS, nhưng hỗ trợ phía máy khách HTTPS trên các hệ thống có thể lỗi thời, do tổ chức phát hành chứng chỉ gốc không được cập nhật hoặc thư viện SSL không hỗ trợ mật mã mới.
mwfearnley

Sau nhiều lần thử, đã giải quyết bằng lệnh sed của bạn. Chỉ cần Sao chép + Dán, đó là những gì tôi cần bởi vì thường tôi không phụ trách những việc này, chỉ cài đặt một máy tính thử nghiệm chỉ được sử dụng bởi tôi để kiểm tra một số bản cập nhật cơ sở dữ liệu.
EAmez

1
Trong Cent OS 7.6, đây làsudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

19

Đối với trường hợp của tôi, bình luận mirrorlistvà phát hiện ra các mục không baseurlhoạt động. Tôi nhận thấy vấn đề là với mặt httpsphẳng của .repocác tệp fedora. Tôi đã giải quyết nó bằng cách vào /etc/yum.repository.dvà thay thế tất cả httpsbằng httpcác tệp .repo khác nhau. Điều đó đã hiệu quả !!


Điều này có thể liên quan đến một proxy được đặt trong /etc/yum.conf (proxy công ty)?
Christof Kälin

19

Tôi đoán điều này sẽ hoạt động. Tôi đã giải quyết vấn đề của tôi với điều này.

$ sudo yum làm sạch tất cả

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


3
Chảo này dành cho Centos 6.8. Cảm ơn
neo

1
Điều này cũng giải quyết được vấn đề của tôi, tôi tò mò tại sao lại update nssgiúp giải quyết vấn đề này ?!
KLajdPaja

12

Cập nhật cuộn tóc đã làm việc cho chúng tôi. Bằng cách nào đó, yum sử dụng curl cho các giao dịch của mình.

yum update curl --disablerepo=epel

Câu trả lời của bạn tốt hơn câu trả lời được chấp nhận, không cần thay đổi epel.repo hoặc epel-testing.repo.
Hosi Golden

Tôi đã theo dõi điều này và cập nhật curl trước khi đọc câu trả lời này hoặc một số câu trả lời khác. Tôi thấy rằng cập nhật curl cũng cập nhật nss ... vì vậy tôi tự hỏi liệu đó có phải là vấn đề không. Trong trường hợp của tôi, tôi đã cuộn lại URL metalink, thấy rằng nó không thành công và thấy rằng nó hoạt động với --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ). Giả sử cuộn tóc đã lỗi thời và cập nhật nó. Vì vậy, bây giờ tôi tự hỏi nếu NSS có thể đã được cập nhật w / o cập nhật curl và nó có hoạt động hay không.
Paul

9

Kiểm tra xem bạn có truy cập internet thông qua proxy hay không, sau đó thêm địa chỉ proxy internet vào yumcấu hình.

thêm vào

proxy=http://ip:port

đến /etc/yum.conf


2
đảm bảo cũng đã chỉ định proxy https.
Markus

1
điều này đã làm việc cho tôi, nhưng chỉ với thông số bổ sung sau:proxy_username=your_user proxy_password=your_passwd
MaggusK

7

Các bước hướng dẫn

Chạy lệnh sau sẽ cập nhật repo để sử dụng HTTP thay vì HTTPS:

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

Sau đó, bạn sẽ có thể cập nhật bằng lệnh này:

yum -y update

Giải pháp duy nhất phù hợp với tôi! Tất cả những người khác không thay đổi bất cứ điều gì đối với nó (tôi cần gói epel).
KuroNeko

Trong Cent OS 7.6, đây làsudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

6

Bạn có thể gặp thông báo / lỗi này sau khi cài đặt epel-release. Cách khắc phục nhanh chóng là cập nhật chứng chỉ SSL của bạn:

yum -y upgrade ca-certificates

Rất có thể lỗi ở trên cũng có thể xảy ra khi cập nhật chứng chỉ, nếu vậy, chỉ cần vô hiệu hóa epel repo tức là sử dụng lệnh sau:

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

Sau khi các chứng chỉ được cập nhật, bạn sẽ có thể sử dụng yum bình thường, thậm chí repo epel sẽ hoạt động tốt. Trong trường hợp bạn gặp lỗi tương tự này cho một repo khác, chỉ cần đặt tên của nó vào--disablerepo=<repo-name> cờ.


Lưu ý : sử dụng sudonếu bạn không phải là rootngười dùng.


1
Đó là câu trả lời tốt nhất cho tôi :)
qingbo

5

Tôi đã giải quyết vấn đề này bằng giải pháp này.

bạn chỉ cần thay đổi trong tệp này /etc/yum.repos.d/epel.repo

mirrorlist = thay đổi url này https thành http

baseurl = thay đổi url này https thành http


4

Tất cả những điều trên không hoạt động đối với tôi, nhưng việc xây dựng lại cơ sở dữ liệu rpm, với lệnh sau, đã thực hiện:

sudo rpm --rebuilddb

Cảm ơn tất cả vì sự giúp đỡ.


1
Phải baseurl sử dụng thay vì mirrorlist (Câu trả lời được chấp nhận) trước khi làm điều này
Telmo Pimentel Mota

3

Đối với các hộp không có quyền truy cập internet, bạn có thể xóa epelkho lưu trữ:

yum remove epel-release --disablerepo=epel

Điều này đã xảy ra với tôi khi tôi vô tình cài đặt epel-releasebằng cách sử dụng rpmhộp sản phẩm.


3

Tôi gặp phải vấn đề tương tự mặc dù gói ca-certificate đã được cập nhật. Nhân bản https://mirrors.fedoraproject.org/ hiện đã được ký bởi DigiCert High Assurance EV Root CAnó được bao gồm trongca-bundle

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

Lý do tại sao kết nối https không thành công trong trường hợp của tôi, đó là ngày hệ thống được đặt thành năm 2002, trong đó ngày đó DigiCert High Assurance EV Root CAchưa (chưa) hợp lệ.

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

Thay đổi thời gian hệ thống đã khắc phục sự cố.


Cảm ơn bạn rất nhiều vì câu trả lời này. Ngài là một huyền thoại
Tony Sepia

2

Tôi đã giải quyết nó bằng cách truy cập /etc/yum.repository.d/. Đối với trường hợp của tôi, tôi bình luận ra danh sách phản chiếu và các mục nhập khám phá với baseurl. cũng như thêm sslverify = false.

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


Không chỉ vậy, mà còn thay đổi URL thành archives.fedoraproject.org/pub/archive/fedora/linux/releases/… (cho fedora.repo và fedora-Updates.repo). Lưu ý "kho lưu trữ" ở phía trước và "quán rượu / kho lưu trữ" trong đường dẫn)
dagelf

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

2

Tôi đã giải quyết vấn đề này bằng cách thay đổi các mục nhập https trong tệp epel.repo thành http.


1

Trong trường hợp của tôi khi tôi nhận xét trong danh sách gương, lỗi đã biến mất nhưng repo cũng không hoạt động nên tôi tự trỏ baseurl bên phải vào /etc/yum.repos.d/epel.reponhư dưới đây

[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

Thay đổi URL danh sách phản chiếu từ https thành http đã khắc phục sự cố cho tôi.


0

Đã sửa lỗi của tôi như thế này:

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

Không có cái nào trong số này hiệu quả với tôi (tôi thậm chí còn không thử các thủ thuật như chỉnh sửa thủ công tệp repo).

Tuy nhiên nó đã hoạt động sau một yum update -y


0

Một nguyên nhân khác có thể là kiến ​​trúc của bạn không được hỗ trợ. Tôi gặp phải vấn đề này vì tôi được cung cấp một máy ảo CentOS, muốn cài đặt EPEL và không thể thực hiện được.

Hóa ra VM là CentOS 7 i386, đây là một kiến ​​trúc dường như không còn được EPEL hỗ trợ nữa. Tôi đoán cách khắc phục duy nhất trong trường hợp này là cài đặt lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.