Як я можу виправити помилки "не вдається знайти дійсну базу даних для репо" на 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
Ви підключені до мережі? Ви можете пінг-дзеркало.centos.org?
Nikhil Mulley

3
Що станеться, якщо ти біжиш curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os'?
rvs

Відповіді:


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

Якщо pinging добре відомого хоста за своїм ім'ям (наприклад ping www.google.com) повертається, ping: unknown hostале pinging 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/
Стівен Крискалла

Можливо, я щось пропустив, але де ви бачите, що у нього встановлено репо? Він чітко зазначив, що "я закінчив установку CentOS6", я сумніваюся, що репо налаштована на Remi. Я можу помилятися ...
Spredzy

Проблема полягає в неправильному формуванні файлу під /etc/yum.repos.d- remi.repoпросто трапилося ім'я файлу в цьому випадку
Кертіс Маттаун

1

Ось ще одна можливість, на яку я натрапив, викликаючи цю проблему:

Я використовував модуль ляльок, щоб створити 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 repos !!! використовуйте це на свій страх і ризик

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

це видалить репо з системи
Saurabh Chandra Patel

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