Wie kann ich einen 404-Fehler beheben, wenn ich einen PPA verwende oder meine Paketlisten aktualisiere?

266

PPA scheint ständig offline zu sein. Wann immer ich benutze sudo apt-get update, wird dieser Fehler angezeigt:

W: Failed to fetch http://ppa.launchpad.net/ 404  Not Found

Wie behebe ich diese Fehler?

Pedro
quelle
Da dies eine der Hauptantworten für "Failed to Fetch" zu sein scheint, möchte ich hier nur darauf hinweisen, dass dies auch mit Ubuntu-Partner-URLs in der sources.list passieren kann. Überprüfen Sie Ihre Fehler, um festzustellen, ob es sich um solche handelt, und kommentieren Sie sie aus. Ich bin auf dieses Problem (und diese Lösung) gestoßen, als ich ein Upgrade von Quetzal durchgeführt habe.
Joseph_Morris

Antworten:

305

Automatisiertes Entfernen

Fahren Sie am Ende dieser Antwort mit einem Skript fort, um problematische Software-Quellen für alle Ubuntu-Versionen vor Ubuntu 15.04 zu entfernen

Was sind 404 Fehler

Die Fehlermeldung 404 oder Nicht gefunden ist ein HTTP-Standardantwortcode, der angibt, dass der Client mit dem Server kommunizieren konnte, der Server jedoch die angeforderte Nachricht nicht finden konnte.

Der Hosting-Server der Website generiert normalerweise die Webseite "404 - Seite nicht gefunden", wenn Benutzer versuchen, einem fehlerhaften oder toten Link zu folgen.

Was sind die Ursachen für diese Fehler im Update-Manager?

In der Regel verursachen drei Hauptbereiche diese Fehler update-manager

  1. Ein Benutzer hat gerade ein Upgrade durchgeführt und eine nicht mehr vorhandene PPA-Softwarequelle erneut aktiviert Bildbeschreibung hier eingeben
  2. Ein Benutzer hat eine neue Softwarequelle manuell falsch eingegeben Bildbeschreibung hier eingeben
  3. Ein PPA wurde hinzugefügt, aber der Betreuer hat anschließend einen Teil / die gesamte PPA gelöscht

Wo sind diese Software-Quellen?

PPAs werden normalerweise an einem von zwei Speicherorten gespeichert

  1. /etc/apt/sources.list
  2. in einer entsprechend benannten Datei mit einer .list Datei-Erweiterung in /etc/apt/sources.list.d/zum Beispielwebupd8team-jupiter-natty.list

Diese Listendatei enthält normalerweise:

deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main

Beachten Sie, dass ein a #am Anfang einer Textzeile bedeutet, dass es auskommentiert ist und nicht vom Paketmanager überprüft wird.

So beheben Sie diese Fehler

Wenn Sie auf sudo apt-get updateeinem Terminal ausgeführt werden oder auf die Detailschaltfläche in Update Manager klicken, nachdem Sie auf die Schaltfläche "Aktualisieren" geklickt haben, werden in der Regel folgende Fehler angezeigt:

Bildbeschreibung hier eingeben

Wenn der Fehler auf eine PPA zurückzuführen ist - in der Regel wird dies behoben, indem Sie die gleichnamige PPA mit der in der Fehlermeldung angegebenen URL deaktivieren.

Bildbeschreibung hier eingeben

Wenn der 404-Fehler auf ein zusätzliches Repository zurückzuführen ist, das hinzugefügt wurde, /etc/apt/sources.listist es einfacher, #dem Zeilenanfang ein Zeichen hinzuzufügen , um das fehlerhafte Repository auszukommentieren, d. H

gksu gedit /etc/apt/sources.list

Bildbeschreibung hier eingeben

Mehr Info

Hier ist ein Fehlerbericht über den Update Manager, um dieses Problem zu lösen:

Wenn Sie diese Probleme ohne PPAs haben, überprüfen Sie diese Frage:

fossfreedom
quelle
Ich danke dir sehr.
Andrews B Anthony
51

Automatisches Entfernen von 404 Nicht gefundenen PPAs über das Skript

Dies ist ein Skript, mit dem alle nicht gefundenen 404-PPAs automatisch entfernt werden. Kopieren Sie den folgenden Code, fügen Sie ihn in eine Datei ein und benennen Sie ihn als 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

Erteilen Sie dem Skript die Ausführungsberechtigung

sudo chmod +x ppa-remove

