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

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

sudo apt-get update 

花了2天时间我得到了 – 很长一段时间的反应

 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或其他东西的端口

我的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) 

将以下行添加到新文件:

 Aquire::ForceIPv4 false; 

保存并退出。

 sudo nano /etc/gai.conf 

添加/取消注释这些行:

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

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

我建议您首先使用其中一个性能检查站点测量典型的Internet /网络吞吐量。 一种可能性是http://www.speedtest.net 。 您还可以使用简单的Google搜索来查找可用于测试Internet连接速度的其他网站。

如果测试显示问题不是您的Internet连接的限制,那么下一步可能是看看这个问题的答案:
我怎样才能使用靠近我的镜子,或选择更快的镜子?

我建议你先尝试一下这个问题最受欢迎的答案 。 归结为将以下两行添加到/etc/apt/sources.list的顶部。 这应该鼓励更新过程自动选择具有更好性能的下载镜像。

 deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse 
  • 注意:上面的行用于Ubuntu 12.04(精确穿山甲) 。 对于早期版本,请使用您正在使用的版本的相应代号替换上面两行中的precise

    Lucid (10.04), Maverick (10.10), Natty (11.04), Oneiric (11.10)

如果这种方法没有帮助或根本不是您想要做的事情,那么您也可以考虑让Update Manager尝试选择“ 最快 ”的镜像。 在我提供上述链接的问题的其他答案中更详细地描述了这一点。

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

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

打开update-manager – >单击左下角的设置 – >单击第一个选项卡ubuntu软件 – >单击“从下载选项”旁边的下拉框 – >通过选择将服务器更改为更靠近您所在位置的某个位置列表中的其他内容。 还要检查用于更新的协议。 它应该是一般用户的http。 – >现在运行sudo apt-get update或使用update manager检查更新。 现在事情应该适合你。 如果在完成此操作后仍无法正常工作,请在此处进行评论。

因为它对你没有帮助,所以在尝试更新一些时间时似乎是收集过时或部分文件的问题。
我建议你在终端运行这个命令:

 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来安装更新。
如果没有,请在此处发表评论。