Как я могу исправить ошибки «не могу найти правильный 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

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

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

Jorge
источник
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
Mastergalen
источник
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

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

victorkurauchi
источник
Где находится этот 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был искажен.

Mojo
источник
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*
grepit
источник
это удалит репо из системы
Saurabh Chandra Patel
Вероятно, вам следует рассмотреть возможность включения процедуры воссоздания удаленных файлов репозитория, как только вы удалили их все.
Кусалананда