Kopieren Sie die ppa-removeDatei und fügen /usr/binSie sie in das Verzeichnis ein. So können Sie von überall aus darauf zugreifen.

Verwendungszweck

sudo ppa-remove

Skriptbeschreibung

[ -f /tmp/update.txt ] && sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" || echo "No update file"

tput setaf 6 Befehl verwandelt die Terminal-Textfarbe in Grün. Anschließend wird "Initializing ..Please Wait" in Grün angezeigt.

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
  1. sudo apt-get update >> /tmp/update.txt 2>&1;

    Sowohl stdout als auch stderr des Befehls sudo apt-get updatewerden in die Datei geschrieben/tmp/update.txt

  2. 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 sucht die Linie , die von besteht W:, launchpad, 404in der /tmp/update.txtfile.If festgestellt, dass dann in dieser Zeile zeigt es (stdout) alle Briefe vom 26. Standort in column5.This Startstandardausgabe umgeleitet wurde (geschrieben) in die /tmp/awk.txtDatei.

Zum Beispiel:

W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages  404  Not Found

5. Spalte - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

in dieser 5. Spalte ab dem 26. Zeichen pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Diese obige Zeile wurde in /tmp/awk.txtfile.Now den nächsten Befehl gespeichert ,

awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;  

awk findet die Spalten 1 und 2 mit dem Trennzeichen heraus, durch /das die Spalten 1 und 2 /aus der /tmp/awk.txtDatei verkettet werden, und leitet dann die Standardausgabe in die Datei um (schreibt sie) /tmp/awk1.txt.

Jetzt /tmp/awk1.txtDatei enthält pitti/postgresqlZeile.

uniq /tmp/awk1.txt > /tmp/awk2.txt

Wenn es zwei gleiche Zeilen sind, uniqueBefehl zeigt (stdout) einzelne Zeile only.That einzige Zeile geschrieben wurde /tmp/awk2.txt schließlich /tmp/awk2.txtbesteht aus einzigartigen PPA Namen.

tput sgr0

Dieser Befehl ändert die Farbe des Terminaltexts in Weiß.

Schließlich werden ifbedingte Anweisungen ausgeführt. if [ -s /tmp/awk2.txt ]überprüfen Sie die Inhalte der Datei /tmp/awk2.txt präsentiert oder not.If ja, dann nimmt es die erste Zeile aus /tmp/awk2.txtund führt sudo add-apt-repository -r ppa:$linecommand.It bis zur letzten Zeile fortgesetzt wird .

Wenn nein, bedeutet dies, dass kein Inhalt vorhanden ist. Daher wird "Keine zu entfernenden PPAs" angezeigt.

Screenshots

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Avinash Raj
quelle
/ usr / bin / ppa-remove: Zeile 32: Syntaxfehler: Unerwartetes Dateiende
Shravan40
21

Sie erhalten diese Fehler, weil Ihre PPA-Repositorys keine Pakete für Ihre Ubuntu-Distribution (dh; quantal) bereitstellen .

Schauen Sie sich die folgenden Screenshots an:

ppa: petrakis / wdt-main Launchpad-Logo

wdt-main

ppa: screenlets / ppa Launchpad-Logo

Screenlets

Sie können sehen, dass das Verzeichnis für quantalfehlt und daher erhalten Sie 404 Not Found Error Messages.

Um diese Nachrichten loszuwerden, müssen Sie diese PPA-Repositorys von Ihrem System entfernen. Befolgen Sie diese Frage zum Entfernen von PPAs:


Wie kann man das untersuchen und zu diesem Schluss kommen?

Dies sind die Fehlermeldungen, die Sie für wdt-mainPPA erhalten:

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

Öffnen Sie Ihren Browser-Tab und öffnen Sie den Link, der 404 Not Found Errors enthält. In diesem Fall http://ppa.launchpad.net/petrakis/gehen Sie tiefer, wie in dem fehlerhaften Link angegeben. Sie könnten sehen, was das eigentliche Problem ist.

Aditya
quelle
17

Am wahrscheinlichsten ist, dass der PPA nicht mehr gewartet wird und entfernt werden muss. Sie können dies einfach mit:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
Braiam
quelle
3
Dies hat gerade eine doppelte Frage vor dem Posten gerettet. Ich hatte den Körper meines Q fertig und als ich anfing, meinen Titel einzugeben, fand ich den Link. Warum bewahren sie nicht alle Listen an einem Ort auf? gibt es in einigen aufgeführt , /etc/apt/sources.listwo ich überprüfen , habe aber wusste nicht , dass ich aussehen musste /etc/apt/sources.list.d/auch .. Dank ..
präzise
Dies und das Hinzufügen des richtigen neuen PPA stellte sich als die beste (einzige funktionierende) Lösung für mich heraus.
Markus-Tharkun
4

