Answers:
跳到该答案的底部,以脚本方式删除Ubuntu 15.04之前所有ubuntu版本的违规软件源
404或未找到错误消息是HTTP标准响应代码,指示客户端能够与服务器通信,但是服务器找不到请求的内容。
当用户尝试跟踪断开或无效的链接时,网站托管服务器通常会生成“ 404-未找到页面”网页。
通常,三个主要方面导致这些错误 update-manager
PPA通常保存在两个位置之一
/etc/apt/sources.list
/etc/apt/sources.list.d/
例如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
请注意#
,文本开头的a表示已将其注释掉,并且程序包管理器不会对其进行检查。
通常,如果sudo apt-get update
从终端运行,或在单击刷新按钮后单击Update Manager中的详细信息按钮,则会看到诸如以下的错误:
如果错误是由于PPA引起的-通常将错误消息中显示的URL取消选中具有相似名称的PPA,即可解决此问题。
如果404错误是由于添加了附加存储库引起的,/etc/apt/sources.list
那么它更容易#
在行的开头添加字符以注释掉有问题的存储库,即
gksu gedit /etc/apt/sources.list
这是有关更新管理器的错误报告,用于解决此问题:
如果在没有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($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /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($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt; uniq /tmp/awk1.txt > /tmp/awk2.txt
sudo apt-get update >> /tmp/update.txt 2>&1;
命令的stdout和stderr sudo apt-get update
都写入文件/tmp/update.txt
awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;
AWK搜索它由线W:
,launchpad
,404
在/tmp/update.txt
文件。如果它发现然后在该行它显示从column5.This标准输出被重定向的第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 $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;
AWK findout出列1列2和与所述分隔符/
,其中列1列2和通过串接/
来自/tmp/awk.txt
文件,然后重定向(写入)到标准输出/tmp/awk1.txt
文件。
现在/tmp/awk1.txt
文件包含pitti/postgresql
行。
uniq /tmp/awk1.txt > /tmp/awk2.txt
如果有两个相同的线,unique
命令显示(STDOUT)单线only.That单线被写入/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”。
之所以会出现这些错误,是因为您的PPA存储库不提供用于Ubuntu发行版的软件包(即quantal
)。
查看以下屏幕截图:
您会看到quantal
缺少的目录,因此正在获取404 Not Found Error Messages
。
要摆脱这些消息,您必须从系统中删除这些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 Not Found Errors的链接。在这种情况下http://ppa.launchpad.net/petrakis/
,请按照给出错误的链接进行更深入的研究。您将能够看到实际的问题是什么。
最有可能发生的是PPA不再维护,需要删除。您可以使用以下方法执行此操作:
sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
/etc/apt/sources.list
我检查过的地方,但我也不知道我也必须去检查/etc/apt/sources.list.d/
..谢谢..
如果你真的需要的包从该库中,你可以从旧版本使用的镜子。
但是,请注意,并非所有旧版本都向后兼容;其中一些会导致与主软件包存储库发生冲突。
发生冲突时,您唯一可以做的就是从源代码构建,或者等到提供程序为您的Ubuntu版本发布存储库。我们不知道究竟何时包供应商将发布他们的包我们的版本,所以你是一个负责检查他们的资源库为您发布。
可以与任何基于Debian的存储库一起使用。但是,不能保证这将成功。
sudo apt update
添加PPA /存储库后,请执行常规操作。您会注意到更新时出现404错误;只是忽略这一点。
https://dl.winehq.org/wine-builds/ubuntu
。通常,可用版本位于中dists/
。
bionic
为artful
。
sudo apt update
一次。我已经尝试了所有可能的答案,但是唯一的解决方案是将Ubuntu 16.04 Xenial默认的/etc/apt/sources.list 文件复制到我的/etc/apt/sources.list
。
资料来源:https : //gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1
那节省了我的Linux。