ubuntu 16.04执行apt-get update失败卡住的解决方法

本文介绍了解决Ubuntu系统中使用APT更新时遇到连接错误的方法。通过修改/etc/gai.conf文件中的配置,调整IPv4连接优先级,可以有效解决因IPv6导致的APT更新失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

luder@ubuntu:~$ sudo apt update
0% [Connecting to us.archive.ubuntu.com (2001:67c:1562::19)] [Connecting to sec^C

打开/etc/gai.conf

找到

#precedence ::ffff:0:0/96  100

把前面的"#"去掉即可。

# precedence  <mask>   <value>
#    Add another rule to the RFC 3484 precedence table.  See section 2.1
#    and 10.3 in RFC 3484.  The default is:
#
#precedence  ::1/128       50
#precedence  ::/0          40
#precedence  2002::/16     30
#precedence ::/96          20
#precedence ::ffff:0:0/96  10
#
#    For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96  100

#
# scopev4  <mask>  <value>

再次执行  apt-get update 就没有问题了。

### Hadoop在Ubuntu 16.04上`sudo apt-get update`在0%的原因分析 在Ubuntu系统中执行`sudo apt-get update`命令时,如果该操作长时间停留在0%,通常是由网络连接问题引起的。具体来说,在Hadoop环境中部署Ubuntu 16.04时,可能由于DNS解析失败APT源配置不当而导致此现象[^1]。 以下是可能导致这一问题的具体原因: 1. **DNS服务器设置不正确** 如果系统的DNS服务器无法正常工作,则可能会导致APT工具在网络请求阶段停滞。可以通过修改`/etc/resolv.conf`文件中的DNS地址来验证这一点。推荐使用Google公共DNS(8.8.8.8 和 8.8.4.4),或者国内常用的阿里云DNS(223.5.5.5 和 223.6.6.6)。 2. **APT软件源不可达** 默认情况下,Ubuntu使用的APT镜像站点可能是国外的官方仓库,这些站点在国内访问速度较慢甚至完全不可用。因此建议更换为国内的APT镜像源,例如清华大学开源软件镜像站、阿里云镜像站或其他可靠的国内镜像站点[^3]。 3. **IPv6冲突** IPv6协议可能存在某些兼容性问题,尤其是在未启用IPv6的情况下仍尝试通过IPv6进行通信时。这会引发超时错误并使更新过程暂停。可以在GRUB引导参数中禁用IPv6以排除这种可能性[^1]。 --- ### 解决方案 #### 方法一:更改DNS设置 编辑`/etc/resolv.conf`文件,替换现有的DNS条目为更稳定的选项: ```bash nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 也可以永久修改DNS配置,通过调整NetworkManager或手动编辑网配置文件完成。 #### 方法二:切换到国内APT镜像源 备份当前的APT源列表文件: ```bash sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak ``` 然后打开原文件进行编辑: ```bash sudo nano /etc/apt/sources.list ``` 将内容替换为以下示例之一(以清华源为例): ```plaintext deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse ... ``` 保存退出后重新运行更新命令。 #### 方法三:禁用IPv6 按照引用描述的操作方法,向GRUB引导加载器传递额外参数以关闭IPv6支持: ```bash sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=".*"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"/' /etc/default/grub sudo sed -i 's/^GRUB_CMDLINE_LINUX=".*"/GRUB_CMDLINE_LINUX="ipv6.disable=1"/' /etc/default/grub sudo update-grub && sudo reboot ``` 重启完成后再次测试`apt-get update`功能是否恢复正常[^1]。 --- ### 验证修复效果 无论采用哪种方式解决问题之后都需要确认其有效性。可以先清理旧缓存再发起新的更新请求: ```bash sudo apt-get clean sudo rm -rf /var/lib/apt/lists/* sudo apt-get update ``` 如果一切顺利的话,这次应该不会再遇到进度停滞的情况了。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边闲人2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值