Ошибка обновления yum: Ошибка: невозможно получить метаданные хранилища (repomd.xml) для хранилища…

34

Я использую CentOS 6.3. Когда я пытаюсь обновить систему с помощью yum, у меня появляется это сообщение:

yum update

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ircam.fr
 * centosplus: miroir.univ-paris13.fr
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum clean all

Loaded plugins: fastestmirror
Cleaning repos: CactiEZ addons base centosplus extras pgdg93 update
Cleaning up Everything
Cleaning up list of fastest mirrors

yum check

Loaded plugins: fastestmirror
check all

yum erase apf

Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: apf
Determining fastest mirrors
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
CactiEZ                                                | 2.9 kB     00:00
CactiEZ/primary_db                                     |  13 kB     00:00
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum upgrade

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

Мой yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
az93
источник
1
со вчерашнего дня вы задавали так много вопросов об ошибке с yum интернет-соединением и проблемами пути, вы только что подумали переустановить вашу систему? Кажется, это очень
круто
Вы должны исправить интернет-соединение в первую очередь. Переустановка может быть вариантом. Или попробуйте загрузить систему Live CD.
Петер
Я решил проблему, удалив папку "yum.repos.d" и воссоздав файл example.repo. отсюда можно добавить подробности репо: linuxquestions.org/questions/linux-newbie-8/…
Ян

Ответы:

33

Ваш ca-bundles.crt слишком стар. Одним из способов решения проблемы до обновления до новой версии CentOS будет изменение epel.repo с использования https на http

sudo sed -i 's/https/http/g' /etc/yum.repos.d/epel.repo
RobertDeRose
источник
2
+1 Спот на. Но вам не нужно обновлять CentOS, чтобы получить последний сертификат (из-за долгосрочной поддержки CentOS). yum update ca-certificatesдолжен сделать свое дело (после отключения https для epel, или получения rpm напрямую и обновления с использованием rpm).
Кев
@kev Ну, теоретически ваш комментарий должен работать, но, к сожалению, когда я спрашиваю, yum to update ca-certificatesя получаю «Пакеты не помечены для обновления» . Фактически, когда я делаю a, yum list | grep ca-certificatesя получаю этот ca-сертификаты.noarch 2010.63-3.el6_1.5 в качестве последней версии на моем компьютере CentOS 6.4. На моем компьютере с CentOS 6.5 я получаю ca-Certificate.noarch 2014.1.98-65.1.el6. Похоже, вам нужно как минимум обновить CentOS 6.5, чтобы получить последние CA-Ceritifcates от CentOS, или вручную получить rpm и установить его. ,
RobertDeRose
@ Кев Роб прибил это. Многие предприятия по-прежнему находятся в очень старых дистрибутивах. В настоящее время я работаю над CentOS4.5 для клиента и должен сделать много вещей, которые обычно не нужно делать.
SgtPooki
@RobD Похоже, что OP использует http, и когда я столкнулся с той же проблемой, я тоже использовал http, а не https. Так что мне просто любопытно, как вы могли бы сделать вывод, что корневые сертификаты ssl ca являются устаревшей причиной?
Дуайт Спенсер
@DwightSpencer извините, я не понимаю ваш вопрос, что такое ОП? Я пришел к выводу, что мои корневые сертификаты ssl ca были проблемой, потому что на моем старом ящике CentOS 6.2 я не мог обновить, но на моем 6.6 я мог. Простое переключение с https на http решило проблему. Я более или менее сузил это до этого.
RobertDeRose
16

Попробуйте это (должно быть root)

yum clean all
yum check
yum erase apf
yum update ca-certificates
yum upgrade
SHW
источник
Посмотрите на правку
az93
Ура! Это сработало :)
facundofarias
1
Отлично сработало, и это намного чище, чем некоторые другие ответы в этой теме.
Дуайт Спенсер
Мне пришлось добавить туда yum update --disableplugin fastestmirrorпроход, потому что один из этих шагов (вероятно yum clean) удалил информацию, необходимую для контакта с зеркалами. Я сказал «нет», когда он предложил сделать обновление, затем сделал простой, yum updateи на этот раз это удалось. Я полагаю, что первый проход заставил его загрузить свежий список зеркал с основного сайта CentOS, что позволило второму проходу пройти успешно.
Уоррен Янг
6

Введите « http://mirror.centos.org/centos/6 » в браузере и увидите, что «addons» не существует.