Wählen Sie Älteres Repository

Wenn Sie die Pakete aus diesem Repository wirklich benötigen , können Sie die Mirrors aus älteren Releases verwenden.

Beachten Sie jedoch, dass nicht alle älteren Versionen abwärtskompatibel sind . Einige von ihnen verursachen Konflikte mit Ihrem Hauptpaket-Repository.

Das Einzige, was Sie tun können, wenn Konflikte auftreten, ist, entweder aus dem Quellcode zu erstellen oder zu warten, bis der Anbieter das Repository für Ihre Ubuntu-Version freigegeben hat. Wir wissen nicht genau, wann die Paketanbieter ihr Paket für unsere Version freigeben werden. Sie sind also dafür verantwortlich, ihr Repository auf Ihre Freigabe zu überprüfen.

Dies kann mit jedem Debian-basierten Repository verwendet werden. Es gibt jedoch keine Garantie dafür, dass dies erfolgreich sein wird.

Schritte

  1. Machen Sie es wie gewohnt, sudo apt updatenachdem Sie PPA / Repository hinzugefügt haben. Sie können feststellen, dass beim Aktualisieren 404-Fehler auftreten. ignoriere das einfach. 404 Fehler
  2. Öffnen Sie das Repository-Verzeichnis, das 404-Fehler in Ihrem Browser verursacht. in diesem Fall ist es https://dl.winehq.org/wine-builds/ubuntu. In der Regel befinden sich verfügbare Releases in dists/. Spiegel
  3. Nachdem Sie es gefunden haben, öffnen Sie Software & Updates und ersetzen Sie Ihren Versionsnamen durch die verfügbare Version. vorzugsweise neueste oder LTS ein. Ersetzen Sie den Abschnitt "Distribution" in Binär- und Quellcode-Spiegeln. In diesem Fall bin ich Ersatz bionicmit artful. Bildbeschreibung hier eingeben
  4. Mach es sudo apt updatenochmal.
  5. Sie sind fertig! Jetzt haben Sie keine 404-Fehler mehr beim Aktualisieren Ihrer Paketlisten. Bildbeschreibung hier eingeben
  6. Wenn die Pakete für Ihre Ubuntu-Version veröffentlicht sind, wiederholen Sie die Schritte 3 und 4, indem Sie den Abschnitt "Distribution" durch Ihren Distributionsnamen ersetzen.
Aryo Adhi
quelle
2

Beachten Sie, dass es mir schon passiert ist und ich aus diesen Situationen heraus war. Und es funktionierte auch für einen Freund von mir. Auch wenn wir nicht erklären können, warum, gibt es etwas, das dieses Problem gelöst hat:

  1. Deaktivieren Sie alle Ihre PPAs.
  2. sudo apt-get updateVom Terminal aus laufen ;
  3. Aktivieren Sie Ihre PPAs erneut.
  4. Run sudo apt-get update;

Und plötzlich hat es geklappt. Frage mich nicht warum.

Danilo
quelle
Hat für mich keinen Unterschied gemacht. Noch 404er.
KWOXER
Ich habe einige unerwünschte PPAs deaktiviert und versucht sudo apt-get updateund es hat perfekt funktioniert.
Shashanth
1

Wenn beim Abrufen von Sicherheits- oder Systemdateien aus einem offiziellen Repository (nicht einem PPA) ein 404-Fehler auftritt, können Sie zur Behebung dieses Problems einen anderen Spiegel auswählen.

Du kannst entweder:

A) Ermitteln Sie eine manuell, indem Sie diese Liste überprüfen und den aktuellsten Spiegel auswählen. (Sie können auch andere Faktoren wie Entfernung und Bandbreite berücksichtigen) oder

B) Wählen Sie automatisch eine aus.

So oder so können Sie mit der Software & Updates-Anwendung wie folgt beginnen: Wählen Sie dann Download aus, gefolgt von Andere. Dann können Sie entweder manuell den Spiegel Ihrer Wahl aus der Liste auswählen oder auf die Schaltfläche Select best Server (Bester Server auswählen) klicken, um einige Tests durchzuführen und abhängig von den aktuellen Bedingungen den besten Server für Sie auszuwählen.

SnU

Elder Geek
quelle