Как я могу исправить ошибки «не могу найти правильный baseurl для репо» в CentOS?


130

Я закончил установку CentOS 6, но когда я попытался запустить, yum updateя получил:

[root@centos6test ~]# yum update
Loaded plugins: fastestmirror, refresh-packagekit
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=i386&repo=os
error was 14: PYCURL ERROR 6 - "" Error: Cannot find a valid baseurl for repo: base

Почему это происходит? Как я могу это исправить?


3
Вы подключены к сети? Можете ли вы пинговать mirrorlist.centos.org?
Nikhil Mulley

3
Что произойдет, если вы бежите curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os'?
РВС

Ответы:


165

Сначала вам нужно подключиться, AFAIK CentOS 6 минимально настроить сетевое устройство на ONBOOT=No, просто сделайте dhclientс правами администратора для вашего сетевого интерфейса, и вы должны быть в рабочем состоянии:

$ sudo dhclient


1
Я использовал для настройки клиента dhcp на своем удаленном сервере, используя ssh, согласно этому ответу, и теперь я потерял соединение, потому что IP-адрес сервера теперь динамически изменяется, и я не думал об этом случае до применения изменений. Этот ответ ошибочен без достаточного описания и приводит к недоразумениям.
Мойтаба Резаян

4
Для версии CentOS-7 (1611) ONBOOT=Noфайл расположен в файле, подобном /etc/sysconfig/network-scripts/ifcfg-enp0s3. Я отредактировал этот файл ONBOOT=yesи перезагрузка может это исправить.
Джонни Вонг

2
Переход на ONBOOT=yesв /etc/sysconfig/network-scripts/ifcfg-enp0s3работах для меня, спасибо @JohnnyWong
Evi Song

24

Я боролся с той же проблемой на Centos6.4 x86_64. Я получил следующую ошибку:

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Error: Cannot find a valid baseurl for repo: base

Итак, я исправил это с помощью следующих шагов:

редактировать сетевой интерфейс. Для моего случая я использовал eth0в CentOS 6.X В CentOS 7 вы можете использовать интерфейс «ensxxx».

vim /etc/sysconfig/network-scripts/ifcfg-eth0

обновить NM_CONTROLLED на нет

ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DNS1=8.8.8.8
DNS2=4.2.2.2

перезагрузите сетевой интерфейс

ifdown eth0
ifup eth0

1
ifcfg-eth0не существует в CentOs 7
shailenTJ

@shailenTJ Просто дотронься до ~ отлично работает.
Эдди Б

1
@shailenTJ Они изменили систему имен, это будет enpXsX, в моей системе это enp0s3, но, вероятно, она немного отличается от вашей.
MarcusJ

Если вы делаете «минимальную установку», это «ifcfg-enpls0f0». Но если вы устанавливаете с графическим интерфейсом, он переопределяет этот файл чем-то другим. Затем вы используете инструмент настройки сети в верхнем правом углу главного экрана рабочего стола.
Крис Датроу

4.2.2.2вероятно, это не запись DNS, которую вы хотите!
Дельф

14

У меня была та же проблема, и она была решена после того, как я отредактировал /etc/yum.confфайл Если вы работаете на прокси-сервере, и IP-адрес, который предоставляется серверу, обойден, но все же при открытии в браузере (IE - нам нужно поставить галочку на прокси-сервере, но не нужно указывать имя пользователя и пароль).

Добавьте эту следующую строку в основной раздел файла /etc/yum.conf.

proxy=http://xxx.xxx.xx.xx:8080

т.е. замена адреса прокси фактическим прокси. Также измените номер порта, если он не 8080.

Если прокси требует аутентификации, добавьте это также в файл

proxy_username=username
proxy_password=password

9

Я отредактировал файл /etc/yum.repos.d/CentOS-Base.repoи оставил комментарий baseurl:

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

1
Спасибо! Это сработало для меня. Кто-нибудь знает, зачем это нужно, или зачем это было закомментировано, если нужно?
Богатый

9

Если пинг известного хоста по его имени (например ping www.google.com) возвращается, ping: unknown hostно пинг по ip (например ping 8.8.8.8) работает нормально, тогда у вас проблема с разрешением DNS - попробуйте добавить эти записи в /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

2

У меня вчера была та же проблема, и я часами пытался ее решить. Решение оказалось простым.

Удалите содержимое /etc/yum.repos.d/remi.repoи затем выполните

# yum update

Это сделано! Содержимое файла начнет загрузку снова и будет настроено.


Где находится этот remi.repoфайл?

/etc/yum.repos.d/
Стивен Крыскалла

Возможно, я что-то пропустил, но где вы видите, что у него установлено репо Remi? Он четко упомянул: «Я закончил установку CentOS6», я сомневаюсь, что репозиторий Remi настроен. Я могу ошибаться ...
Spredzy

Проблема связана с неправильным форматом файла /etc/yum.repos.d- remi.repoв данном случае это просто имя файла
Кертис Маттун

1

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

Я использовал модуль Puppet для создания репозитория EPEL для CentOS, модуля stahnma / epel.

Внутри модуля он создал URL репо с переменной, ::os_maj_versionкоторой не было в моем списке фактов. Я должен был заменить это на :: operatingsystemmajrelease.

Таким образом, URL-адрес /etc/yum.repos.d/epel.repoбыл искажен.


0

Это случилось со мной в среде Centos 7, и я смог решить ее с помощью следующей команды:

yum clean all

Я не запускал команду yum в течение нескольких месяцев, похоже, что кэшированные метаданные устарели.


0

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

Предупреждение это удалит всех вас репозитории Centos !!! Используйте это на свой страх и риск

mkdir ~/backup
cp -r /etc/yum.repos.d/Cen* ~/backup
rm /etc/yum.repos.d/Cen*

это удалит репо из системы
Saurabh Chandra Patel

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