Apt-get 需要很长时间才能更新\升级

Apt-get 需要很长时间才能更新\升级

在我的工作网络上,任何 apt-get(或 aptitude)命令都需要很长时间,看起来好像管理员阻止了它的某些端口(原因不明)。例如

sudo apt-get update

花了两天时间,我得到的只是一长串的回复,比如

Get: 36 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 37 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 38 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 39 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 40 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]

同样的情况,然后我尝试下载软件

Get:1 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:4 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:5 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]

我可以做些什么来更改 apt-get 或其他程序的端口

答案1

我的 ubuntu 服务器更新和升级速度总是很快apt-get。通常屏幕上的线条太快以至于看不清。然后突然间,它们在一夜之间变得非常缓慢。

这是 IPv6 所为。

我找到了以下解决方案:

sudo nano /etc/gai.conf

取消注释以下行:

precedence ::ffff:0:0/96 100

对我来说它是第 54 行(确保不要取消以 结尾的行10)。

保存并退出。

sudo nano /etc/apt/apt.conf.d/99force-ipv4 # (this is to make a new file)

将以下行添加到新文件:

Acquire::ForceIPv4 false;

保存并退出。

答案2

sudo nano /etc/gai.conf

添加/取消注释这些行:

reload yes
precedence ::ffff:0:0/96 100
precedence ::/0 10

当我用上面的几行更新时/etc/gai.conf,它解决了,并且它ipv4直接用来代替ipv6并快速安装。

答案3

默认配置使用 Ipv6 建立连接并升级软件包,默认情况下禁用 IPv4。此解决方案通过启用 Ipv4 来启用 IPv4 地址的优先权。它并没有帮助在几秒钟内执行它,但确实如预期那样加快了进程。

这是因为,即使对每个包进行解析,解析 IPv4 或 IPV6 也不会花费太多时间。这是由 IPv6 完成的。

sudo nano /etc/gai.conf

取消注释以下行:

precedence ::ffff:0:0/96 100

这对您可能是不同的一行。请确保选择上面显示的具有 /96 规则的那行。这是 IPv4 地址的 CIDR 表示。它启用了相同的优先级。默认情况下,它被注释掉。

保存并退出。

sudo nano /etc/apt/apt.conf.d/99force-ipv4 # (this is to make a new file)

这将创建一个新文件,当下一行的配置被添加时,它将配置设置为 false 以允许 IPV4 流量。

将以下行添加到新文件:

Aquire::ForceIPv4 false;

保存并退出。

答案4

首先,2 个事实:
apt-get 在标准 Linux 发行版中默认使用 http(端口 80)。

apt-get通常下载约 20MB 的数据来更新列表。如果您刚刚运行apt-get update并再次运行它,它只会下载约 100KB 的数据。
因此,如果您能够浏览万维网(即使用浏览器访问网站)并且您正在使用标准发行版(未定制为使用任何其他端口),则管理员没有阻止任何阻止您运行此命令的内容。
问题可能是您的计算机向 apt-get 用于更新的当前服务器发出的请求遇到了一些问题(即它可能只是一个下载问题)。
为了解决您的问题,我的建议(因为您使用的是 ubuntu):

打开update-manager-> 单击左下角的设置 -> 单击第一个选项卡 ubuntu 软件 -> 单击从选项下载旁边的下拉框 -> 通过在列表中选择其他将服务器更改为更靠近您所在位置的地方。还要检查用于更新的协议。对于一般用户来说,它应该是 http。 -> 现在运行 sudo apt-get update 或使用更新管理器检查更新。现在一切都应该正常工作了。如果按照这些方法操作后仍然不起作用,请在此处发表评论。


由于它对您没有帮助,这似乎是尝试更新一段时间时收集的过时或部分文件的问题。
我建议您在终端中运行此命令:

sudo mv /var/cache/apt/archives/partial{,bakjune9}
sudo mv /var/lib/apt/lists{,bakjune9}

这些命令将在更新和升级期间下载文件时重命名存储文件的目录apt-get。(如果出现问题,您可以将其重命名。因此不会使情况比现在更糟)
运行后:

sudo apt-get update 

它将下载大约 20MB 的数据。
如果它运行成功,您的问题就解决了。

现在您应该可以运行sudo apt-get upgrade并安装更新了。
如果不行,请在此处回复。

相关内容