it-swarm.com.de

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

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

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

Wie behebe ich diese Fehler?

264
Pedro

Automatisiertes Entfernen

fahren Sie am Ende dieser Antwort mit Skripten 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 in update-manager.

  1. Ein Benutzer hat gerade ein Upgrade durchgeführt und eine nicht mehr vorhandene PPA-Softwarequelle erneut aktiviert enter image description here
  2. Ein Benutzer hat eine neue Softwarequelle manuell falsch eingegeben enter image description here
  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 der Dateierweiterung .list in /etc/apt/sources.list.d/ zum Beispiel webupd8team-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 # am Anfang einer Textzeile bedeutet, dass es auskommentiert ist und nicht vom Paketmanager überprüft wird.

So beheben Sie diese Fehler

Wenn Sie Sudo apt-get update von einem Terminal aus ausführen oder auf die Detailschaltfläche im Update Manager klicken, nachdem Sie auf die Aktualisierungsschaltfläche geklickt haben, werden in der Regel folgende Fehler angezeigt:

enter image description here

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.

enter image description here

Wenn der Fehler 404 auf ein zusätzliches Repository zurückzuführen ist, das zu /etc/apt/sources.list hinzugefügt wurde, ist es einfacher, # Zeichen an den Anfang der Zeile zu setzen, um das fehlerhafte Repository auszukommentieren, d. H.

gksu gedit /etc/apt/sources.list

enter image description here

Mehr Info

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

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

304
fossfreedom

Automatisches Entfernen von 404 Nicht gefundenen PPAs über das Skript

Dies ist ein Skript zum automatischen Entfernen aller nicht gefundenen 404-PPAs. 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 Datei ppa-remove und fügen Sie sie in das Verzeichnis /usr/bin ein. So können Sie von überall 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"

Der Befehl tput setaf 6 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 update werden in die Datei /tmp/update.txt geschrieben.

  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 nach der Zeile, die aus W:, launchpad, 404 in der /tmp/update.txt -Datei besteht. Wenn gefunden, werden in dieser Zeile alle Buchstaben (stdout) angezeigt Diese Standardausgabe wurde in die /tmp/awk.txt -Datei umgeleitet (geschrieben).

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 fünften Spalte beginnend mit dem 26. Zeichen pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Diese obige Zeile wurde in der /tmp/awk.txt -Datei gespeichert.

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

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

Jetzt enthält die Datei /tmp/awk1.txt die Zeile pitti/postgresql.

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

Wenn es zwei gleiche Zeilen gibt, zeigt der Befehl unique nur eine Zeile (stdout) an. Diese einzelne Zeile wurde in /tmp/awk2.txt geschrieben. Schließlich besteht /tmp/awk2.txt aus eindeutigen PPA-Namen.

tput sgr0

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

Schließlich werden if bedingte Anweisungen ausgeführt. if [ -s /tmp/awk2.txt ] Prüfe, ob der Inhalt der Datei /tmp/awk2.txt vorhanden ist oder nicht. Wenn ja, dann nimmt sie die erste Zeile von /tmp/awk2.txt und führt den Befehl Sudo add-apt-repository -r ppa:$line aus letzte Linie.

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

Screenshots

enter image description here

enter image description here

50
Avinash Raj

Diese Fehler treten auf, weil Ihre PPA-Repositorys keine Pakete für Ihre Ubuntu-Distribution bereitstellen (dh quantal).

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 quantal fehlt und Sie daher 404 Not Found Error Messages erhalten.

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-main_ PPA 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/_ und gehen Sie gemäß dem fehlerhaften Link tiefer. Sie könnten sehen, was das eigentliche Problem ist.

21
Aditya

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*
17
Braiam

Wählen Sie Älteres Repository

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

Bitte beachten Sie jedoch, dass nicht alle älteren Releases abwärtskompatibel ; 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 Ihr zu überprüfen Freisetzung.

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

Schritte

  1. Führen Sie nach dem Hinzufügen von PPA/Repository den normalen Sudo apt update aus. Sie können feststellen, dass beim Aktualisieren 404-Fehler auftreten. ignoriere das einfach. 404 Error
  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/. Mirrors
  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 ersetze ich bionic durch artful. enter image description here
  4. Mach Sudo apt update nochmal.
  5. Sie sind fertig! Jetzt haben Sie keine 404-Fehler mehr beim Aktualisieren Ihrer Paketlisten. enter image description here
  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.
4
Aryo Adhi

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. Führen Sie Sudo apt-get update vom Terminal aus.
  3. Aktivieren Sie Ihre PPAs erneut.
  4. Führen Sie Sudo apt-get update aus;

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

2
Danilo

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) Manuell bestimmen, indem diese Liste durchgesehen und der aktuellste Spiegel ausgewählt wird. (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 unten gezeigt 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

1
Elder Geek

Ich habe jede mögliche Antwort ausprobiert, aber die einzige Lösung bestand darin, die Datei buntu 16.04 Xenial default /etc/apt/sources.list in mein /etc/apt/sources.list zu kopieren.

Quellen: https://Gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Das hat mein Linux gerettet.

1
Damjan Pavlica