yum error“ ไม่สามารถดึง metalink สำหรับ repository: epel โปรดตรวจสอบเส้นทางและลองอีกครั้ง” กำลังอัปเดต ContextBroker


106

ฉันกำลังพยายามอัปเดต Orion ContextBroker โดยใช้คำสั่ง yum install contextBroker โชคไม่ดีที่ฉันได้รับข้อผิดพลาดต่อไปนี้:

ปลั๊กอินที่โหลด: fastmirror, refresh-packagekit, การโหลดความปลอดภัย

ความเร็วมิเรอร์จากไฟล์โฮสต์ที่แคชไว้

ข้อผิดพลาด: ไม่สามารถดึง metalink สำหรับ repository: epel โปรดยืนยันเส้นทางและลองอีกครั้ง

จะเกิดอะไรขึ้น?


3
ขั้นตอนการแก้ไขปัญหาที่แนะนำ: ระบบของคุณได้curl -v https://mirrors.fedoraproject.orgหรือไม่?
mwfearnley

คำตอบที่เลือกคือวิธีแก้ปัญหาที่ไม่สามารถแก้ไขปัญหารากได้และในความเป็นจริงการติดตั้งแพคเกจอาจล้มเหลวต่อไป ฉันขอแนะนำให้ยกเลิกการเลือกคำตอบที่ดีที่สุดและปล่อยให้การนับคะแนนเรียงลำดับคำตอบของคำตอบที่เหมาะกับคนส่วนใหญ่
พอล

คำตอบ:


125

ฉันจะแก้ไขปัญหานี้แก้ไขทั้งสอง/etc/yum.repos.d/epel.repoและ/etc/yum.repos.d/epel-testing.repoไฟล์แสดงความคิดเห็นรายการทั้งหมดที่เริ่มต้นด้วยmirrorlist=...และ uncommenting baseurl=...รายการทั้งหมดที่เริ่มต้นด้วย


ในกรณีของฉันการแก้ไขนี้อนุญาตให้ yum ดาวน์โหลดข้อมูลเมตาสำหรับ epel repo ได้สำเร็จ แต่การพยายามติดตั้งแพ็คเกจนั้นล้มเหลวด้วย[Errno 14] Peer cert cannot be verified or peer cert invalid. การแก้ไขที่ถูกต้องคือการอัปเดตใบรับรอง ca ดังในคำตอบด้านล่าง
เบน

3
แสดงความคิดเห็นรายการทั้งหมดที่ขึ้นต้นด้วย metalink = ... และยกเลิกการแสดงความคิดเห็นรายการทั้งหมดที่ขึ้นต้นด้วย baseurl = .... ทำงานให้ฉันบน RHEL7.1
Anurag Singh

1
ลองใช้วิธีของคุณแล้วyum clean all && yum updateได้ผล แต่ไม่สมบูรณ์มันบอกว่า epel-release-7-11.noarch: [Errno 256] No more mirrors to tryฯลฯ ดังนั้นฉันจึงลองทำyum update curl --disablerepo=epelตามที่ sbetharia แนะนำและลองyum clean all && yum updateอีกครั้งในที่สุดมันก็ได้ผล
Hosi Golden

ทำงานให้ฉัน ขอบคุณมาก.
tarekahf

3
ฉันไม่มีmirrorlist=เส้น แต่ฉันมีmetalink=เส้นและต้องแสดงความคิดเห็น
JellicleCat

171

คุณเพียงแค่ต้องอัปเดตแพ็คเกจ ca-certificate ก่อนหน้านั้นให้ปิดการใช้งาน repos ทั้งหมดด้วย https ที่ล้มเหลว นั่นเป็นเหตุผลที่วิธีแก้ปัญหาด้วยการแสดงความคิดเห็นมิเรอร์ลิสต์หรือใช้ http แทน https ก็ใช้ได้เช่นกัน

ตัวอย่างเช่นหากคุณต้องการปิดเฉพาะ epel repo:

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

สิ่งนี้จะช่วย wget, curl และสิ่งอื่น ๆ ที่ใช้ใบรับรอง SSL


