1. 问题的发现
最早出现这个问题是我想要用 apt
安装 ccls
的时候出现的,即执行指令 sudo apt-get install ccls
或 sudo apt install ccls
时出现报错:Temporary failure resolving 'archive.ubuntu.com'
。
我们知道,出现这种报错信息大概率就是网络包管理器在提示用户没法正常从那个网站下载。首先大家需要检查一下自己的网卡是否配置正常。这一步通过在浏览器中打开百度即可实现。因此接下来我们假设虚拟机本身的网络没有问题。这时我们在终端中进行排查:输入ping www.baidu.com
,像小编当时就发现问题出在这里:DNS 没有配置。通常情况下,问题都是出在这里的。
2. 问题的解决(下面这一个 Section 可以先不要动手实践,真正的解决方案在后面)
那么接下来就要具体解决这一问题了。我们按 Ctrl+Alt+T
进入终端,编辑这个配置文件:vi /etc/resolv.conf
:
我们会发现,文件似乎是没有更改权限的(如果可以修改请跳过),因此还需要更改文件权限:
sudo chmod 777 /etc/resolv.conf
。接下来就可修改文件内容为:
之后再下载便不会出错了。
然而,这一方法治标不治本。每次重启后这个文件就会被覆盖重写。
那么,难道要修改系统不能写这个文件吗?显然是不现实的。
3. 目前找到的最为靠谱的方法
使用 apt
安装 resolvconf
:
sudo apt-get install resolvconf
然后进入它的文件夹:
cd /etc/resolvconf/resolv.conf.d/
用 ls
查看目录后输出:
base head original tail
修改 base
权限:
sudo chmod 777 base
进入后空空如也:
添加这样几行:
nameserver 114.114.114.114
nameserver 114.114.115.115
之后 :wq
退出,进一步防止文件被系统修改(这边因为用的是 resolvconf
包,所以是可以的):
sudo resolvconf -u
接下来就大功告成啦!重启试一下:
可见我们的更改被保存了!