Почему я получаю имя хоста: имя или служебная неизвестная ошибка?

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

 hostname: Name or service not known dpkg: error processing ssmtp (--configure): subprocess installed post-installation script returned error exit status 1 Setting 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 place Errors were encountered while processing: ssmtp E: Sub-process /usr/bin/dpkg returned an error code (1) 

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

Решение:

(У этих типов проблем нет хороших решений, но только в некоторых случаях)

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

 sudo apt-get -f install 

Если он не работает, обработайте его с помощью haking-ish .

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

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

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

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

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

запустить hostname --fqdn

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

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

Как раз так все знают, редактирование / etc / hosts сделало трюк, имя etc / hostname было правильным с server.exmaple.com

однако хозяева не были правильными

 127.0.0.1 localhost 127.0.0.1 server 

измените это на следующее:

 127.0.0.1 localhost.localdomain localhost 192.168.xxx.xxx server.example.com server 

Я запустил имя хоста -f и имя хоста –fqdn и получил следующее.

 server.example.com 

Просто подумал, что все хотели бы знать.

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

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

 nameserver 80.80.80.80 

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

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

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

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

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

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


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


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

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

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

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

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