9
สิ่งนี้ควรได้รับการยอมรับว่าเป็นคำตอบที่ถูกต้องเนื่องจากเป็นการวินิจฉัยที่มาที่แท้จริงของปัญหาแทนที่จะเป็นเพียงการแก้ไขปัญหา
Horatio Alderaan

1
ผมได้ทดสอบนี้บน CentOS 6.5 เบนโตะกล่องyum clean all && yum makecacheและมันจะทำให้สิ่งที่น่าเชื่อถือมากขึ้นเล็กน้อยเมื่อทำงาน อย่างไรก็ตามบางครั้งก็ยังล้มเหลว การเพิ่มการลองใหม่ในสคริปต์ของฉันทำให้สคริปต์มีความน่าเชื่อถือมากขึ้น ฉันสงสัยว่ากระจกบางบานไม่น่าเชื่อถือและการลองใหม่อาจทำให้กระจกบานอื่นใช้งานได้ ดังนั้นหากในตอนแรกยังไม่สำเร็จให้ลองอีกครั้ง!
TrinitronX

1
สิ่งนี้มาจากประสบการณ์และใช่ข้อความเป็นความลับ :)
XoR

2
ตรวจสอบให้แน่ใจว่าคุณอยู่เบื้องหลังพร็อกซีขององค์กรเพื่อตั้งค่าเป็น https เช่นexport https_proxy=<your proxy>
Markus

3
epel-repo RPM ควรมีใบรับรอง ca มีการพึ่งพา !!
Stéphane

59

ใช้คำสั่งนี้:

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

หรือใช้คำสั่ง

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

ไปที่บรรทัดหมายเลข 4 และเปลี่ยน url จาก

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

ถึง

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

ขอบคุณ; สิ่งนี้ใช้ได้ผลสำหรับฉันหลังจากลองใช้วิธีแก้ปัญหาที่มีเอกสารอื่น ๆ (ข้อผิดพลาดของฉันคือCannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again) คำถามของฉันคือทำไมถึงได้ผล เกิดจากปัญหาการกำหนดค่าที่ไซต์ที่เก็บหรือไม่
CODE-REaD

1
อาจไม่ใช่เซิร์ฟเวอร์ HTTPS แต่การสนับสนุนฝั่งไคลเอ็นต์ HTTPS ในระบบอาจล้าสมัยเนื่องจากผู้ออกใบรับรองหลักไม่ได้รับการอัปเดตหรือไลบรารี SSL ไม่รองรับการเข้ารหัสใหม่
mwfearnley

หลังจากพยายามหลายครั้งแก้ไขด้วยคำสั่ง sed ของคุณ เพียงแค่คัดลอก + วางนั่นคือสิ่งที่ฉันต้องการเพราะโดยปกติฉันไม่ได้รับผิดชอบเรื่องประเภทนี้เพียงแค่ติดตั้งคอมพิวเตอร์ทดสอบเพื่อให้ฉันใช้เพื่อทดสอบการอัปเดตฐานข้อมูลบางอย่างเท่านั้น
EAmez

1
ใน Cent OS 7.6 นี่คือsudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

19

สำหรับกรณีของฉันที่แสดงความคิดเห็นmirrorlistและไม่แสดงความคิดเห็นกับรายการที่baseurlไม่ได้ผล ฉันสังเกตเห็นว่าปัญหาเกิดจากhttpsiniside .repoไฟล์ fedora ฉันแก้ไขได้โดยเข้าไป/etc/yum.repository.dและแทนที่ทั้งหมดhttpsด้วยhttpไฟล์. repo อื่น ได้ผล !!


สิ่งนี้อาจเกี่ยวข้องกับพร็อกซีที่ตั้งค่าใน /etc/yum.conf (พร็อกซีของ บริษัท )?
Christof Kälin

19

ฉันเดาว่ามันน่าจะใช้ได้ ฉันแก้ปัญหาของฉันด้วยสิ่งนี้

$ sudo yum ล้างทั้งหมด

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


3
กระทะนี้สำหรับ Centos 6.8 ขอบคุณ
neo

