PPA wydaje się być stale offline. Ilekroć używam sudo apt-get update
, ten błąd jest wyświetlany:
W: Failed to fetch http://ppa.launchpad.net/ 404 Not Found
Jak naprawić te błędy?
PPA wydaje się być stale offline. Ilekroć używam sudo apt-get update
, ten błąd jest wyświetlany:
W: Failed to fetch http://ppa.launchpad.net/ 404 Not Found
Jak naprawić te błędy?
Odpowiedzi:
przejdź do dolnej części tej odpowiedzi, aby uzyskać skryptowy sposób usunięcia szkodliwych źródeł oprogramowania dla wszystkich wersji Ubuntu przed Ubuntu 15.04
Komunikat o błędzie 404 lub „Nie znaleziono” to standardowy kod odpowiedzi HTTP wskazujący, że klient był w stanie komunikować się z serwerem, ale serwer nie mógł znaleźć żądanego żądania.
Serwer hostujący witrynę sieci Web zazwyczaj generuje stronę „404 - Nie znaleziono strony”, gdy użytkownicy próbują użyć uszkodzonego lub martwego łącza.
Zazwyczaj trzy główne obszary powodują te błędy update-manager
Umowy PPA są zwykle zapisywane w jednej z dwóch lokalizacji
/etc/apt/sources.list
/etc/apt/sources.list.d/
na przykładwebupd8team-jupiter-natty.list
Ten plik listy zazwyczaj zawiera:
deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
Uwaga: #
na początku wiersza tekstu oznacza, że jest on zakomentowany i nie jest sprawdzany przez menedżera pakietów.
Zazwyczaj po uruchomieniu sudo apt-get update
z terminala lub kliknięciu przycisku szczegółów w Menedżerze aktualizacji po naciśnięciu przycisku odświeżania zobaczysz błędy, takie jak:
Jeśli błąd wynika z umowy PPA - zwykle odznaczenie PPA o podobnej nazwie z adresem URL pokazanym w komunikacie o błędzie rozwiązuje ten problem.
Jeśli błąd 404 był spowodowany dodaniem dodatkowego repozytorium, /etc/apt/sources.list
łatwiej jest dodać #
znak na początku wiersza, aby skomentować represyjne repozytorium, tj.
gksu gedit /etc/apt/sources.list
Oto raport o błędzie dotyczący menedżera aktualizacji, aby rozwiązać ten problem:
Jeśli występują te problemy bez umów PPA, sprawdź to pytanie:
Jest to skrypt, który automatycznie usuwa wszystkie 404 PPA Nie znaleziono PPA. Skopiuj poniższy kod i wklej go do pliku i nadaj mu nazwę 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
Udziel uprawnienia do wykonywania skryptu
sudo chmod +x ppa-remove
Skopiuj i wklej ppa-remove
plik do /usr/bin
katalogu, aby uzyskać do niego dostęp z dowolnego miejsca.
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
polecenie zamienia kolor tekstu terminala na zielony, a następnie wyświetla „Inicjowanie .. Proszę czekać” w kolorze zielonym.
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;
Zarówno stdout, jak i stderr polecenia sudo apt-get update
są zapisywane w pliku/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 wyszukuje dla linii, która składa się z W:
, launchpad
, 404
w /tmp/update.txt
file.If okazało się, że to w tym wierszu wyświetla (stdout) wszystkie litery począwszy od 26. miejscu w column5.This standardowe wyjście zostało przekierowanych (pisemne) do /tmp/awk.txt
pliku.
Na przykład:
W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages 404 Not Found
5. kolor - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
w tej piątej kolumnie zaczynamy od 26 znaku pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
Ta powyższa linia została zapisana w /tmp/awk.txt
pliku. Teraz następne polecenie,
awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;
awk znajduje kolumnę 1 i kolumnę 2 za pomocą separatora, w /
którym kolumna 1 i kolumna 2 są łączone /
z /tmp/awk.txt
pliku, a następnie przekierowuje (zapisuje) standardowe wyjście do /tmp/awk1.txt
pliku.
Teraz /tmp/awk1.txt
plik zawiera pitti/postgresql
linię.
uniq /tmp/awk1.txt > /tmp/awk2.txt
Jeśli są dwa takie same wiersze, unique
polecenie wyświetla tylko (standardowe wyjście) tylko jeden wiersz. Ten pojedynczy wiersz został zapisany w /tmp/awk2.txt
końcu /tmp/awk2.txt
składa się z unikalnych nazw PPA.
tput sgr0
To polecenie zmienia kolor tekstu terminala na biały.
W końcu if
zostaną wykonane instrukcje warunkowe. if [ -s /tmp/awk2.txt ]
sprawdź, czy zawartość pliku /tmp/awk2.txt jest wyświetlana, czy nie. Jeśli tak, pobiera pierwszy wiersz /tmp/awk2.txt
i wykonuje sudo add-apt-repository -r ppa:$line
polecenie. Kontynuuje aż do ostatniego wiersza.
Jeśli nie, oznacza to, że nie ma treści, więc mówi „Żadnych umów PPA do usunięcia”.
Otrzymujesz te błędy, ponieważ Twoje repozytoria PPA nie zapewniają pakietów dla twojej dystrybucji Ubuntu (tj; quantal
).
Spójrz na następujące zrzuty ekranu:
Możesz zobaczyć, że quantal
brakuje katalogu dla, a więc dostajesz 404 Not Found Error Messages
.
Aby pozbyć się tych wiadomości, musisz usunąć te repozytoria PPA ze swojego systemu. Wykonaj następujące pytanie, jak usunąć PPA:
Oto komunikaty o błędach otrzymane w przypadku 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
Otwórz kartę przeglądarki i otwórz link, który podaje błędy 404 nie znaleziono. W takim przypadku http://ppa.launchpad.net/petrakis/
idź głębiej jak na link, który daje błędy. Będziesz mógł zobaczyć, jaki jest rzeczywisty problem.
Najbardziej prawdopodobne jest to, że umowa PPA nie jest już utrzymywana i należy ją usunąć. Możesz to zrobić, używając:
sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
/etc/apt/sources.list
miejscu, w którym sprawdziłem, ale nie wiedziałem, że muszę też zajrzeć /etc/apt/sources.list.d/
... dzięki ..
Jeśli naprawdę potrzebujesz pakietów z tego repozytorium, możesz użyć kopii lustrzanych ze starszej wersji.
Należy jednak pamiętać, że nie wszystkie starsze wersje są kompatybilne wstecz ; niektóre z nich powodują konflikty z głównym repozytorium pakietów.
Jedyne, co możesz zrobić w przypadku konfliktu, to albo zbudować ze źródła, albo poczekać, aż dostawca zwolni repozytorium dla twojej wersji Ubuntu. Nie wiemy dokładnie, kiedy dostawcy pakietów udostępnią pakiet dla naszej wersji, więc to ty jesteś odpowiedzialny za sprawdzenie ich repozytorium pod kątem wydania.
Można tego używać z dowolnym repozytorium opartym na Debianie. Nie ma jednak gwarancji, że to się powiedzie.
sudo apt update
po dodaniu PPA / repozytorium. Podczas aktualizacji można zauważyć błędy 404; zignoruj to.
https://dl.winehq.org/wine-builds/ubuntu
. Zwykle dostępne wersje znajdują się w dists/
.
bionic
z artful
.
sudo apt update
jeszcze raz.Zauważ, że już mi się to przydarzyło i nie znalazłem się w takich sytuacjach. I działało to również dla mojego przyjaciela. Nawet nie będąc w stanie wyjaśnić, dlaczego istnieje coś, co rozwiązało ten problem:
sudo apt-get update
z terminala;sudo apt-get update
;I nagle zadziałało. Nie pytaj mnie dlaczego.
sudo apt-get update
i zadziałało idealnie.
Jeśli otrzymujesz błąd 404 podczas próby uzyskania bezpieczeństwa lub plików systemowych z oficjalnego repozytorium (nie PPA), możesz wybrać inne dublowanie, aby rozwiązać ten problem.
Możesz albo:
A) określ jedną ręcznie, przeglądając tę listę i wybierając najnowszą kopię lustrzaną. (możesz wziąć pod uwagę inne czynniki, takie jak odległość i przepustowość) lub
B) Wybierz jeden automatycznie.
Tak czy inaczej możesz zacząć od aplikacji Oprogramowanie i aktualizacje, jak pokazano poniżej: Następnie wybierz Pobierz z, a następnie Inne. Następnie możesz albo ręcznie wybrać z listy kopię lustrzaną, albo kliknąć przycisk Wybierz najlepszy serwer, który uruchomi niektóre testy i wybrać najlepszy serwer dla ciebie w zależności od aktualnych warunków.
Próbowałem wszystkich możliwych odpowiedzi, ale jedynym rozwiązaniem było skopiowanie domyślnego pliku /etc/apt/sources.list Ubuntu 16.04 Xenial do mojego /etc/apt/sources.list
.
Źródła: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1
To uratowało mojego Linuksa.