PPA sembra essere costantemente offline. Ogni volta che utilizzo sudo apt-get update
, viene visualizzato questo errore:
W: Failed to fetch http://ppa.launchpad.net/ 404 Not Found
Come posso correggere questi errori?
PPA sembra essere costantemente offline. Ogni volta che utilizzo sudo apt-get update
, viene visualizzato questo errore:
W: Failed to fetch http://ppa.launchpad.net/ 404 Not Found
Come posso correggere questi errori?
salta alla fine di questa risposta per un modo programmato per rimuovere le fonti di software offensivo per tutte le versioni di Ubuntu precedenti a Ubuntu 15.04
Il messaggio di errore 404 o non trovato è un codice di risposta standard HTTP indicando che il client era in grado di comunicare con il server, ma il server non è riuscito a trovare ciò che è stato richiesto.
Generalmente il server di hosting del sito web genera "404 - Page Not Trovato "pagina web, quando gli utenti tentano di seguire un link interrotto o morto.
In genere, tre aree principali causano questi errori in update-manager
I PPA in genere vengono salvati in una delle due posizioni
/etc/apt/sources.list
/etc/apt/sources.list.d/
ad esempio webupd8team-jupiter-natty.list
Questo file di elenco contiene in genere:
deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
Nota un #
nella parte anteriore di una riga di testo significa che è commentato e non è controllato dal gestore pacchetti.
In genere, se esegui sudo apt-get update
da un terminale o fai clic sul pulsante dei dettagli in Update Manager dopo aver premuto il pulsante di aggiornamento, vedrai errori come:
Se l'errore è dovuto a un PPA, in genere non è attivo il PPA con lo stesso nome e l'URL mostrato nel messaggio di errore lo risolverà.
Se l'errore 404 era dovuto a un repository aggiuntivo che è stato aggiunto a /etc/apt/sources.list
, è più semplice aggiungere #
carattere all'inizio della riga per commentare il repository offendente i.e.
gksu gedit /etc/apt/sources.list
Ho scritto uno script veloce che controlla PPA e Sorgenti software che presentano gli errori 404. Funziona per tutte le versioni di Ubuntu prima del 15.04. Per 15.04 e successivi eseguire i metodi manuali sopra descritti.
È nel mio PPA:
sudo add-apt-repository ppa:fossfreedom/packagefixes
sudo apt-get update
sudo apt-get install banish404
Puoi solo scaricare il pacchetto deb e installarlo direttamente:
wget https://launchpad.net/~fossfreedom/+archive/packagefixes/+files/banish404_0.1-4_all.deb
sudo dpkg -i banish404_0.1-4_all.deb
NB. è lo stesso pacchetto deb per tutte le distribuzioni.
Domande / commenti / miglioramenti per favore tramite link Contatti Launchpad
Come usare:
sudo banish404
Lo script eseguirà automaticamente il backup delle tue fonti prima della modifica - da trovare in /etc/apt
Ecco una segnalazione di bug sul gestore aggiornamenti per risolvere questo problema:
Se stai riscontrando questi problemi senza PPA, dai un'occhiata a questa domanda:
Questo è uno script per rimuovere automaticamente tutti i 404 PPA non trovati. Copiare il codice seguente e incollarlo in un file e denominarlo come 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
Dai il permesso di esecuzione allo script
sudo chmod +x ppa-remove
Copia e incolla il file ppa-remove
nella directory /usr/bin
. Puoi accedervi da qualsiasi luogo.
sudo ppa-remove
[ -f /tmp/update.txt ] && sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" || echo "No update file"
Il comando tput setaf 6
trasforma il colore del testo del terminale in verde. Quindi visualizza "Inizializzazione ... Attendi" in colore verde.
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;
Sia lo stdout che lo stderr del comando sudo apt-get update
sono scritti nel file /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 cerca la linea che consiste in W:
, launchpad
, 404
nel file /tmp/update.txt
. Se trova che in quella riga visualizza (stdout) tutte le lettere a partire dalla 26esima posizione in column5.Questo output standard è stato reindirizzato (scritto) al file /tmp/awk.txt
.
Ad esempio:
W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages 404 Not Found
5th coloumn - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
in quella quinta colonna inizia da 26 caratteri- pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
Questa riga precedente è stata memorizzata in /tmp/awk.txt
file.Ora il prossimo comando,
awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt;
awk trova la colonna1 e la colonna2 con il delimitatore /
dove la colonna1 e la colonna2 sono concatenate da /
dal file /tmp/awk.txt
e quindi reindirizza (scritto) lo stdout al file /tmp/awk1.txt
.
Il file /tmp/awk1.txt
contiene pitti/postgresql
line.
uniq /tmp/awk1.txt > /tmp/awk2.txt
Se ci sono due righe uguali, il comando unique
visualizza solo (stdout) solo la riga. Quella riga singola è stata scritta in /tmp/awk2.txt
Infine /tmp/awk2.txt
è costituito da nomi PPA univoci.
tput sgr0
Questo comando cambia il colore del testo del terminale in bianco.
Infine verranno eseguite le dichiarazioni condizionali if
. if [ -s /tmp/awk2.txt ]
controlla i contenuti del file /tmp/awk2.txt che presenta o no. Se sì, allora prende la prima riga da /tmp/awk2.txt
ed esegue il comando sudo add-apt-repository -r ppa:$line
. Continua fino all'ultima riga.
Se no, significa che non ci sono contenuti. Dice "Nessun PPA da rimuovere".
Riceverai questi errori perché i tuoi repository PPA non forniscono pacchetti per la tua distribuzione di Ubuntu (cioè quantal
).
Guarda le seguenti schermate:
Puoi vedere che la directory per quantal
è mancante e quindi stai ricevendo 404 Not Found Error Messages
.
Per eliminare questi messaggi devi rimuovere questi repository PPA dal tuo sistema. Segui questa domanda su come rimuovere i PPA:
Questi sono i messaggi di errore che ricevi per 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
Apri la scheda del browser e apri il link che fornisce 404 errori non rilevati. In questo caso http://ppa.launchpad.net/petrakis/
e vai più in profondità secondo il link che dà errori. Saresti in grado di vedere qual è il vero problema.
Il più probabile che accada è che il PPA non è più mantenuto e deve essere rimosso. Puoi farlo usando:
sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
Se hai davvero bisogno dei pacchetti dal repository quel , puoi usare i mirror dalla versione precedente.
Tuttavia, tieni presente che non tutte le versioni precedenti sono compatibili con le versioni precedenti ; alcuni di questi causano conflitti con il tuo repository principale di pacchetti.
L'unica cosa che puoi fare quando è in conflitto è costruire dalla sorgente o aspettare finché il provider non rilascia il repository per la tua versione di Ubuntu. Non sappiamo esattamente quando i fornitori di pacchetti rilasceranno il loro pacchetto per la nostra versione, quindi sei tu il responsabile di controllare il loro repository per il tuo rilascio.
Questo può essere usato con qualsiasi repository basato su Debian. Tuttavia, non vi è alcuna garanzia che questo avrà successo.
sudo apt update
dopo aver aggiunto PPA / repository. Si può notare che ci sono 404 errori durante l'aggiornamento; ignoralo.
https://dl.winehq.org/wine-builds/ubuntu
. Di solito, le versioni disponibili si trovano in dists/
.
bionic
con artful
.
sudo apt update
. Si noti che mi è già successo ed ero fuori da queste situazioni. E ha funzionato anche per un mio amico. Pur non essendo in grado di spiegare perché, c'è qualcosa che ha risolto il problema:
sudo apt-get update
dal terminale; sudo apt-get update
; E all'improvviso ha funzionato. Non chiedermi perché.
Se si verifica un errore 404 durante il tentativo di ottenere i file di sicurezza o di sistema da un repository ufficiale (non un PPA), è possibile scegliere un mirror diverso per risolvere il problema.
Puoi:
A) ne determina uno manualmente esaminando questo elenco e scegliendo il più aggiornato specchio. (potresti prendere in considerazione altri fattori come la distanza e la larghezza di banda) o
B) scegline uno automaticamente.
In ogni caso puoi iniziare con il software & amp; Aggiorna l'applicazione come mostrato di seguito: Quindi seleziona Scarica da seguito da Altro. Quindi puoi scegliere manualmente il mirror di tua scelta dall'elenco o fare clic sul pulsante Seleziona server migliore che eseguirà alcuni test e scegli il server migliore per te in base alle condizioni correnti.
Ho provato ogni possibile risposta, ma l'unica soluzione era copiare il Ubuntu 16.04 Xenial default /etc/apt/sources.list file sul mio /etc/apt/sources.list
.
Fonti: link
Questo ha salvato il mio Linux.
Leggi altre domande sui tag apt repository ppa