¿Por qué recibo el nombre de host: Nombre o error de servicio no conocido?

23

Recibo este error cuando instalo algún paquete a través de 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)

¿Por qué está pasando esto?

ordenanza
fuente
Tuve el mismo problema, el problema estaba relacionado con el hecho de que el DNS no ayudó a ninguna entrada para el nombre de host, por lo tanto, el FQDN no estaba disponible.

Respuestas:

10

Solución:

(Este tipo de problemas no tienen buenas soluciones. Pero solo algunos haking-ish)

Primero debe probar este comando en una terminal:

sudo apt-get -f install

Si no funciona, procese con la solución haking-ish .

Intente mover temporalmente el script de configuración de ssmtp.

  1. Abra una terminal y ejecute este comando para moverlos al directorio actual

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. Entonces intente usar apt-get

La causa del problema:

Es posible que la instalación o eliminación anterior no se haya completado con éxito, dejando algunos pasos de configuración para el ssmtppaquete. Dado que dpkg no progresará sin completar primero los pasos, el uso posterior de apt-getahora se atascará en ese paso.

Anwar
fuente
18

correr hostname --fqdn

Si obtiene un error, edite / etc / hostname y / etc / hosts con un nombre de host adecuado.

Luego aptitude install ssmtpnuevamente para que se instale.

croaker___
fuente
13

Para que todos lo sepan, la edición de / etc / hosts hizo el truco, etc / hostname fue correcto con server.exmaple.com

Sin embargo, los anfitriones no eran correctos

127.0.0.1 localhost
127.0.0.1 server

cámbielo a esto:

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

Ejecuté hostname -f y hostname --fqdn y obtuve lo siguiente.

server.example.com

Solo pensé que a todos les gustaría saber.

nexusguy59
fuente
5

Lo más probable es que su conexión a Internet no funcione correctamente. Específicamente, creo que su DNS no se está resolviendo correctamente.

intenta agregar la línea

nameserver 80.80.80.80 

para usted /etc/resolv.conf

Esto agregará el servidor DNS freenom temporalmente (hasta el próximo arranque)

usuario61664
fuente
Ese es un archivo generado. ¿Cómo lo manejo?
chovy
@chovy si todavía te estás preguntando sobre esto, es seguro seguir adelante y sudoedit /etc/resolv.confreemplazar cualquier dirección que esté allí 8.8.8.8para resolver problemas temporales de DNS. El archivo se regenerará en el próximo inicio, por lo que no puede hacer nada demasiado desastroso aquí a menos que reiniciar no sea una opción
Zanna
2

Recibí el mensaje en mi red doméstica en un sistema Ubuntu con una dirección IP asignada dinámicamente desde un enrutador que proporciona un servidor combinado de DHCP y DNS para mi red.

El mensaje: hostname: Name or service not knownpuede ser causado por la caída de dicho dispositivo, aunque solo sea por un instante.

Por ejemplo, esto puede suceder si el enrutador de mi casa se reinicia cuando se corta la energía.

El problema aquí es que el servicio DHCP en el que se basa su red olvida todas las direcciones IP que ha asignado y los nombres de dominio asociados. Cuando su computadora verifica que el servidor DNS asociado tenga su propio nombre, el servidor ya no lo tiene. Algunos servidores DHCP pueden evitar problemas escribiendo las asignaciones que han realizado en su disco o memoria flash para que no se pierda nada cuando se reinicie.


El servidor normalmente puede tomar su nombre de computadora de la solicitud de DHCP de su sistema, hacer que nombre de computadora .local y almacenarlo en sus registros, de manera que esté disponible en su servidor DNS asociado simultáneamente. Por lo general, hostname -fqdnsolicita el nombre de dominio completo a través de su red desde su servidor DNS y, si tiene el registro, devolverá ese nombre. El .localsufijo hace que parezca un nombre de dominio completo y válido (aunque en realidad no es un nombre de dominio global válido). Es por eso que es posible que no tenga que especificar un nombre de dominio manualmente en los archivos / etc / hosts o / etc / hostname.


El reinicio del servidor DHCP puede causar más problemas, ya que las direcciones IP pueden asignarse a varias computadoras simultáneamente, lo que hace que algunas no puedan comunicarse. La dirección se asigna una vez antes de que el servidor se reinicie, y nuevamente después de que lo haga.

Si su servidor DHCP olvida sus tareas, lo más seguro es volver a conectar cada computadora a la que sirve cuando se reinicia. Cuando perdí el mío, simplemente me desconecté y me reconecté a mi punto de acceso wifi. En una red cableada puede utilizar ifdowny ifupo simplemente desconectar y volver a conectar el cable de red. Cuando vuelvo a conectar mi sistema automáticamente usa dhclient para obtener una nueva dirección: mi computadora y el servidor ahora acuerdan quién soy y el mensaje ya no aparece.

Si espera lo suficiente, la concesión de DHCP expirará y su sistema solicitará y obtendrá una nueva concesión del servidor, lo que solucionará el problema. Esto probablemente será horas o días después (para mi servidor es un día).

Si ha definido un nombre y una dirección IP estáticos y si los registros de búsqueda inversa de DNS son correctos, el problema no debería suceder.

John S Gruber
fuente
1

Me encontré con este error esta mañana, y resultó que el nombre de host estaba mal escrito /etc/hostname. Corregir esto para que esté de acuerdo con la ortografía del nombre de host en /etc/hostsaclarado el problema. El hostname -b -F /etc/hostnamecomando que se ejecuta en el arranque, aparentemente, no se pueden completar a menos /etc/hostnamey /etc/hostsestar de acuerdo.

Michael Merideth
fuente
Esta respuesta lo resolvió para mí: primero me aseguré /etc/hostsy /etc/hostnameacepté. Luego ejecuté el "comando que se ejecuta en el momento del arranque", solo sin la -bbandera (ya que simplemente permite que el archivo especificado no exista, pero está aquí). Y bang: hostname --fqdndevuelve el FQDN adecuado nuevamente.
isync