Вопрос или проблема
Я получаю следующую ошибку:
Loaded plugins: langpacks, ulninfo
http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml:
[Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error"
Trying other mirror.
failure: repodata/repomd.xml from ol7_latest: [Errno 256] No more mirrors to try.
http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml:
[Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error"
Не совсем понимаю, что это значит. Может кто-нибудь дать подсказки?
Эта ошибка означает то, что говорится в самом сообщении — Could not resolve host: yum.oracle.com
. Ваша машина не может ‘увидеть’ yum.oracle.com, потому что она не может найти DNS-запись для этого хоста. Попробуйте host -v yum.oracle.com
, чтобы получить более детальную информацию об ошибке.
Этот вопрос уже довольно стар, но для тех, кто ищет решение, проблема в том, что машина не может преобразовать Полные Имя Домена (такие как yum.oracle.com) в IP-адреса.
Для решения этой проблемы необходимо добавить хотя бы один DNS-сервер в файл /etc/resolve.conf
. Можно использовать либо 208.67.222.222, 208.67.220.220 (DNS-серверы OpenDNS), 8.8.8.8, 8.8.4.4 (DNS-серверы Google), либо указанные вашим интернет-провайдером DNS-серверы.
Я столкнулся с этой ошибкой при установке vagrant box с Oracle Database из https://github.com/oracle/vagrant-projects. Чтобы обойти эту проблему, я сделал следующее.
Войти в vagrant box:
vagrant ssh
Перейти под root:
sudo su -
Добавить nameserver 8.8.8.8
в /etc/resolve.conf
.
echo nameserver 8.8.8.8 >> /etc/resolv.conf
Из директории vagrant box выполнить provisioning vm:
vagrant provision
перезапустите docker service, это решило проблему для меня
service restart docker
Ответ или решение
Когда вы сталкиваетесь с ошибкой, связанной с невозможностью выполнения команды yum install
на машине с Oracle Linux 7, это может быть довольно неприятной ситуацией, особенно в случае, если вам срочно нужно установить или обновить пакеты. Ошибка, которую вы описываете, выглядит следующим образом:
Loaded plugins: langpacks, ulninfo
http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml:
[Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error"
Trying other mirror.
failure: repodata/repomd.xml from ol7_latest: [Errno 256] No more mirrors to try.
http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml:
[Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error"
Теория
Эта ошибка очевидно указывает на то, что ваша машина не может разрешить доменное имя yum.oracle.com
в IP-адрес. Обычно это указывает на проблемы с настройками DNS (Domain Name System) на вашей машине.
DNS работает как своего рода «адресная книга» интернета, переводя читаемые человеком доменные имена в числовые IP-адреса, которые могут быть использованы для установления соединения. Если ваш компьютер не может разрешить доменное имя, он не сможет связаться с удаленным сервером для загрузки необходимых файлов.
Ошибка [Errno 14] curl#6 - "Could not resolve host"
означает, что ни один из указанных DNS-серверов не может предоставить IP-адрес для доменного имени yum.oracle.com
. Это может быть связано с несколькими причинами, включая неисправные DNS-серверы, отсутствие их конфигурации или сетевые проблемы.
Пример
Рассмотрим ситуацию: вы работаете со средой Vagrant и пытаетесь установить пакеты через yum
внутри виртуальной машины (VM). Вы видите аналогичную ошибку и хотите ее устранить.
-
Войдите в виртуальную машину с помощью команды:
vagrant ssh
-
Переключитесь на пользователя root:
sudo su -
-
Отредактируйте файл конфигурации DNS
/etc/resolv.conf
, добавив в него надежные DNS-серверы. Один из способов сделать это — использовать DNS-серверы Google:echo 'nameserver 8.8.8.8' >> /etc/resolv.conf echo 'nameserver 8.8.4.4' >> /etc/resolv.conf
В этом примере мы добавили DNS-серверы Google (8.8.8.8 и 8.8.4.4), которые часто используются для разрешения подобных проблем, благодаря своему высокому уровню доступности и надежности.
Применение
Теперь, когда у вас есть представление о том, как исправить проблему, вы можете применить этот процесс в своей текущей ситуации. Также существуют и другие действия, которые помогут устранить ошибку:
-
Проверка сетевых подключений: Убедитесь, что интернет-соединение на вашей машине стабильно и не прерывается. Это можно сделать, попытавшись выполнить пинг до других внешних DNS-серверов, таких как:
ping 1.1.1.1
-
Обновление конфигурации сети: Если прописывание новых DNS-серверов не помогает, попробуйте перезагрузить сетевые службы:
systemctl restart network
Это позволит применить все изменения конфигурации сети и установить свежие DNS-соединения.
-
Репозиторий YUM: Проверьте, что репозитории YUM, перечисленные в ваших конфигурационных файлах (например, в
/etc/yum.repos.d/
), актуальны и правильно настроены. Иногда зеркальные репозитории могут быть временно недоступны или изменены. -
Кэширование DNS: Если проблема с DNS продолжается, возможно, вам следует очистить кэш DNS. Это можно сделать командой:
systemctl restart nscd
-
Прокси-серверы: Если ваша машина использует прокси для выхода в интернет, убедитесь, что прокси правильно сконфигурирован и доступ к внешним ресурсам не блокируется политиками сети или межсетевыми экранами.
-
Логирование: Изучите журналы ошибок для сети и служб DNS, которые можно найти в
/var/log/
, чтобы выявить больше деталей о причинах возникновения ошибок.
Следуя этим рекомендациям, вы значительно увеличите свои шансы на успешное обновление или установку пакетов на машине с Oracle Linux 7. Правильная диагностика и настройка DNS помогут поддерживать надежное соединение с необходимыми сетевыми ресурсами.