Eu estou usando o Ubuntu 10.04 LTS, e quando eu digitar o comando hostname --fqdn
, eu recebo a mensagem: hostname: Name or service not known
.
Por esse motivo, não consigo instalar com global
êxito e recebo o seguinte erro ao tentar:
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)
Meu /etc/nsswitch.conf
está abaixo.
# /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
Alguém tem alguma idéia sobre o que isso significa e como posso corrigir isso?
linux
ubuntu
networking
hostname
RadiantHex
fonte
fonte
Respostas:
Você pode fornecer o conteúdo de
/etc/nsswitch.conf
?Parece que /etc/nsswitch.conf tem um valor ruim para a linha "hosts". Começa com "arquivos"?
Caso contrário, o FQDN é definido editando / etc / hosts e colocando o FQDN na linha em que o nome do host aparece. Suponha que você tenha um nome de host "foo" e encontre uma linha:
Você o editaria assim:
foo.localdomain
seria seu novo FQDN.fonte
edite / etc / hosts para adicionar seu FQDN
Informações sobre sintaxe localizadas aqui: http://www.faqs.org/docs/securing/chap9sec95.html
update: lendo a sua pergunta novamente, quase parece que você não está com o caminho definido ou há algo errado com o programa hostname.
faça 'qual hostname'
ele deve retornar com o caminho '/ bin / hostname'
se isso funcionar, tente o comando novamente como,
'/ bin / hostname --fqdn'
fonte
Diferente da simples
hostname
chamada de comando, a chamadahostname --fqdn
tentará fazer mais algumas coisas, o que geralmente resultará em algumas pesquisas de DNS.Tomemos, por exemplo, a seguinte invocação (bem-sucedida) (isto é de uma caixa Red Hat, mas eu imaginaria que deveria ser a mesma para o Ubuntu):
Observe a
--verbose
opção muito útil .Em resumo, qualquer coisa que não
hostname
seja simples provavelmente está fazendo mais do que você espera. Aqui está outro exemplo:E para finalizar:
Observe que o nome do host de um sistema (retornado por gethostname) pode me fornecer um nome de host não qualificado, como apenas 'myserver'. É por isso que o programa que você deseja instalar está usando o
hostname --fqdn
.A mensagem de erro
hostname: Name or service not known
vem das funções do resolvedor : estas são as partes da biblioteca do sistema que são convertidas entre nomes e endereços (geralmente nomes DNS e endereços IP).Na verdade, o resolvedor faz mais do que apenas DNS (e mais do que apenas traduzir entre nomes de host e endereços IP); seu comportamento é configurado em parte pelo arquivo
/etc/nsswitch.conf
e, normalmente, ele consulta o seguinte, geralmente nesta ordem:(observe, você também pode ter um servidor DNS em cache, como o dnsmasqd --- pelo que foi dito acima, que ainda está no mecanismo 'dns').
Vale ressaltar que ferramentas como dig , host e o venerável nslookup não seguem essa ordem; eles são explicitamente ferramentas de consulta de DNS. Isso significa que, se você confiar neles (em um script, por exemplo), poderá obter um resultado diferente do que os programas clientes regulares (que usam o resolvedor do sistema). Por esse motivo, use o programa getent em scripts, principalmente se você tiver um componente de armazenamento em cache, como o nscd em execução.
Portanto, o principal argumento aqui é que: a) se você tiver / etc / hosts bem configurados com uma entrada para sua própria máquina eb) seu /etc/nsswitch.conf possui a configuração usual -
hosts: files dns
nessa ordem, c) até se você não tiver o DNS bem configurado em seu ambiente,hostname --fqdn
deverá funcionar.Em um DNS bem configurado, espera-se que você tenha um endereço 'reverso' (um "registro PTR") que forneça o nome 'canônico' do seu servidor, e esse nome também poderá ser procurado (um " Um registro "para IPv4).
Versão curta: add
--verbose
; irá apontar para o que está faltando.Espero que ajude você a entender o que está acontecendo.
fonte