Когда я запустил sudo, терминал застрял в течение нескольких секунд, а затем выдает сообщение об ошибке. Мой терминал выглядит так:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
Что я могу сделать для его решения?
Отредактируйте /etc/hosts и добавьте новое имя хоста в строку 127.0.0.1 (или создайте новую строку, если хотите).
Mine выглядит так:
127.0.0.1 localhost localhost.localdomain penguin
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
[d3 ] Замените penguin в приведенном выше примере вашим новым именем хоста, как указано в файле /etc/hostname. Добавьте свое имя хоста в /etc/hosts следующим образом:
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts
Обратите внимание, что это ответ на этот вопрос, который был объединен с этим.
Ваше имя хоста (dave00-G31M-ES2L) не представлено в /etc/hosts. Добавьте L в эту строку:
127.0.1.1 dave00-G31M-ES2
Таким образом, это будет:
127.0.1.1 dave00-G31M-ES2L
Чтобы выполнить это, откройте консоль (нажмите Ctrl + Alt + T) и введите:
sudo gedit /etc/hosts
Добавьте письмо L, как указано, сохраните и выйдите.
У меня была эта проблема, когда я использовал ubuntu на VPS. Я решил, что он редактирует файл / etc / hosts.
запустите эту команду:
sudo nano /etc/hosts
, а затем добавьте:
127.0.0.1 localhost.localdomain localhost
127.0.1.1 ubuntu
Надеюсь, что это решит ваша проблема:)
PS: Не забудьте перезагрузить компьютер!
У меня была такая же проблема, хотя имя хоста в файле / etc / hostname и / etc / hosts совпало.
Мое имя хоста было «staging_1». Оказывается, у вас не может быть подчеркивания в вашем имени хоста, поэтому я получаю эту ошибку. Изменение подчеркивания на дефис исправило мою проблему.
В AWS перейдите на свой vpc и включите «DNS Hostnames».
Я столкнулся с этим же сообщением об ошибке. Я думаю, что эта дискуссионная тема на форумах разработчиков AWS - лучшее решение:
«Перейдите в консоль управления VPC, выберите VPC, нажмите« Действия », выберите« Редактировать имена хостов DNS »и выберите« Да ».«
https://forums.aws.amazon.com/thread.jspa?messageID=699718
Некоторые эмуляторы терминала не будут обновлять приглашение с правильным именем хоста, пока вы не закроете и не перезапустите эмулятор (lxterminal, я говорю с вами).
Я потратил 30 минут на борьбу с этой ошибкой после редактирования моего имени хоста и файлов хостов и запуска sudo service hostname restart до тех пор, пока не запустил sudo hostname и не увидел, что имя хоста было новым значением, даже если в подсказке было показано старое значение.
В моем случае это была проблема, я изменил hostname на man, потому что хотел узнать, есть ли какие-то параметры, которые вы можете использовать на hostname. Вместо этого он изменил мои hostname на man, и я всегда получал то же сообщение, что и вы
sudo: unable to resolve host (none)
после изменения имени хоста на «localhost», все снова работало нормально
hostname localhost
Симптом, данный в вопросе, может сильно коррелировать с этой более конкретной проблемой:
$ hostname --fqdn
hostname: Temporary failure in name resolution
Существуют различные способы решения этой проблемы, одним из которых является добавление вашего имени хоста в качестве localhost в [ f2] (как показано в нескольких других ответах). Это может быть правильным решением в целом, но это не единственное возможное решение.
«Полноценное доменное имя» может быть предоставлено внешним DNS-сервером или аналогичным (если таковое доступно в вашей сети). В этом случае sudo не будет жаловаться, несмотря на отсутствующую запись в /etc/hosts.
Примечание: sudo пытается разыменовать имя хоста, хотя это не " t обязательно из-за дополнительных возможностей в файле sudoers. См. Команду sudo, пытающуюся выполнить поиск имени хоста.
Пока задержка не слишком длинная, это сообщение об ошибке обычно является безвредным.
Извините, я не могу вам помочь, но, поскольку он говорит «не удается разрешить хост», попробуйте запустить:
hostname
И посмотрите, является ли вывод именем хоста машины. Если нет, проблема в конфигурации хоста, а не в sudo.
OP wrote:
Все было в / etc / hostname. На двух наших больничных серверах это выглядело так:ubuntu@(none):~$ cat /etc/hostname
linux-web-n ip-10-128-##-##
На сервере без этой проблемы у нас было: ubuntu@ip-10-128-##-###:~$ cat /etc/hostname
ip-10-128-##-###
Убрали часть linux-web-n, перезагрузили, и все было в порядке. вы можете получить сообщение об ошибке, если ваши хосты или файл хоста содержат недопустимые символы. Разрешены только эти символы: a-z, A-Z, 0-9
У меня была такая же проблема! Я изменил имя своего VPS через панель управления онлайн-администратором, которая не изменила имя машины в файле hosts. Все, что я сделал, было запущено:
sudo nano /etc/hosts
Затем я отредактировал это из этого:
[ f2]К этому:
127.0.1.1 Debian Debian
127.0.0.1 localhost
и исправил мою ошибку! Надеюсь, это помогло!
У меня была та же проблема. Я решил ее путем редактирования / и т.д. / хосты и / и т.д. / имя хоста файлы ... на / и т.д. / файл хостов, просто изменить верхнюю часть, как показано ниже.
#vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 localhost myhostname
#vi /etc/hostname
myhostname
, если вы не можете sudo вы МОЖЕТ войти в систему с правами root через su. IE: su root (в x-term). затем введите пароль root при появлении запроса, затем вы можете редактировать файлы с помощью nano. Пароль root в «buntu» совпадает с паролем, который вы используете для sudo.
Если вы используете Vagrant, войдите в гостевую систему и запустите apt-get --no-install-recommends install virtualbox-guest-utils