Почему я получаю ошибку hostname: Name или service not known?

Я получаю эту ошибку, когда когда-либо устанавливаю какие-либо пакеты через apt-get:

hostname: Name or service not knowndpkg: error processing ssmtp (--configure): subprocess installed post-installation script returned error exit status 1Setting up libt1-5 (5.1.2-3.4ubuntu1) ...Setting up php5-gd (5.3.10-1ubuntu3.2) ...Processing triggers for libc-bin ...ldconfig deferred processing now taking placeErrors were encountered while processing: ssmtpE: Sub-process /usr/bin/dpkg returned an error code (1)

Почему это происходит?

бежать hostname --fqdn

Если вы получите сообщение об ошибке, отредактируйте /etc/hostname и /etc/hosts с правильным именем хоста.

Затем aptitude install ssmtp снова, чтобы заставить его установить.

Редактирование /etc/hosts сделал свое дело. Файл /etc/hostname был правильным с содержанием только server.exmaple.com

Но хозяева были не правы

127.0.0.1 localhost127.0.0.1 server

Я изменил его на этот:

127.0.0.1 localhost.localdomain  localhost192.168.xxx.xxx  server.example.com   server

потом я побежал hostname -f (сокращение от hostname --fqdn) и получил следующее.

server.example.com

Решение:

(У таких проблем нет хороших решений. Но только какой-то хакинг-иш)

Сначала вы должны попробовать эту команду в терминале:

sudo apt-get -f install

Если это не сработает, обработайте с помощью хакинг-иш решение.

Попробуйте временно переместить сценарий настройки ssmtp.

  1. Откройте терминал и выполните эту команду, чтобы переместить их в текущий каталог

      sudo mv /var/lib/dpkg/info/ssmtp* .
  2. Затем попробуйте использовать apt-get

Причина проблемы:

Предыдущая установка или удаление могут быть завершены неудачно, в результате чего для ssmtp пакет. Поскольку dpkg не будет прогрессировать без предварительного выполнения шагов, последующее использование apt-get а теперь застрянь на этом шаге.

Скорее всего, ваше интернет-соединение работает неправильно.В частности, я думаю, что ваш DNS не разрешен должным образом.

попробуйте добавить строку

nameserver 80.80.80.80 

к вашему /etc/resolv.conf

Это временно добавит DNS-сервер freenom (до следующей загрузки).

Сегодня утром я столкнулся с этой ошибкой, и оказалось, что имя хоста было написано с ошибкой в /etc/hostname. Исправив это, чтобы оно соответствовало написанию имени хоста в /etc/hosts прояснил проблему. То hostname -b -F /etc/hostname команда, которая выполняется во время загрузки, по-видимому, не может быть завершена, если /etc/hostname и /etc/hosts согласен.

Я получил сообщение в своей домашней сети в системе Ubuntu с динамически назначаемым IP-адресом от маршрутизатора, предоставляющего комбинированный DHCP и DNS-сервер для моей сети.

Сообщение: hostname: Name or service not known может быть вызвано выходом такого устройства из строя, хотя бы на мгновение.

Например, это может произойти, если мой домашний маршрутизатор перезагружается при отключении питания.

Проблема здесь заключается в том, что служба DHCP, на которую полагается ваша сеть, забывает все назначенные ею IP-адреса и связанные с ними доменные имена. Когда ваш компьютер проверяет наличие собственного имени на соответствующем dns-сервере, на сервере его больше нет. Некоторые DHCP-серверы могут избежать проблем, записав сделанные ими назначения на свой диск или флэш-память, чтобы при перезагрузке ничего не было потеряно.


Сервер обычно может принимать ваши имя компьютера из вашего системного DHCP-запроса сделайте это имя компьютера.local и сохраняет это в своих записях, одновременно делая его доступным на связанном с ним DNS-сервере. Обычно hostname -fqdn запрашивает полное доменное имя по вашей сети с вашего DNS-сервера, и если у него есть запись, он вернет это имя. То .local суффикс делает его похожим на действительное полное доменное имя (хотя на самом деле это не действительное глобальное доменное имя). Вот почему вам, возможно, не придется указывать доменное имя вручную в файлах /etc/hosts или /etc/hostname.


Перезапуск DHCP-сервера может вызвать дополнительные проблемы, поскольку IP-адреса могут быть назначены нескольким компьютерам одновременно, в результате чего некоторые из них не смогут обмениваться данными. Адрес назначается один раз перед перезапуском сервера и еще раз после него.

Если ваш DHCP-сервер забывает свои назначения, самое безопасное, что можно сделать, - это повторно подключить каждый компьютер, который он обслуживает, при перезагрузке. Когда я потерял свой, я просто отключился и снова подключился к своей точке доступа Wi-Fi. В проводной сети вы можете использовать ifdown и ifup или просто отсоедините и снова подключите сетевой кабель.При повторном подключении моя система автоматически использует dhclient для получения нового адреса - мой компьютер и сервер теперь согласны с тем, кто я такой, и сообщение больше не появляется.

Если вы подождете достаточно долго, время ожидания аренды DHCP истечет, и ваша система запросит и получит новую аренду с сервера, устраняя проблему. Вероятно, это произойдет через несколько часов или дней (для моего сервера это один день).

Если вы определили статическое IP-имя и адрес и если записи обратного поиска DNS верны, проблемы возникнуть не должно.

У меня была такая же проблема, проблема была связана с тем, что DNS не помогал ни одной записи для имени хоста - поэтому полное доменное имя было недоступно.