运行apt-get更新时,发生“无法获取”错误。我该如何解决?


42

与上述说明相反,我尚未找到解决问题的答案。

我已经阅读了将近十二个“易于获取”更新问题,其中大部分来自askubuntu.com,其中包含“无法提取”错误,并尝试了在那里解决的方法。不幸的是,没有一个有效。我最近刚刚在笔记本电脑上安装了Ubuntu 12.04,并与Windows 7一同启动。

sudo apt-get update

在终端上,不断发生以下情况:

Err http://ph.archive.ubuntu.com precise InRelease
Err http://ph.archive.ubuntu.com precise-updates InRelease                     
Err http://ph.archive.ubuntu.com precise-backports InRelease                   
Err http://ph.archive.ubuntu.com precise Release.gpg                           
  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
Err http://ph.archive.ubuntu.com precise-updates Release.gpg            
  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
Err http://ph.archive.ubuntu.com precise-backports Release.gpg          
  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
Err http://extras.ubuntu.com precise InRelease                          
Err http://extras.ubuntu.com precise Release.gpg                        
  Unable to connect to extras.ubuntu.com:http:
Err http://security.ubuntu.com precise-security InRelease
Err http://security.ubuntu.com precise-security Release.gpg
  Unable to connect to security.ubuntu.com:http: [IP: 91.189.92.190 80]
Reading package lists... Done
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise/InRelease  
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-updates/InRelease  
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-backports/InRelease  
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/precise-security/InRelease  
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/InRelease  
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise/Release.gpg      Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-updates/Release.gpg  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-backports/Release.gpg  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release.gpg  Unable to connect to extras.ubuntu.com:http:
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/precise-security/Release.gpg  Unable to connect to security.ubuntu.com:http: [IP: 91.189.92.190 80]
W: Some index files failed to download. They have been ignored, or old ones used instead.

注意事项

我安装Ubuntu 12.04之后立即发生了这种情况。对于Linux / Ubuntu领域,我是一个新手,对这些东西来说是个菜鸟。

Update Manager(和Software Center)设置中的Sources列表很短。它仅包含2行带有“ Canonical”的行,2行带有“ Independent”的行和其他2行。我认为列表很短,因为它是新安装的Ubuntu。

与互联网的连接似乎很好,我的朋友的笔记本电脑与我的大约同时安装了Ubuntu 12.04,他的更新似乎没有问题。我们共享相同的连接,所以我认为互联网连接问题不可能是该错误的原因。

尝试的解决方案

这里,我进行了探索,/etc/resolvconf/resolv.conf.d并添加/etc/resolvconf/resolv.conf.d/head了以下内容:

nameserver 8.8.8.8
nameserver 8.8.4.4

仍然发生错误。

这里这里,我反复更改了在更新管理器和“软件”源设置中使用的镜像服务器。同样,错误仍然发生。

我还尝试编辑源列表,取消选中带有“独立”字样的行(如建议)。根据这里,我尝试删除derb-src源列表中的行。仍然无济于事。

最后,该站点建议运行以下命令:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
or, for a permanent solution,
echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

可悲的是,没有任何东西对我有用。在我去过的所有论坛中,与之相关的答案nameserver 8.8.8.8似乎最经常出现。还请注意,我真的不了解解决方案,它们的含义或完成方式。我只是跟随他们。

这是输出cat /etc/apt/sources.list

# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ dists/precise/main/binary-i386/

# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ dists/precise/restricted/binary-i386/
# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ precise main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted
deb http://archive.ubuntu.com/ubuntu precise-security universe
deb-src http://archive.ubuntu.com/ubuntu precise-security universe
deb http://archive.ubuntu.com/ubuntu precise-security multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

以下是针对cat /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 127.0.0.1
search nip.upd.edu.ph

有人指出,答案就在这里,但不幸的是,它也不起作用。我尝试选择其他服务器,但“选择服务器”从未可用。搜索最佳服务器会产生“没有合适的服务器”的结果。我认为镜像服务器很好,而且互联网连接似乎没有问题。

使用ping -c3 archive.ubuntu.comping -c3 8.8.8.8 都产生了0% packet loss。8.8.8.8的ping有时会产生,33% packet loss但大部分为0%。

打字nslookup google.com收益

Server:     127.0.0.1
Address:    127.0.0.1#53

输出ps aux | grep dns

nobody    1761  0.0  0.0  33012  1284 ?        S    17:04   0:00 /usr/sbin/dnsmasq
 --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var
/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.0.1 --conf-
file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec
joa       2197  0.0  0.0  13576   928 pts/0    S+   17:10   0:00 grep --color=auto dns

好吧,让我们从头开始。首先,键入时可以复制终端的确切输出sudo apt-get update吗?另外,还可以包括输出cat /etc/apt/sources.listcat /etc/resolv.conf?您确认可以正常浏览互联网上的网站吗?
Alaa Ali

@Alaa为了回应您的询问,我已编辑问题并张贴了您需要知道的所有内容。是的,我能够正常浏览互联网上的网站。
jowabels 2013年

0%丢包?因此,您可以ping和浏览,但无法在apt-get更新中解析...嗯。是否有某种仅适用于apt-get的DNS设置?无论如何,您可以发布来自的前两行nslookup google.com,并发布的输出ps aux | grep dns吗?另外,您是否使用静态IP?
Alaa Ali

@Alaa我已经编辑了问题并发布了输出。的输出ps aux | grep dns应该是一行,但是我对其进行了编辑以使其更易于查看。最初,我会说我使用动态IP是因为我没有为它支付任何费用,但是我使用大学互联网连接,因此很难知道我使用的IP是静态的还是动态的。
jowabels

@Alaa我刚刚确认我使用了动态IP。
jowabels

