Ubuntu apt-get install出现“Temporary failure resolving 'cn.archive.ubuntu.com'”

搭建编译环境的时候,安装g++出现了如下的报错:

Do you want to continue? [Y/n] y
Err:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libmpc3 amd64 1.0.3-1
  Temporary failure resolving 'cn.archive.ubuntu.com'
Err:2 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 binutils amd64 2.26.1-1ubuntu1~16.04.7
  Temporary failure resolving 'cn.archive.ubuntu.com'
Err:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libisl15 amd64 0.16.1-1
  Temporary failure resolving 'cn.archive.ubuntu.com'
  ......

看上去是不能resolve这个域名:cn.archive.ubuntu.com
顺手nslookup www.baidu.com
果然

openwrt@ubuntu:~$ curl -v www.baidu.com
* Rebuilt URL to: www.baidu.com/
* Could not resolve host: www.baidu.com
* Closing connection 0
curl: (6) Could not resolve host: www.baidu.com

给的服务器dns都木有配,醉了
自己来

root@ubuntu:~# vi /etc/resolv.conf 

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver x.x.x.x
nameserver 114.114.114.114
nameserver 8.8.8.8

在/etc/resolv.conf添加对应的域名解析服务器,上面的x.x.x.x是公司内网的dns服务器,这里用x代替了,114和8这两个服务器是公网的。
修改完,再试

root@ubuntu:~# apt-get install g++
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils cpp cpp-5 g++-5 gcc gcc-5 libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libquadmath0
  libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev manpages-dev
Suggested packages:
  binutils-doc cpp-doc gcc-5-locales g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib
  libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc
The following NEW packages will be installed:
  binutils cpp cpp-5 g++ g++-5 gcc gcc-5 libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0
  libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev manpages-dev
0 upgraded, 26 newly installed, 0 to remove and 10 not upgraded.
Need to get 37.0 MB of archives.
After this operation, 139 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libmpc3 amd64 1.0.3-1 [39.7 kB]
Get:2 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 binutils amd64 2.26.1-1ubuntu1~16.04.7 [2,309 kB]
Get:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libisl15 amd64 0.16.1-1 [524 kB]                                                                                       
Get:4 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 cpp-5 amd64 5.4.0-6ubuntu1~16.04.11 [7,660 kB]     
......

这样改了是能够解决当时更新的问题,但是我们在更新/etc/resolv.conf 的时候看到里面有这样一句提示:

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

所以设备一旦重启,配置就会被重写,如果想彻底改变,有两种方法:
1 修改/etc/network/interfaces,在最后添加:

dns-nameservers x.x.x.x
dns-nameservers 114.114.114.114
dns-nameservers 8.8.8.8

重启网络就可以了。

2 修改/etc/resolvconf/resolv.conf.d/base,在里面添加:

nameserver 10.1.1.4
nameserver 114.114.114.114
nameserver 8.8.8.8

然后

resolvconf -u

使其生效。

### Ubuntu 系统中无法解析 `archive.ubuntu.com` 的解决方案 当遇到 `Temporary failure resolving 'archive.ubuntu.com'` 错误时,这通常意味着系统的 DNS 配置存在问题。以下是几种可能的解决方案: #### 修改 `/etc/resolv.conf` 一种常见的方法是手动设置 DNS 服务器地址。可以通过删除现有的 `/etc/resolv.conf` 文件并创建一个新的文件来实现这一点。 ```bash sudo rm /etc/resolv.conf sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' ``` 为了防止该配置被 WSL 自动覆盖,在 WSL 中还需要修改 `/etc/wsl.conf` 文件以禁用自动生成的 DNS 配置。 ```bash sudo bash -c 'echo "[network]" > /etc/wsl.conf' sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf' ``` 最后一步是为了保护 `/etc/resolv.conf` 不再被更改,增加只读属性。 ```bash sudo chattr +i /etc/resolv.conf ``` 这些操作能够有效解决由于 DNS 设置不当引起的问题[^3]。 #### 启用 Systemd-resolved 服务 另一种方式是在 Ubuntu 上启用内置的 DNS 解析服务——Systemd-resolved。此服务可以帮助更好地管理网络连接中的 DNS 请求。 启动并启用 `systemd-resolved.service` 可以改善域名解析性能以及稳定性。 ```bash systemctl enable systemd-resolved.service --now ``` 执行上述命令之后,建议重启计算机使变更生效[^4]。 通过以上两种途径之一应该能成功修复 `Temporary failure resolving 'archive.ubuntu.com'` 这一错误提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值