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


15

在我的工作网络上,任何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的端口吗?

Answers:


11

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

保存并退出。


3
我不喜欢这些回答,因为没有任何关于为什么这样做的实际解释。
Gray Adams

1
@GrayAdams如果您有解释,可以添加它。我没有。希望我做到了:(我只是知道什么对我有用,所以我至少暂时将它发布给其他人解决该问题
Ryan

3
sudo nano /etc/gai.conf

添加/取消注释这些行:

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

当我用上述代码更新时,/etc/gai.conf它解决了,并且ipv4直接使用而不是ipv6快速安装。


是!!!!!谢谢!!!我不知道f在这里发生了什么。每个apt-get安装必须等待10分钟。
Jacko'5

1

我建议您首先使用性能检查站点之一来测量典型的Internet /网络吞吐量。一种可能是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 Pangolin)一起使用。对于较早的发行版precise,请在上面的两行中用您使用的发行版的相应代号替换。

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

如果此方法无济于事或根本不是您想要执行的操作,则您也可以考虑让Update Manager尝试选择“ 最快的 ”镜像。我在上面提供的链接的其他答案中对此进行了更详细的描述。


我的互联网工作正常。我尝试了很多镜子-但结果还是一样,我无法从网站上下载任何东西
ShockwaveNN 2012年

@ShockwaveNN如果您的Internet正常运行,则从大多数镜像下载都应该没有问题。例如,在互联网方面,没有什么明显的不同sudo apt-get updatefirefox浏览器使用。您是否尝试过从Live CD / USB引导并尝试sudo apt-get update查看是否存在差异?如果有的话,说明您的Ubuntu安装有问题。如果您得到相同的结果,那么我目前没有其他想法。
2012年

0

首先,有两个事实:
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以安装更新了。
如果没有,请在此处返回评论。


这没有帮助,我将服务器更改为另一个国家并检查该协议为“ http”,但我遇到了同样的问题。另外,我可以浏览Internet(某些网站(如youtube.com除外)),并可以 在浏览器中访问archive.ubuntu.com/ubuntu,并且运行良好
ShockwaveNN 2012年

我添加了一些后续步骤,认为对您有帮助。看看是否可行。
drake01 2012年

第二个变体也不起作用。我强烈认为这是连接方面的问题,有什么方法可以诊断我的连接有问题吗?
ShockwaveNN 2012年

除了主要存储库以外,您是否添加了许多软件资源?如果您有几十个PPA下降或被放弃或真的很慢,那会使更新变慢。每当它无法连接到它时,它还应该给您一条错误消息。
Marc 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.