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

106

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

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

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

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

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

JosepB
источник
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.

XoR
источник
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
sbetharia
источник
Ваш ответ лучше, чем принятый, не нужно изменять 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
Андрей Седой
2

Я решил эту проблему, изменив записи https в файле epel.repo на http.

Фабрицио
источник
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`
Futur'Fusionneur
источник
0

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

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

Джостин
источник
0

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

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

поперек
источник