Answers:


27

我面临着同样的问题,并认为最简单的解决方案是重置的来源/etc/apt/sources.list。这样做,请按照下列步骤操作:

  1. 获取您的Ubuntu版本的发行版,在控制台中输入:

    lsb_release -r
    
  2. 转到http://repogen.simplylinux.ch/生成一个新的sources.list

  3. 选择您的国家发布
  4. 选中前12个框:

    所有Ubuntu Brances +安全性和更新

  5. 生成并复制您的新列表
  6. 将旧文件备份到sources.list.old

    mv /etc/apt/sources.list /etc/apt/sources.list.old
    
  7. 现在,您可以通过执行以下操作打开vi来保存新列表:

    vi /etc/apt/sources.list
    (Paste and save using `:wq`)
    

    或通过将“ curl”命令(包括用于更新的源列表的唯一URI)复制并粘贴到您的终端中,将其显示在repogen输出页面的“源列表”下。

  8. G2G,重试运行 apt-get update


2
即使作者的问题得到了不同的解决,我还是决定回答这个问题。他的问题是与损坏的source.list文件(偶然发现3次)相关的许多问题的最高结果,并且觉得可以将我的解决方案留在这里,因为这样做可以节省很多时间。
RienNeVaPlus 2014年

我下载了ubuntu 12虚拟机,没有有效的存储库(意大利语)。我做到了,就像一个魅力!谢谢!
Feida Kila

粘贴之前vim,您需要在打开后点击“ i”来编辑插入模式
sg 2016年

这对我有用。
瑞克

发布列表中没有14.10 :(
JoeTidee

25

编辑/etc/resolv.conf。在终端窗口中运行

sudo gedit /etc/resolv.conf

并添加线

nameserver 8.8.8.8

并保存。然后做

ping www.google.com

如果成功,则运行以下命令

sudo apt-get --download-only --reinstall install resolvconf
sudo dpkg --purge --force-depends resolvconf
sudo apt-get install resolvconf

如果现在解决失败,请右键单击桌面顶部栏中的网络指示器,单击Edit Connections,选择您的连接,然后单击Edit|。IPv4 Settings。将“方法从”更改为Automatic (DHCP)Automatic (DHCP) addresses only然后8.8.8.8Additional DNS servers字段中输入。点击Save...。确认/etc/resolv.conf现在包含一行nameserver 8.8.8.8并且您仍然可以ping www.google.com


5
@金伯特·乌姆(Guntbert Umm)。您正在与resolvconf软件包的作者交谈。我认为他知道他在说什么。;-)
Kevin Bowen

@jdthood以前,我能够ping 8.8.8.8(如问题中所述),但是在添加该行之后nameserver 8.8.8.8,它没有解决,并且此行出现了From nat1.up.edu.ph (10.16.1.2) icmp_seq=1 Destination Host Unreachable
jowabels 2013年

1
@maggotbrain thx帮助我再次将自己的脚从嘴里拉开:-)
贡伯特

1
@guntbert,一切都很好,伙计。我去过那里。如果有任何dns / resolveconf问题,则jdthood是解决这些问题的好人!
凯文·鲍文

3
当我按照这些步骤操作时,在运行第一个命令后出现此错误:Err http://us.archive.ubuntu.com/ubuntu/ wily/main resolvconf all 1.77ubuntu1 404 Not Found [IP: 91.189.91.23 80] E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/r/resolvconf/resolvconf_1.77ubuntu1_all.deb 404 Not Found [IP: 91.189.91.23 80]
MadPhysicist

7

sudo apt-get update终于工作了!我只是意识到问题不在系统上,而是系统如何连接和从Internet检索数据。我刚刚配置我的网络设置,改变了代理检测到Manual并填充在HTTPHTTPSFTP,和Socks Host空白的代理,我使用。当我再次更新时,此错误输出首先发生:

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/)

好吧,不是完全一样,而是相似(我从这里从上面复制)。但是,当我再次尝试更新时,它终于起作用了(我将错误输出发布在上面的原因,而不是我看到的确切输出),现在我可以选择其他镜像服务器。如果网络代理配置确实是造成麻烦的原因,那么,对于这种基本错误,我有点傻。

无论如何,感谢大家的帮助!:)


0

做这个

sudo bash -c 'echo "nameserver 127.0.0.1" >> /etc/resolv.conf'

然后做sudo apt-get update看看是否可行。


不,sudo apt-get update仍然无法正常工作。我是否必须删除该行,nameserver 127.0.01或者可以将其保留在那里?
jowabels

从jdthood的答案恢复后,您是否尝试过这样做?因此,只要确保可以ping 8.8.8.8,然后将行添加nameserver 127.0.0.1到中/etc/resolv.conf,它就必须是唯一的行(当然在注释之后)。
Alaa Ali

是的,我在还原后执行了此操作,并且没有任何问题ping 8.8.8.8(当然,在还原后)。基本上,nameserver 127.0.0.1是唯一添加到的行/etc/resolv.conf
jowabels

我只是想知道,原来的/ etc / resolv.conf`文件nameserver 127.0.0.1在添加之前已经包含了。当我按照您的回答进行操作时,已编辑的文件现在包含在中的行nameserver 127.0.0.1。有什么理由吗?
jowabels

我的答案中的命令添加了这一行nameserver 127.0.0.1,无论文件中已有什么。原始文件(全新安装后)很可能应该已经包含该行,尽管您所质疑的输出中没有该行。但是,在遵循了jdthood的答案中的最后一个命令之后,我认为该文件已重置并nameserver 127.0.0.1添加了该行。因此,当您按照我的回答进行操作时,添加了另一行。无论如何,如果您有两行,则可以安全地删除其中之一。
Alaa Ali
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.