当我跑 sudo
终端卡住几秒钟,然后输出错误消息。 我的终端看起来像这样:
ubuntu@(none):~$ sudo truesudo: unable to resolve host (none)
我能做些什么来解决它?
当我跑 sudo
终端卡住几秒钟,然后输出错误消息。 我的终端看起来像这样:
ubuntu@(none):~$ sudo truesudo: unable to resolve host (none)
我能做些什么来解决它?
两件事要检查(假设你的机器被调用 my-machine
,您可以根据需要更改此):
那就是 /etc/hostname
文件只包含机器的名称。
那个 /etc/hosts
有一个条目 localhost
. 它应该有类似的东西:
127.0.0.1本地主机.本地主机127.0.1.1我的机器
如果这些文件中的任何一个不正确(因为您无法sudo),则可能必须将计算机重新启动到恢复模式并进行修改,然后重新启动到您的常规环境。
编辑 /etc/hosts
并将您的新主机名附加到127.0.0.1行(或者创建一个新行,如果您愿意)。
我的看起来像:
127.0.0.1 localhost localhost.localdomain penguin# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters
更换/更换 penguin
在上面的例子中,你的新主机名称如 /etc/hostname
档案。
将主机名添加到 /etc/hosts
像这样:
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts
注意,这是一个答案 这个问题 它已经和这个合并了。
您的主机名(dave00-G31M-ES2L
)中没有表示 /etc/hosts
. 添加一个 L
到这条线:
127.0.1.1 dave00-G31M-ES2
所以它变成了:
127.0.1.1 dave00-G31M-ES2L
为了完成此,请打开控制台(按 Ctrl+Alt+T)和类型:
sudo gedit /etc/hosts
加上信 L
如前所述,保存并退出。
当我在VPS上使用ubuntu时,我遇到了这个问题。 我解决了它编辑/etc/hosts文件。
运行此命令:
sudo nano /etc/hosts
然后添加:
127.0.0.1 localhost.localdomain localhost127.0.1.1 ubuntu
我希望这将解决您的问题:)
PS:记得重启电脑!
即使我的/etc/hostname文件和/etc/hosts文件中的主机名匹配,我也遇到了同样的问题。
我的主机名是"staging_1"。 事实证明,你的主机名不能有下划线,这就是为什么我得到这个错误。 将下划线更改为连字符修复了我的问题。
在AWS中,转到您的vpc并打开"DNS主机名"。
问题中给出的症状可能与此更具体的问题密切相关:
$ hostname --fqdnhostname: Temporary failure in name resolution
有不同的方法可以解决这个问题,其中之一是将您的主机名添加为localhost /etc/hosts
(如其他几个答案所示)。 一般来说,这可能是正确的做法,但这不是唯一可能的解决方案。
"完全限定域名"可能由外部DNS服务器或类似服务器提供(如果您的网络上可用)。 在这种情况下, sudo
不会抱怨,尽管在缺少条目 /etc/hosts
.
注意事项: sudo
由于sudoers文件中的可选功能,尝试取消引用主机名,即使它不一定是必需的。 见 sudo命令试图搜索主机名.
只要延迟不太长,此错误消息通常是无害的。
大家建议修改 /etc/hosts
. 但在某些情况下,这可能是不可能的(例如在docker容器内)。 所以,我必须找到一个更好的方法,我想出了这个:
echo "alias sudo='sudo -h 127.0.0.1'" >> ~/.bash_aliasessource ~/.bashrc
别名在bash脚本中不起作用,但我们可以使用变量: sudo='sudo -h 127.0.0.1'
我遇到了同样的错误消息。 我认为AWS开发人员论坛上的这个讨论线程是一个更好的解决方案:
"转到VPC管理控制台,选择VPC,单击操作,选择编辑DNS主机名并选择是。"
我建议不要关闭这个问题太本地化。 有许多用户可能会错误地认为他们在他们的"主机"文件中放了一个名字,但却放了一个不同的名字,特别是因为在许多网络上,计算机的名字是相似的。 当有人搜索这个问题时,这个问题(和答案)会出现,答案会提示他们检查这些差异,即使确切的拼写错误会有所不同。
确保您的"主机名"与"hosts"相同。 例如:主机名是ubuntu-pc,主机是ubuntu-pc必须相同。
请发布"/etc/hostname"和"/etc/hosts"的内容。
我无法发布答案,因为这个问题受到保护,我在这里没有足够的声誉。 在我的情况下,我通过重新启动network-manager:sudo/etc/init来解决问题。d/网络管理器重新启动'。 但是,我想知道为什么首先
sudo浪费时间等待与网络相关的东西。 当网络不可用时,
sudo`不应该毫无问题地工作吗?
我今天遇到了这个。 问题是我在主机名中的内容不在/etc/hosts中。 也就是说:host hostname=>‘mybox’gre grep’mybox’/etc/hosts=>192.168.1.2mybox.example.com.我需要在/etc/hosts=>192.168.1.2的域名后面添加’mybox’mybox.example.com 我的盒子
Why does the question have `"“最后? 这与问题正文中显示的”(无)"改进建议:删除"的实际输出相矛盾
你可以在这里改进问题。 它被另一个用户更改了。 我也不知道。 :P