yum error «Невозможно получить металик для репозитория: epel. Пожалуйста, проверьте его путь и попробуйте еще раз »обновление ContextBroker


106

Я пытаюсь обновить Orion ContextBroker с помощью команды yum install contextBroker. К сожалению, я получаю следующую ошибку:

Загруженные плагины: fastestmirror, refresh-packagekit, security Loading

скорость зеркалирования из кэшированного хост-файла

Ошибка: не удается получить металинк для репозитория: epel. Пожалуйста, проверьте его путь и попробуйте еще раз

Что могло пойти не так?


3
Предлагаемый шаг устранения неполадок: может ваша система curl -v https://mirrors.fedoraproject.org?
mwfearnley

Выбранный ответ - это обходной путь, который не устраняет основную проблему, и на самом деле установка пакета может и дальше завершаться ошибкой. Я предлагаю отменить выбор лучшего ответа и позволить подсчету голосов отсортировать ответы до тех, которые сработали для большинства людей.
Пол

Ответы:


125

Я решил эту проблему редактирования как /etc/yum.repos.d/epel.repoи /etc/yum.repos.d/epel-testing.repoфайлы, комментируя все записи , начинающиеся с mirrorlist=...и раскомментировать все записи , начинающиеся с baseurl=....


В моем случае это исправление позволило yum успешно загрузить метаданные для репозитория epel, но попытка установить пакеты не удалась [Errno 14] Peer cert cannot be verified or peer cert invalid. Правильным исправлением было обновление CA-сертификатов, как в ответе ниже.
bain

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-сертификатов. Перед этим просто отключите все репозитории с https, которые не работают. Вот почему решение с комментированием зеркального списка или использованием http вместо https также будет работать.

Например, если вам нужно отключить только репозиторий epel:

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

Это также поможет wget, curl и всем остальным, что использует сертификаты SSL.


9
Это следует принять как правильный ответ, поскольку он диагностирует реальный источник проблемы, а не просто дает возможность ее решения.
Горацио Альдераан

1
Я тестировал это на Bento Box CentOS 6.5, и он делает работу немного более надежной yum clean all && yum makecache. Однако иногда это все равно не удается. Добавление повтора к моему сценарию сделало его еще более надежным. Я подозреваю, что некоторые зеркала ненадежны, и повторная попытка может дать другое зеркало, которое работает. Так что, если сначала не получится, попробуйте еще раз!
TrinitronX

1
Это исходит из опыта, и да, сообщение
непонятное

2
убедитесь, что если вы находитесь за корпоративным прокси-сервером, чтобы также установить его для https, напримерexport https_proxy=<your proxy>
Маркус

3
RPM epel-repo должен иметь CA-сертификаты, имеет зависимость !!
Стефан

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помощью не работают. Я заметил, что проблема была httpsвнутри .repoфайлов Fedora. Я решил это, идя в /etc/yum.repository.dи заменить все httpsс httpразными файлами .repo. Это сработало !!


Вероятно, это связано с прокси, установленным в /etc/yum.conf (прокси компании)?
Christof Kälin

19

Думаю, это должно сработать. Я решил с этим свою проблему.

$ sudo yum очистить все

$ sudo yum --disablerepo = "epel" обновить nss


3
Это работает для Centos 6.8. Спасибо
neo

1
Это также решило мою проблему, мне любопытно, почему update nssпомогает решить эту проблему ?!
KLajdPaja,

12

Обновление curl у нас сработало. Каким-то образом yum использует curl для своих транзакций.

yum update curl --disablerepo=epel

Ваш ответ лучше, чем принятый, не нужно изменять epel.repo или epel-testing.repo.
Hosi Golden

Я отследил это и обновил завиток, прежде чем читать этот или некоторые другие ответы. Я вижу, что обновление curl также обновило nss ... поэтому мне интересно, была ли это проблема. В моем случае я свернул URL-адрес metalink, увидел, что он не работает, и увидел, что он работает с --tlsv1 ( bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339 ). Предполагаемый завиток устарел и обновил его. Итак, теперь мне интересно, можно ли было обновить NSS без обновления curl, и это сработало бы или нет.
Пол

9

Проверьте, подключаетесь ли вы к Интернету через прокси-сервер, а затем добавьте адрес интернет-прокси в yumконфигурацию.

Добавить

proxy=http://ip:port

к /etc/yum.conf


2
убедитесь, что также указан прокси https.
Маркус

1
это сработало для меня, но только с дополнительным следующим параметром:proxy_username=your_user proxy_password=your_passwd
MaggusK

7

Пошаговые инструкции

Выполнение следующей команды обновит репо для использования 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

Скорее всего, указанная выше ошибка также может возникнуть при обновлении сертификата, если это так, просто отключите epelрепо, то есть используйте следующую команду:

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

После обновления сертификатов вы сможете нормально использовать yum, даже репозиторий epel будет работать нормально. Если вы получаете ту же ошибку для другого репо, просто укажите его имя напротив --disablerepo=<repo-name>флага.


Примечание : используйте, sudoесли вы не rootпользователь.


1
Это лучший ответ для меня :)
qingbo

5

Я решил эту проблему этим решением.

вы просто меняете в этом файле /etc/yum.repos.d/epel.repo

mirrorlist = измените этот URL https на http

baseurl = измените этот URL https на http


4

Все вышеперечисленное не помогло мне, но перестройка базы данных rpm с помощью следующей команды сработала:

sudo rpm --rebuilddb

Спасибо всем за помощь.


1
Перед этим пришлось использовать baseurl вместо mirrorlist (принятый ответ)
Telmo Pimentel Mota

3

Для ящиков, у которых нет доступа в Интернет, вы можете удалить epelрепозиторий:

yum remove epel-release --disablerepo=epel

Это случилось со мной, когда я случайно установил epel-releaseusing rpmна коробку prod.


3

Я столкнулся с той же проблемой, несмотря на то, что пакет ca-сертификатов обновлен. В настоящее время подписано зеркало 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

Изменение системного времени устранило проблему.


Большое спасибо за этот ответ. Вы, сэр, легенда
Тони Сепия

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 и fedora-updates.repo). Обратите внимание на «архивы» впереди и «pub / archive» в пути)
dagelf

yum install -y yum-utils --disablerepo = epel && yum-config-manager --save --setopt = epel.sslverify = false
Андрей Седой


1

В моем случае, когда я закомментировал зеркальный список, ошибка исчезла, но репо также не работало, поэтому я вручную указываю правильный базовый URL-адрес, как показано /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

Ни один из них не работал у меня (я даже не пробовал использовать хаки, такие как ручное редактирование файла репо).

Однако это сработало после простого yum update -y


0

Другая возможная причина - ваша архитектура не поддерживается. Я столкнулся с этим, потому что мне была предоставлена ​​виртуальная машина CentOS, я хотел установить EPEL и не мог этого сделать.

Оказалось, что виртуальная машина была CentOS 7 i386, архитектура которой, по-видимому, больше не поддерживается EPEL. Думаю, единственное средство в этом случае - переустановить.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.