Назад | Перейти на главную страницу

CentOS 5.7 - не удается получить метаданные репозитория.

Сегодня у меня возникла странная ошибка, которую я не могу исправить:

root@server# yum -y update
Loaded plugins: allowdowngrade
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </html>/
removing mirrorlist with no valid mirrors: /var/cache/yum/addons/mirrorlist.txt
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its 
path and try again
root@server#

с отключенными репо "аддонами":

root@server# yum update --disablerepo=addons
Loaded plugins: allowdowngrade
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </html>/
removing mirrorlist with no valid mirrors: /var/cache/yum/base/mirrorlist.txt
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
root@server#

с "yum clean all":

root@server# yum clean all
Loaded plugins: allowdowngrade
Cleaning up Everything
root@server# yum -y update
Loaded plugins: allowdowngrade
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </html>/
removing mirrorlist with no valid mirrors: /var/cache/yum/addons/mirrorlist.txt
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again
root@server#

редактировать 22-09-2011: rpm --verify centos-release yum

root@server# rpm --verify centos-release yum
..5....T  c /etc/issue
..5....T  c /etc/issue.net
S.5....T  c /etc/yum.repos.d/CentOS-Base.repo
missing   c /etc/yum.repos.d/CentOS-Debuginfo.repo
S.5....T  c /etc/yum.repos.d/CentOS-Vault.repo
package yum is not installed
root@server#

Как я могу исправить эту проблему?

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

lynx http://mirrorlist.centos.org/?release=5&arch=i386&repo=addons
lynx http://mirrorlist.centos.org/?release=5&arch=i386&repo=os

Если вы получаете пустую страницу, скорее всего, зеркала не работают или список пуст. Вы можете отключить зеркала и использовать прямое зеркало centos в baseurl. Для этого закомментируйте зеркальный список в /etc/yum.repos.d/CentOS-Base.repo и не забудьте раскомментировать baseurl если он уже прокомментирован.

Попробуйте yum clean all и повторите ввод yum -y update

Ошибка «Не удается получить метаданные репозитория» выглядит как отвлекающий маневр. Настоящая ошибка выглядит так:

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </html>/

Ваши файлы репо Yum повреждены?

Файлы на /etc/yum.conf и /etc/yum.repos.d/*.repo предоставляются yum и centos-release пакеты (проверьте это с помощью rpm -q --whatprovides /etc/yum.conf /etc/yum.repos.d/*).

Попробуйте проверить файлы в /etc/yum.repos.d/ против файлов RPM. Были ли какие-то изменения?

В следующем примере файл CentOS-Base.repo был изменен локально:

% rpm --verify centos-release yum
S.5....T  c /etc/yum.repos.d/CentOS-Base.repo

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