так что попробуйте yum --disablerepo=addons update

Amauche
источник
Так что я должен делать?
az93
yum --disablerepo = обновление аддонов
Amauche
Та же проблема ...
az93
мы можем увидеть ваш конф конфет?
Amauche
Посмотрите на правку
az93
3

Проблема для меня заключалась в том, что репозитории используют https, и это не работает.

cd /etc/yum.repos.d/
grep -RFi "https" *

Это показывает, в каких файлах репо используется https. Откройте их в редакторе и сделайте http. Для меня это решило проблему.

SPRBRN
источник
3

Все предыдущие ответы не сработали, но выполнение следующих команд сработало:

$ sudo yum remove centos-release-SCL
$ sudo yum update # Update to CentOS 6.8
$ sudo yum install centos-release-scl
$ sudo yum update

Который я получил из этого поста в блоге .

Рой Хинкли
источник
2

Если вы используете 6.5, я не знаю почему, но не существует каталога 6.5 в официальном репозитории yum для centOS. Все пакеты вернут код состояния 404

Если вы попробуете это: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm, вы получите 404, но если вы попробуете версия 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm это работает.

Джефферсон Соуза
источник
1

Если вы запустите «yum update» или «yum upgrade» без каких-либо других параметров, все пакеты в вашей системе, включая yum, будут обновлены, поэтому действительно не нужно обновлять yum самостоятельно, если вы не обновляете версии Fedora или CentOS.

Анкур Лория
источник
На самом деле мне нужно установить FTP. Но когда я использую yum install ftp, у меня возникает та же проблема.
az93
1

Я установил CentOS через Vagrant, и он пришел с /etc/yum.repos.d/каталогом, заполненным такими вещами, как puppet.repo. И вот, puppet.repoи другие включенные репозитории не указывают на действительные ресурсы.

Так что я удалил их, и теперь работает Yum.

Дэвид Уэст
источник
1

В моем случае, который является действительно исключительным, местоположение файла XML, который содержит информацию о репо, изменяется.

  • У меня есть подключение к интернету ( ping 8.8.8.8работает)
  • Когда я запускаю yum upgrade, после большой 404ошибки, я могу получить имена пакетов, которые я должен загрузить, но я не могу загрузить их.

И, когда я просматриваю первый URL 404 репо, который является:

http://mirror.airenetworks.es/CentOS/7.4.1708/os/x86_64/repodata/repomd.xml

и я вижу это отсутствует. Переходя к его родительской папке, http://mirror.airenetworks.es/CentOS/7.4.1708/readmeя получаю это:

Этот каталог (и версия CentOS) устарел. Для обычных пользователей вы должны использовать / 7 /, а не /7.4.1708/ на своем пути. Пожалуйста, смотрите этот FAQ по схеме выпуска CentOS:

https://wiki.centos.org/FAQ/General

Если вы знаете, что делаете, и абсолютно хотите остаться на уровне 7.4.1708, перейдите на http://vault.centos.org/ для получения пакетов.

Помните, что 7.4.1708 больше не получает ни обновлений, ни исправлений безопасности.

Итак, я должен вернуться /etc/yum.repo.dк редактированию файлов.

Я имею:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Я подозреваю, что $releaseverон больше не используется, поэтому я могу проверить его, изменив его на 7: (не забудьте убежать &с \)

curl http://mirrorlist.centos.org/?release=7\&arch=x86_64\&repo=os\&infra=arch

мы можем получить список файлов:

ftp://ftp.cesca.cat/centos/7.5.1804/os/x86_64/
http://ftp.rediris.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cica.es/CentOS/7.5.1804/os/x86_64/
http://centos.mirror.minorisa.net/7.5.1804/os/x86_64/
http://repo.nixval.com/CentOS/7.5.1804/os/x86_64/
http://centos.uvigo.es/7.5.1804/os/x86_64/
http://ftp.uma.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cixug.es/CentOS/7.5.1804/os/x86_64/
http://mirror.airenetworks.es/CentOS/7.5.1804/os/x86_64/
http://mirror.gadix.com/centos/7.5.1804/os/x86_64/

Итак, мы можем установить переменную следующим образом:

  1. Открыть /etc/yum.repo.d/CentOS-Base.repo
  2. В [base]разделе, определяют: releasever=7.
  3. Повторно yum upgradeили yum install xxx.
WesternGun
источник