1
สิ่งนี้ช่วยแก้ปัญหาของฉันด้วยฉันสงสัยว่าทำไมตัวupdate nssช่วยในการแก้ปัญหานี้!
KLajdPaja

12

การอัปเดต curl ใช้ได้ผลกับเรา ยำใช้ curl ในการทำธุรกรรม

yum update curl --disablerepo=epel

คำตอบของคุณดีกว่าคำตอบที่ยอมรับไม่จำเป็นต้องเปลี่ยน epel.repo หรือ epel-testing.repo
Hosi Golden

ฉันติดตามสิ่งนี้และอัปเดต curl ก่อนที่จะอ่านคำตอบนี้หรือคำตอบอื่น ๆ ฉันเห็นว่าการอัปเดต curl นั้นอัปเดต nss ด้วย ... ดังนั้นฉันจึงสงสัยว่าเป็นปัญหาหรือไม่ ในกรณีของฉันฉันม้วน URL metalink เห็นว่ามันล้มเหลวและเห็นว่ามันใช้งานได้กับ --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ) สันนิษฐานว่า curl ล้าสมัยและอัปเดตแล้ว ตอนนี้ฉันสงสัยว่า NSS สามารถอัปเดตได้โดยไม่ต้องอัปเดต curl และจะใช้งานได้หรือไม่
พอล

9

ตรวจสอบว่าคุณเข้าถึงอินเทอร์เน็ตผ่านพร็อกซีหรือไม่จากนั้นเพิ่มที่อยู่พร็อกซีอินเทอร์เน็ตในyumการกำหนดค่า

เพิ่ม

proxy=http://ip:port

ถึง /etc/yum.conf


2
ตรวจสอบให้แน่ใจว่าได้ระบุพร็อกซี https ไว้ด้วย
Markus

1
สิ่งนี้ใช้ได้ผลสำหรับฉัน แต่มีพารามิเตอร์ต่อไปนี้เท่านั้น:proxy_username=your_user proxy_password=your_passwd
MaggusK

7

ขั้นตอนการฝึก

การรันคำสั่งต่อไปนี้จะอัปเดต repo ให้ใช้ HTTP แทน HTTPS:

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

จากนั้นคุณควรจะสามารถอัปเดตด้วยคำสั่งนี้:

yum -y update

ทางออกเดียวที่เหมาะกับฉัน! ส่วนอื่น ๆ ทั้งหมดไม่ได้เปลี่ยนแปลงอะไรเลย (ฉันต้องการแพ็คเกจ epel)
KuroNeko

ใน Cent OS 7.6 นี่คือsudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo
JamesThomasMoon1979

6

คุณอาจพบข้อความ / ข้อผิดพลาดนี้หลังจากติดตั้ง epel-release การแก้ไขด่วนคือการอัปเดตใบรับรอง SSL ของคุณ:

yum -y upgrade ca-certificates

โอกาสที่ข้อผิดพลาดข้างต้นอาจเกิดขึ้นขณะอัปเดตใบรับรองหากเป็นเช่นนั้นเพียงปิดใช้งานepelrepo เช่นใช้คำสั่งต่อไปนี้:

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

เมื่ออัปเดตใบรับรองแล้วคุณจะสามารถใช้ yum ได้ตามปกติแม้ epel repo จะทำงานได้ดี ในกรณีที่คุณได้รับข้อผิดพลาดเดียวกันนี้สำหรับ repo ที่แตกต่างกันเพียงแค่ใส่ชื่อให้ตรงกับ--disablerepo=<repo-name>แฟล็ก


หมายเหตุ : ใช้sudoหากคุณไม่ใช่rootผู้ใช้


1
นั่นเป็นคำตอบที่ดีที่สุดสำหรับฉัน :)
qingbo

5

ฉันแก้ไขปัญหานี้โดยวิธีนี้

คุณเพิ่งเปลี่ยนไฟล์นี้ /etc/yum.repos.d/epel.repo

mirrorlist = เปลี่ยน url https นี้เป็น http

baseurl = เปลี่ยน url https นี้เป็น http


