Estoy usando Ubuntu 10.04 LTS, y al escribir el comando hostname --fqdn
, me sale el mensaje: hostname: Name or service not known
.
Debido a esto, no puedo instalar con global
éxito y obtengo el siguiente error cuando lo intento:
Setting up global (5.7.1-1) ...
hostname: Name or service not known
dpkg: error processing global (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
global
E: Sub-process /usr/bin/dpkg returned an error code (1)
Mi /etc/nsswitch.conf
está abajo.
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
¿Alguien tiene alguna idea de lo que esto significa y cómo puedo solucionarlo?
linux
ubuntu
networking
hostname
RadiantHex
fuente
fuente
Respuestas:
¿Puedes proporcionar el contenido de
/etc/nsswitch.conf
?Parece que /etc/nsswitch.conf tiene un valor incorrecto para la línea "hosts". ¿Comienza con "archivos"?
De lo contrario, el FQDN se configura editando / etc / hosts y colocando el FQDN en la línea donde aparece el nombre de host. Supongamos que tiene un nombre de host "foo" y encuentra una línea:
Lo editarías así:
foo.localdomain
sería su nuevo FQDN.fuente
edite / etc / hosts para agregar su FQDN
Información sobre la sintaxis ubicada aquí: http://www.faqs.org/docs/securing/chap9sec95.html
actualización: al leer su pregunta nuevamente, casi parece que no tiene su ruta establecida correctamente o que hay algo mal con el programa de nombre de host.
hacer 'qué nombre de host'
debería regresar con la ruta '/ bin / hostname'
si eso funciona intente nuevamente el comando como,
'/ bin / hostname --fqdn'
fuente
A diferencia de la
hostname
invocación de comandos simples , la invocaciónhostname --fqdn
intentará hacer algunas cosas más, lo que a menudo resultará en algunas búsquedas de DNS.Tome por ejemplo la siguiente invocación (exitosa) (esto es de un cuadro de Red Hat, pero me imagino que debería ser lo mismo para Ubuntu):
Tenga en cuenta la
--verbose
opción muy útil .En resumen, cualquier cosa que no sea simple
hostname
probablemente esté haciendo más de lo que espera. Aquí hay otro ejemplo:Y para redondearlo:
Tenga en cuenta que el nombre de host de un sistema (tal como lo devuelve gethostname) puede proporcionarme un nombre de host no calificado, como 'myserver'. Esta es la razón por la cual el programa que desea instalar utiliza en su
hostname --fqdn
lugar.El mensaje de error
hostname: Name or service not known
proviene de las funciones de resolución : estas son las partes de la biblioteca del sistema que se traducen entre nombres y direcciones (generalmente, nombres DNS y direcciones IP).En realidad, el solucionador hace más que solo DNS (y más que solo traducir entre nombres de host y direcciones IP); su comportamiento está configurado en parte por el archivo
/etc/nsswitch.conf
, y típicamente consultará lo siguiente, típicamente en este orden:(tenga en cuenta que también puede tener un servidor DNS de almacenamiento en caché como dnsmasqd --- para el punto de lo anterior, que todavía está bajo el mecanismo 'dns').
Vale la pena señalar que herramientas como dig , host y el venerable nslookup no siguen este orden; son explícitamente herramientas de consulta DNS. Esto significa que si confía en ellos (en un script, por ejemplo), puede terminar obteniendo un resultado diferente al que obtendrían los programas regulares de los clientes (que usan el sistema de resolución). Por esta razón, use el programa getent en los scripts, especialmente si tiene un componente de almacenamiento en caché como nscd en ejecución.
Entonces, la clave aquí es que a) si tiene / etc / hosts bien configurados con una entrada para su propia máquina, yb) su /etc/nsswitch.conf tiene la configuración habitual,
hosts: files dns
en ese orden, entonces c) incluso Si no tiene DNS bien configurado en su entorno, entonceshostname --fqdn
debería funcionar.En un DNS bien configurado, se espera que tenga una dirección 'inversa' (un "registro PTR") que proporciona el nombre 'canónico' de su servidor, y ese nombre también debería poder buscarse (un " Un registro "para IPv4).
Versión corta: agregar
--verbose
; te indicará lo que te falta.Espero que eso te ayude a entender lo que está sucediendo.
fuente