sudo apt-get update
时,都会显示此错误:W: Failed to fetch http://ppa.launchpad.net/ 404 Not Found
如何解决这些错误?
#1 楼
自动删除跳至该答案的底部,以脚本方式删除Ubuntu 15.04之前所有ubuntu版本的违规软件源。
404错误是什么
404或未找到错误消息是HTTP标准响应代码
,指示客户端能够与服务器通信,
但服务器找不到请求的内容。
网站托管服务器将通常,当用户尝试遵循断开或无效的链接时,通常会生成“ 404-页面未找到
”网页。
更新管理器中这些错误的原因是什么
通常,三个主要区域会在
update-manager
中导致这些错误。用户刚刚升级并重新启用了不再存在的PPA软件源
用户手动输入了错误的新软件资源
添加了PPA,但是维护人员随后删除了部分/全部PPA
,其中这些是沙发吗tware-sources
PPA通常保存在两个位置之一中
/etc/apt/sources.list
在
/etc/apt/sources.list.d/
中带有.list文件扩展名的适当命名的文件中,例如webupd8team-jupiter-natty.list
此列表文件通常包含:
deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
请注意,在一行文本的前面有一个
#
意味着它已被注释掉,而程序包管理器未对其进行检查。如何消除这些错误
通常,如果从终端运行
sudo apt-get update
或单击刷新按钮后单击Update Manager中的详细信息按钮,您将看到诸如以下错误:如果错误是由于PPA引起的-通常将错误消息中显示的URL取消选中具有相同名称的PPA,则可以解决此问题。
如果404错误是由于添加了其他存储库引起的到
/etc/apt/sources.list
,则可以更轻松地在行首添加#
字符,以注释掉有问题的存储库,即gksu gedit /etc/apt/sources.list
更多信息
这是更新管理器上的错误报告,用于解决此问题:
https://bugs.launchpad.net/ubuntu/+source/update- manager / + bug / 1049046
如果在没有PPA的情况下遇到这些问题,请查看以下问题:
如何使用Ubuntu档案修复404错误?
存储库/ Ubuntu-社区Ubuntu文档-删除和禁用存储库
#2 楼
通过脚本自动删除404未找到的PPA这是一个脚本,用于自动删除所有404未找到的PPA。复制以下代码并将其粘贴到文件中,并将其命名为
ppa-remove
。#!/bin/bash
sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait"
sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr(,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt; sort -u /tmp/awk1.txt > /tmp/awk2.txt
tput sgr0
if [ -s /tmp/awk2.txt ]
then
tput setaf 1
printf "PPA's going to be removed\n%s\n" "$(cat /tmp/awk2.txt)"
tput sgr0
while read -r line; do echo "sudo add-apt-repository -r ppa:$line"; done < /tmp/awk2.txt > out
bash out
else
tput setaf 1
echo "No PPA's to be removed"
tput sgr0
fi
授予脚本执行权限
sudo chmod +x ppa-remove
将
ppa-remove
文件复制并粘贴到/usr/bin
目录中,以便可以从任何位置访问它。用法
sudo ppa-remove
脚本描述
[ -f /tmp/update.txt ] && sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" || echo "No update file"
tput setaf 6
命令将终端文本颜色变为绿色。然后以绿色显示“正在初始化..请稍候”。sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr(,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt; uniq /tmp/awk1.txt > /tmp/awk2.txt
sudo apt-get update >> /tmp/update.txt 2>&1;
命令
sudo apt-get update
的stdout和stderr都被写入文件/tmp/update.txt
awk '( /W:/ && /launchpad/ && /404/ ) { print substr(,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt;
awk在
W:
文件中搜索由launchpad
,404
和/tmp/update.txt
组成的行,如果发现那一行则显示(stdout)从第5列的第26个位置开始的所有字母。此标准输出已重定向(写入)到/tmp/awk.txt
文件。例如,W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages 404 Not Found
第5列-
http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
,第5列以第26个字符开头-
pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
以上行已存储到
/tmp/awk.txt
文件中。现在,下一条命令awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt;
用分隔符
/
找出column1和column2,其中column1和column2由/
从/tmp/awk.txt
文件中串联,然后将stdout重定向(写入)到/tmp/awk1.txt
文件。现在/tmp/awk1.txt
文件包含pitti/postgresql
行。uniq /tmp/awk1.txt > /tmp/awk2.txt
如果有两行相同,则
unique
命令仅显示(stdout)一行。写入/tmp/awk2.txt
最后
/tmp/awk2.txt
由唯一的PPA名称组成。tput sgr0
此命令将终端文本的颜色更改为白色。
最后,将执行
if
条件语句。 if [ -s /tmp/awk2.txt ]
检查/tmp/awk2.txt文件的内容是否存在,如果是,则从/tmp/awk2.txt
的第一行开始执行sudo add-apt-repository -r ppa:$line
命令,直到最后一行。如果不是,则表示没有内容。因此它说“没有要删除的PPA”。
屏幕截图
评论
/ usr / bin / ppa-remove:第32行:语法错误:文件意外结束
–Shravan40
16年2月14日在19:31
#3 楼
之所以会出现这些错误,是因为您的PPA存储库不提供用于Ubuntu发行版的软件包(即quantal
)。请看以下屏幕截图:
ppa:petrakis / wdt-main
ppa:screenlets / ppa
您可以看到
quantal
的目录丢失了,因此您会得到404 Not Found Error Messages
。要摆脱这些消息,您可以从系统中删除这些PPA存储库。请遵循以下有关如何删除PPA的问题:
请参阅此答案中的“如何消除这些错误”一节。
或者,如何删除PPA?
/>
如何进行调查并得出结论?
这些是您收到的有关
wdt-main
PPA的错误消息:W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/source/Sources 404 Not Found
, W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/binary-amd64/Packages 404 Not Found
, W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/binary-i386/Packages 404 Not Found
打开您的浏览器标签并打开该链接,其中显示404未找到错误。在这种情况下,
http://ppa.launchpad.net/petrakis/
并根据给出错误的链接进行更深的研究。您将能够看到实际的问题是什么。#4 楼
最有可能发生的是PPA不再维护,需要删除。您可以使用以下方法执行此操作:sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
评论
这只是避免了一个重复的问题。.我准备好我的Q正文,正当我开始键入标题时,找到了链接。.为什么他们不将所有列表都放在一个地方!在/etc/apt/sources.list中列出了一些我曾检查过但不知道我也必须在/etc/apt/sources.list.d/中查看的..谢谢。
–精确
2014年3月12日在11:15
这然后添加适当的新PPA对我来说是最好的(唯一可行的)解决方案。
–markus-tharkun
16-3-3在12:59
#5 楼
选择较旧的存储库如果您确实需要该存储库中的软件包,则可以使用较旧版本的镜像。
但是请注意,并非所有较旧的版本都是向下兼容;其中一些会导致与主程序包存储库发生冲突。
发生冲突时,您只能做的事情是从源代码构建,或者等到提供程序为您的Ubuntu版本发布存储库。我们不知道软件包提供商何时发布其版本的软件包,因此您是负责检查其版本库的负责人。
它可以与任何Debian-基于存储库。但是,不能保证这将成功。
步骤
添加PPA /存储库后,请执行常规
sudo apt update
。您会注意到更新时出现404错误; 打开存储库目录,这会导致浏览器出现404错误;在这种情况下,它是
https://dl.winehq.org/wine-builds/ubuntu
。通常,可用的发行版位于dists/
中。找到它之后,打开“软件和更新”,并用可用发行版替换发行版名称;最好是最新的或LTS之一。替换二进制和源代码镜像中的“分发”部分。在这种情况下,我要用
bionic
代替artful
。再做一次
sudo apt update
。您完成了!现在,更新软件包列表时,不再有404错误。
发布适用于Ubuntu版本的软件包时,请用发行版替换“发行版”部分,重复步骤3和4名称。
#6 楼
请注意,这已经发生在我身上,而我脱离了这些情况。它也为我的一个朋友工作。甚至无法解释原因,有一些解决了该问题的方法:禁用所有PPA;
从终端运行
sudo apt-get update
; 重新启用PPA再次;
运行
sudo apt-get update
; 突然工作了。不要问我为什么。
评论
对我没有影响。仍然是404s。
–kwoxer
16年1月6日在7:56
我禁用了一些不需要的PPA,并尝试了sudo apt-get更新,它运行良好。
–沙珊斯
17年7月7日在6:56
#7 楼
如果在尝试从官方存储库(而非PPA)获取安全性或系统文件时遇到404错误,则可以选择其他镜像来解决此问题。您可以:
A)通过查看此列表并选择最新的镜像来手动确定一个。 (您可能希望考虑其他因素,例如距离和带宽)或
两种方法都可以从“软件和更新”应用程序开始如下图所示:然后选择Download from from,然后选择Other。然后,您可以从列表中手动选择所需的镜像,或者单击“选择最佳服务器”按钮,它将运行一些测试,并根据当前条件为您选择最佳服务器。
#8 楼
我已经尝试了所有可能的答案,但是唯一的解决方案是将Ubuntu 16.04 Xenial默认的/etc/apt/sources.list文件复制到我的/etc/apt/sources.list
中。来源:
https:// gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1
这节省了我的Linux。
#9 楼
>您的资源已被弄乱/或损坏,但我们可以重新列出一个新列表。打开一个终端并键入
sudo rm /etc/apt/sources.list
然后,键入:
sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
然后打开软件源:
sudo软件属性gtk
您会看到5个复选框将其全部打勾,然后在下面将
服务器更改为最接近您的位置,例如,如果您居住在美国,则可以放置美国服务器,应用选项并
关闭窗口。
然后转到终端并输入:
sudo apt-get update && upgrade
哪个会更新您的系统。
评论
因为这似乎是主要的“无法获取”答案之一,所以我只想在此指出,使用sources.list中的Ubuntu“伙伴” URL也会发生这种情况。检查您的错误,看看是否是这些错误,然后尝试将其注释掉。我遇到了从Quetzal升级的问题(和解决方案)。