Чому я отримую ім’я хоста: Ім'я або послуга невідома помилка?


23

Я отримую цю помилку, коли коли-небудь встановлюю будь-які пакунки через 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)

Чому це відбувається?


У мене була така ж проблема, проблема була пов'язана з тим, що DNS не допоміг жодному запису для імені хоста - тому FQDN був недоступний.

Відповіді:


10

Рішення:

(Ці типи проблем не мають хорошого рішення. Але лише деякі хокінг-іш)

Спочатку слід спробувати цю команду в терміналі:

sudo apt-get -f install

Якщо це не спрацює, обробіть рішення, яке хочете .

Спробуйте тимчасово перемістити сценарій конфігурації ssmtp.

  1. Відкрийте термінал і виконайте цю команду, щоб перемістити їх у поточний dir

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. Потім спробуйте використовувати apt-get

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

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


18

бігати hostname --fqdn

Якщо ви отримали помилку, відредагуйте / etc / ім'я хоста та / etc / hosts з відповідним іменем хоста.

Потім aptitude install ssmtpзнову, щоб змусити його встановити.


13

Просто так всі знають, що редагування / etc / hosts зробило трюк, і т. Д. / Ім'я хоста було правильним із сервером.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

Просто думав, що всі хочуть знати.


5

Швидше за все, ваше інтернет-з'єднання не працює належним чином. Зокрема, я думаю, що ваш DNS не працює належним чином.

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

nameserver 80.80.80.80 

твоєму /etc/resolv.conf

Це додасть freenom DNS-сервер тимчасово (до наступного завантаження)


Це генерований файл. Як мені це управляти?
чови

@chovy, якщо ви все ще цікавитеся цим, можна безпечно продовжувати та sudoedit /etc/resolv.confзамінювати будь-яку адресу, 8.8.8.8щоб вирішити тимчасові проблеми з DNS. Файл буде відновлено під час наступного завантаження, тому ви не можете зробити тут нічого занадто згубного, якщо тільки перезавантаження не є варіантом
Zanna

2

Я отримав повідомлення про свою домашню мережу в системі 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 виправлені, проблеми не повинно виникнути.


1

Я зіткнувся з цією помилкою сьогодні вранці, і виявилося, що ім'я хоста було написано неправильно /etc/hostname. Виправивши це, він погодився з написанням імені хоста, щоб /etc/hostsусунути проблему. hostname -b -F /etc/hostnameКоманда , яка працює під час завантаження , по- видимому не може завершити , якщо /etc/hostnameі /etc/hostsпогодитися.


Ця відповідь вирішила це для мене: Спочатку я переконався /etc/hostsі /etc/hostnameпогодився. Потім я запустив "команду, яка працює під час завантаження", лише без -bпрапора (так як вона просто дозволяє вказаному файлу бути неіснуючим, але він є тут). І баг: hostname --fqdnзнову повертає належний FQDN.
isync
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.