Quando executo, sudo
o terminal fica travado por alguns segundos e, em seguida, gera uma mensagem de erro. Meu terminal está assim:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
O que posso fazer para resolver?
Quando executo, sudo
o terminal fica travado por alguns segundos e, em seguida, gera uma mensagem de erro. Meu terminal está assim:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
O que posso fazer para resolver?
Duas coisas para verificar (supondo que sua máquina seja chamada
my-machine
, você pode alterar isso conforme apropriado):Que o
/etc/hostname
arquivo contém apenas o nome da máquina.Que
/etc/hosts
tem uma entrada paralocalhost
. Deve ter algo como:Se um desses arquivos não estiver correto (já que você não pode usar o sudo), talvez seja necessário reinicializar a máquina no modo de recuperação e fazer as modificações e, em seguida, reinicializar no ambiente normal.
Edite
/etc/hosts
e anexe seu novo nome de host à linha 127.0.0.1 (ou crie uma nova linha, se preferir).O meu se parece com:
Substitua
penguin
no exemplo acima pelo seu novo nome de host conforme indicado no/etc/hostname
arquivo.Adicione seu nome de host para
/etc/hosts
gostar assim:Observe que esta é uma resposta a esta pergunta que foi mesclada com esta.
Seu nome de host (
dave00-G31M-ES2L
) não está representado em/etc/hosts
. Adicione umL
a esta linha:Assim fica:
Para fazer isso, abra um console (pressione Ctrl+ Alt+ T) e digite:
Adicione a letra
L
conforme mencionado, salve e saia.Eu tive esse problema quando estava usando o Ubuntu em um VPS. Eu resolvi editando o arquivo /etc/hosts.
execute este comando:
e depois adicione:
Espero que isso resolva seu problema :)
PS: Lembre-se de reiniciar o computador!
Eu estava tendo o mesmo problema, embora o nome do host no meu arquivo /etc/hostname e no arquivo /etc/hosts correspondessem.
Meu nome de host era "staging_1". Acontece que você não pode ter um sublinhado em seu nome de host, e é por isso que eu estava recebendo esse erro. Alterar o sublinhado para um hífen resolveu meu problema.
Na AWS, vá para o seu vpc e ative "DNS Hostnames".
O sintoma dado na pergunta pode se correlacionar fortemente com este problema mais específico:
Existem diferentes maneiras de resolver isso, uma das quais é adicionar seu nome de host como localhost
/etc/hosts
(como mostrado em várias outras respostas). Esta pode ser a coisa certa a fazer em geral, mas não é a única resolução possível.Um "nome de domínio totalmente qualificado" pode ser fornecido por um servidor DNS externo ou similar (se estiver disponível em sua rede). Neste caso,
sudo
não reclamará, apesar da entrada em falta no/etc/hosts
.Nota:
sudo
tenta desreferenciar o nome do host, mesmo que não seja necessariamente necessário, devido a recursos opcionais no arquivo sudoers. Veja o comando sudo tentando procurar por hostname .Contanto que o atraso não seja muito longo, essa mensagem de erro geralmente é inofensiva.
Todo mundo aconselha a modificar
/etc/hosts
. Mas, em alguns casos, isso pode não ser possível (por exemplo, dentro de um contêiner docker). Então, eu tive que encontrar uma maneira melhor e cheguei a isso:Alias não funcionam em scripts bash, mas podemos usar variáveis:
sudo='sudo -h 127.0.0.1'
Eu encontrei esta mesma mensagem de erro. Acho que este tópico de discussão no AWS Developer Forums é uma solução melhor:
"Vá ao console de gerenciamento da VPC, selecione a VPC, clique em Actions, selecione Edit DNS Hostnames e selecione Yes."
https://forums.aws.amazon.com/thread.jspa?messageID=699718