Domanda Come posso risolvere un errore 404 quando utilizzo un PPA o aggiorno i miei elenchi di pacchetti?


PPA sembra essere costantemente offline. Ogni volta che uso sudo apt-get update, questo errore è mostrato:

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

Come posso correggere questi errori?


240
2017-10-14 01:16


origine


Dal momento che questa sembra essere una delle principali risposte "Failed to fetch", voglio solo sottolineare che questo può accadere anche con gli URL "partner" di Ubuntu nel sources.list; controlla i tuoi errori per vedere se sono quelli e prova a commentarli. Mi sono imbattuto in quel problema (e soluzione) di aggiornamento da Quetzal. - joseph_morris


risposte:


Rimozione automatizzata

salta in fondo a questa risposta per un modo programmato per rimuovere le fonti di software offensivo per tutte le versioni di Ubuntu precedenti a Ubuntu 15.04

Quali sono gli errori 404

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.

Quali sono le cause di questi errori in update-manager

In genere, tre aree principali causano questi errori in update-manager

  1. Un utente ha appena aggiornato e ha riattivato una sorgente software PPA che non esiste più enter image description here
  2. Un utente ha digitato manualmente una nuova sorgente software in modo errato enter image description here
  3. È stato aggiunto un PPA, ma il manutentore ha successivamente eliminato alcuni / tutti i PPA

dove sono queste fonti di software

I PPA vengono generalmente salvati in una delle due posizioni

  1. /etc/apt/sources.list 
  2. in un file con nome appropriato con estensione .list in /etc/apt/sources.list.d/ per 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 a # all'inizio di una riga di testo significa che è commentato e non viene controllato dal gestore pacchetti.

Come eliminare questi errori

In genere, se corri 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:

enter image description here 

Se l'errore è dovuto a un PPA - di solito deselezionando PPA con lo stesso nome con l'URL mostrato nel messaggio di errore, questo verrà risolto.

enter image description here 

Se l'errore 404 era dovuto a un repository aggiuntivo che è stato aggiunto a /etc/apt/sources.list quindi è più facile da aggiungere # carattere all'inizio della riga per commentare il repository offendente, ad es.

gksu gedit /etc/apt/sources.list

enter image description here

Rimozione di script per tutte le versioni di Ubuntu precedenti alla 15.04

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 semplicemente 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

N.B. è lo stesso pacchetto deb per tutte le distribuzioni.

Domande / commenti / miglioramenti per favore via Link Contatti di Launchpad

Come usare:

sudo banish404

Lo script eseguirà automaticamente il backup delle tue fonti prima della modifica - per trovarle /etc/apt

Ulteriori informazioni

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:


285
2018-01-05 00:15



Usando ora per risolvere il mio problema, spero che per la pace della mente sarebbe bello poter aggiungere un link [o una breve sezione] su come "ripristinare" dal backup, se necessario - Louis Maddox
Se rimuovi questi ppas, ciò implica che devi ottenere gli aggiornamenti pertinenti da qualche altra parte? - Addem
@fossfreedom Perché questo non funziona oltre il 15.04? - Mark Yisri
Ho usato la rimozione con script per ubutu 14.04. Ha funzionato alla grande. Molte grazie. - Mohit Mittal
Nota: la soluzione basata su script non funziona su Ubuntu Server senza impostare uno schermo (Testato su 14.04 LTS). - cerd


Rimozione automatica di 404 PPA non trovato attraverso lo script

