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

19

Я получаю эту ошибку, когда когда-либо устанавливаю какие-либо пакеты через 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)

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

задан batman 07.09.2012 в 12:53
источник

6 ответов

9

Решение:

(Эти типы проблем не имеют хороших решений, но только некоторые haking-ish)

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

sudo apt-get -f install

Если это не сработает, перейдите к решению haking-ish .

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

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

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

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

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

    
ответ дан Anwar 07.09.2012 в 13:38
источник
17

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

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

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

    
ответ дан croaker___ 17.11.2012 в 15:18
12

Просто, так что все знают, редактирование / 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

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

    
ответ дан nexusguy59 20.11.2012 в 04:04
2

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

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

nameserver 80.80.80.80 

на ваш /etc/resolv.conf

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

    
ответ дан user61664 07.09.2012 в 13:29
1

Я получил сообщение в своей домашней сети в системе 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 верны, проблема не должна выполняться.

    
ответ дан John S Gruber 29.09.2013 в 20:42
1

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

    
ответ дан Michael Merideth 07.02.2017 в 21:13