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

239

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?

    
posta Pedro 14.10.2011 - 03:16

8 risposte

283

Rimozione automatica

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

Che cosa 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 di software PPA che non esiste più
  2. Un utente ha digitato manualmente una nuova sorgente software in modo errato
  3. È stato aggiunto un PPA, ma il manutentore ha successivamente eliminato alcuni / tutti i PPA

dove sono queste sorgenti di software

I PPA in genere vengono salvati in una delle due posizioni

  1. /etc/apt/sources.list
  2. in un file con nome appropriato con estensione file .list in /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.

Come eliminare questi errori

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

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

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:

risposta data fossfreedom 05.01.2012 - 01:15
47

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

Uso

sudo ppa-remove

Descrizione script

[ -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
  1. 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

  2. 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".

Immagini

    
risposta data Avinash Raj 10.03.2014 - 19:08
20

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

Guarda le seguenti schermate:

ppa: petrakis / wdt-main

ppa: screenlets / ppa

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:

Come indagare su questo e giungere a questa conclusione?

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.

    
risposta data Aditya 16.02.2013 - 19:59
17

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*
    
risposta data Braiam 23.12.2013 - 19:08
3

Scegli il vecchio repository

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.

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.
  2. Apri la directory del repository che causa l'errore 404 con il tuo browser; in questo caso è https://dl.winehq.org/wine-builds/ubuntu . Di solito, le versioni disponibili si trovano in dists/ .
  3. Dopo averlo localizzato, apri Software & amp; Aggiorna 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, sostituisco bionic con artful .
  4. Esegui nuovamente sudo apt update .
  5. Hai finito! Ora non hai più 404 errori durante l'aggiornamento degli elenchi di pacchetti.
  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.
risposta data Aryo Adhi 23.05.2018 - 08:07
2

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:

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

E all'improvviso ha funzionato. Non chiedermi perché.

    
risposta data Danilo 19.11.2013 - 21:22
1

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.

    
risposta data Elder Geek 15.01.2017 - 15:57
0

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.

    
risposta data Damjan Pavlica 03.05.2018 - 13:06

Leggi altre domande sui tag