Questo è uno script per rimuovere automaticamente tutti i 404 PPA non trovati. Copiare il codice seguente e incollarlo in un file e nominarlo 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($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

Dai il permesso di esecuzione allo script

sudo chmod +x ppa-remove

Copia e incolla il ppa-remove file in /usr/bin directory.Così che è possibile accedervi da qualsiasi luogo.

uso

sudo ppa-remove

Descrizione dello script

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

tput setaf 6 comando trasforma il colore del testo del terminale in verde. Quindi visualizza "Inizializzazione ... Attendi prego" in verde.

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;

    Entrambi stdout e stderr del comando sudo apt-get update sono scritti nel file /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 cerca la linea che consiste di W:,launchpad,404 nel /tmp/update.txt file.Se ha rilevato che in quella riga visualizza (stdout) tutte le lettere a partire dalla ventiseiesima posizione nella colonna5. Questo output standard è stato reindirizzato (scritto) al /tmp/awk.txtfile.

Per esempio:

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

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

in quella quinta colonna partiamo dal 26 ° personaggio- pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Questa riga sopra è stata memorizzata in /tmp/awk.txt file.Ora il prossimo comando,

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

awk trova la colonna1 e la colonna2 con il delimitatore / dove la colonna1 e la colonna2 sono concatenati da /dal /tmp/awk.txt file e quindi reindirizza (scritto) lo stdout a /tmp/awk1.txt file.

Adesso /tmp/awk1.txt il file contiene pitti/postgresql linea.

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

Se ci sono due linee uguali, unique comando visualizza (stdout) solo a riga singola. A cui è stata scritta una sola riga /tmp/awk2.txt Finalmente /tmp/awk2.txt consiste di nomi PPA unici.

tput sgr0

Questo comando cambia il colore del testo del terminale in bianco.

Finalmente if le dichiarazioni condizionali verranno eseguite. if [ -s /tmp/awk2.txt ] controlla il contenuto del file /tmp/awk2.txt che presenta o no. Se sì, allora prende la prima riga da /tmp/awk2.txt ed esegue sudo add-apt-repository -r ppa:$line comando. Continua fino all'ultima riga.

Se no, significa che non ci sono contenuti. Dice "Nessun PPA da rimuovere".

Screenshots

enter image description here

enter image description here


49
2018-03-10 18:08



/ usr / bin / ppa-remove: riga 32: errore di sintassi: fine del file inaspettata - Shravan40


Riceverai questi errori perché i tuoi repository PPA non forniscono pacchetti per la tua distribuzione di Ubuntu (es. quantal).

Guarda i seguenti screenshot:

ppa: Petrakis / WDT-principale Launchpad logo

wdt-main

PPA: Screenlets / ppa Launchpad logo

screenlets

Puoi vedere che la directory per quantal manca e quindi stai ricevendo 404 Not Found Error Messages.

Per sbarazzarsi di questi messaggi è necessario rimuovere questi repository PPA dal proprio sistema. Segui questa domanda su come rimuovere i PPA:


Come indagare su questo e arrivare a questa conclusione?

Questi sono i messaggi di errore ricevuti 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 andare più in profondità secondo il link che dà errori. Saresti in grado di vedere qual è il vero problema.


20
2018-02-16 18:59





Il più probabile che accada è che il PPA non è più mantenuto e deve essere rimosso. Puoi farlo usando solo:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*

17
2017-12-23 18:08



questo mi ha appena salvato una doppia domanda da postare. Avevo il corpo del mio Q pronto e appena ho iniziato a digitare il mio titolo ho trovato il link .. perché non tengono tutta la lista in un posto! ce ne sono alcuni elencati in /etc/apt/sources.list dove ho fatto check ma non sapevo che dovevo guardare dentro /etc/apt/sources.list.d/ anche .. grazie .. - precise
questo e poi l'aggiunta del nuovo PPA corretto si è rivelata la migliore (solo lavoro) soluzione per me. - markus-tharkun


Scegli il vecchio repository

Se hai davvero bisogno dei pacchetti da quella repository, è possibile utilizzare i mirror della versione precedente.

Tuttavia, si ricorda che non tutte le versioni precedenti sono retrocompatibile; alcuni di questi causano conflitti con il repository del pacchetto principale.

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 lo 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 la tua versione.

Questo può essere usato con qualsiasi repository basato su Debian. Tuttavia, non vi è alcuna garanzia che questo avrà successo.

passi

  1. Fai il solito sudo apt update dopo aver aggiunto PPA / repository. Si può notare che ci sono 404 errori durante l'aggiornamento; ignoralo. 404 Error
  2. Aprire la directory del repository che causa l'errore 404 con il browser; in questo caso lo è https://dl.winehq.org/wine-builds/ubuntu. Di solito, le versioni disponibili si trovano in dists/. Mirrors
  3. Dopo averlo localizzato, apri Software e aggiornamenti e sostituisci il nome della tua versione con la versione disponibile; preferibilmente ultimo o LTS. Sostituisci la sezione "Distribuzione" in specchi binari e codice sorgente. In questo caso, sto sostituendo bionic con artful. enter image description here
  4. Fare sudo apt update ancora.
  5. Hai finito! Ora non hai più 404 errori durante l'aggiornamento degli elenchi di pacchetti. enter image description here
  6. Quando vengono rilasciati i pacchetti per la tua versione di Ubuntu, ripeti i passaggi 3 e 4 sostituendo la sezione "Distribuzione" con il nome della tua distribuzione.

4
2018-05-23 06:07





Nota che è già successo a me e io 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:

  1. Disabilita tutti i tuoi PPA;
  2. Correre sudo apt-get update dal terminale;
  3. Abilita nuovamente i tuoi PPA;
  4. Correre sudo apt-get update;

E improvvisamente ha funzionato. Non chiedermi perchè.


2
2017-11-19 20:22



Non ha fatto differenza per me Ancora 404s. - kwoxer
Ho disabilitato alcuni PPA indesiderati e ho provato sudo apt-get update e ha funzionato perfettamente. - Shashanth


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:

UN) determinarne una manualmente esaminando questa lista e scegliendo lo specchio più attuale. (potresti prendere in considerazione altri fattori come la distanza e la larghezza di banda) o

B) Scegli uno automaticamente.

In ogni caso è possibile iniziare con l'applicazione Software e aggiornamenti come mostrato di seguito: Quindi selezionare 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.

SnU


1
2018-01-15 14:57





Ho provato ogni possibile risposta, ma l'unica soluzione era copiare il file Ubuntu 16.04 Xenial predefinito /etc/apt/sources.list  file al mio /etc/apt/sources.list.

fonti: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Questo ha salvato il mio Linux.


0
2018-05-03 11:06