4

ทั้งหมดข้างต้นไม่ได้ผลสำหรับฉัน แต่การสร้างฐานข้อมูลรอบต่อนาทีใหม่ด้วยคำสั่งต่อไปนี้ทำ:

sudo rpm --rebuilddb

ขอบคุณทุกคนสำหรับความช่วยเหลือ


1
ต้องใช้ baseurl แทน mirrorlist (คำตอบที่ยอมรับ) ก่อนทำสิ่งนี้
Telmo Pimentel Mota

3

สำหรับกล่องที่ไม่มีอินเทอร์เน็ตคุณสามารถลบที่epelเก็บได้:

yum remove epel-release --disablerepo=epel

สิ่งนี้เกิดขึ้นกับฉันเมื่อฉันติดตั้งepel-releaseโดยไม่ได้ตั้งใจโดยใช้rpmกล่องผลิตภัณฑ์


3

ฉันพบปัญหาเดียวกันแม้ว่าแพ็กเกจ ca-certificate จะเป็นเวอร์ชันล่าสุด ขณะนี้มิเรอร์https://mirrors.fedoraproject.org/ ได้รับการลงชื่อDigiCert High Assurance EV Root CAซึ่งรวมอยู่ในไฟล์ca-bundle

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

สาเหตุที่การเชื่อมต่อ https ล้มเหลวในกรณีของฉันคือวันที่ระบบถูกตั้งค่าเป็นปี 2002 ซึ่งDigiCert High Assurance EV Root CAยังไม่ถูกต้อง

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

การเปลี่ยนเวลาของระบบช่วยแก้ปัญหาได้


ขอบคุณมากสำหรับคำตอบนี้ คุณเซอร์คือตำนาน
Tony Sepia

2

ฉันแก้ไขโดยไปที่ /etc/yum.repository.d/ สำหรับกรณีของฉันฉันแสดงความคิดเห็นจากมิเรอร์ลิสต์และรายการที่ไม่แสดงความคิดเห็นด้วย baseurl รวมทั้งเพิ่ม sslverify = false

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


ไม่เพียงแค่นั้น แต่ยังมีการเปลี่ยนแปลง URL ที่จะarchives.fedoraproject.org/pub/archive/fedora/linux/releases/... (สำหรับ fedora.repo และฟาง-updates.repo) สังเกต "ที่เก็บถาวร" ด้านหน้าและ "pub / archive" ในเส้นทาง)
dagelf

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

2

ฉันแก้ปัญหานี้ได้โดยเปลี่ยนรายการ https ในไฟล์ epel.repo เป็น http


1

ในกรณีของฉันเมื่อฉันแสดงความคิดเห็นในมิเรอร์ลิสต์ข้อผิดพลาดก็หายไป แต่ repo ก็ใช้งานไม่ได้ดังนั้นฉันจึงชี้ baseurl ที่ถูกต้องด้วยตนเอง /etc/yum.repos.d/epel.repoดังต่อไปนี้

[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

การเปลี่ยน URL ของมิเรอร์ลิสต์จาก https เป็น http ช่วยแก้ปัญหาให้ฉันได้


0

แก้ไขของฉันเช่นนี้:

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

สิ่งเหล่านี้ไม่ได้ผลสำหรับฉัน (ฉันไม่ได้ลองใช้แฮ็กเช่นการแก้ไขไฟล์ repo ด้วยตนเอง)

อย่างไรก็ตามมันใช้งานได้ง่าย yum update -y


0

อีกสาเหตุที่เป็นไปได้คือสถาปัตยกรรมของคุณไม่ได้รับการสนับสนุน ฉันพบสิ่งนี้เพราะฉันได้รับ CentOS VM ต้องการติดตั้ง EPEL และทำไม่ได้ตลอดชีวิต

ปรากฎว่า VM คือ CentOS 7 i386 ซึ่งเป็นสถาปัตยกรรมที่ EPEL ไม่รองรับอีกต่อไป ฉันเดาว่าวิธีแก้ไขเดียวในกรณีนี้คือการติดตั้งใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.