最近,我尝试运行命令 sudo apt-get update,并收到名称解析暂时失败错误。但是,之后命令继续执行并继续更新。我应该担心这个错误吗?以下是完整日志:
sudo apt-get update
sudo: unable to resolve host {hostname}: Temporary failure in name resolution
Hit:1 http://in.archive.ubuntu.com/ubuntu focal InRelease
Get:2 http://in.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Fetched 6,581 kB in 6s (1,180 kB/s)
Reading package lists... Done
答案1
您的计算机的主机名可能配置不正确。您应该检查两个文件;/etc/hostname
仅包含您的计算机名称,并且/etc/hosts
将有一行将 IP 地址映射127.0.1.1
到您的主机名。例如,这些文件可能如下所示:
username@ubuntu ~ $ cat /etc/hostname
ubuntu
username@ubuntu ~ $ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
如果您没有这些,请尝试添加它们 - 请记住主机名只能由字母、数字和连字符组成 - 然后重新启动并查看是否再次出现该错误。
答案2
我遇到了类似的问题。我尝试使用 sudo certbot renew 来更新 SSL 证书,但一直收到错误:名称解析暂时失败。颁发证书时出现“意外错误”等等。该错误意味着缺少、配置错误或未激活 resolve.conf 文件。
修复很简单,您需要重新启动:
$ sudo systemctl restart systemd-resolved.service
然后使用以下命令检查文件的状态:
$ sudo systemctl status systemd-resolved.service
然后运行更新 SSL 命令
sudo certbot renew
这解决了我的问题
答案3
我修复了它:
hostnamectl set-hostname hostname.newdomain.local
答案4
当我将主机名配置为包含下划线字符 (_) 时,我遇到了此错误。这是一个无效的主机名,因此在 hosts 文件中永远无法解析它。以下是有关创建有效主机名的一些信息:
主机名最多可包含 255 个字符(包括点)。主机名中的文本字符串必须由 ASCII 字符组成。它包括大写或小写字母(A 到 Z 或 a 到 z)、数字(0 到 9)、点符号 (.) 和连字符符号 (-)。