Comment puis-je réparer une erreur 404 lors de l'utilisation d'un PPA ou de la mise à jour de mes listes de paquets?

266

PPA semble être constamment hors ligne. Chaque fois que j'utilise sudo apt-get update, cette erreur est affichée:

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

Comment corriger ces erreurs?

Pedro
la source
Comme cela semble être l’une des principales réponses "Échec de la récupération", je tiens simplement à souligner ici que cela peut également se produire avec les URL "partenaires" d’Ubuntu dans le fichier sources.list; vérifiez vos erreurs pour voir si ce sont celles-là et essayez de les commenter. J'ai rencontré ce problème (et la solution) lors de la mise à niveau de Quetzal.
joseph_morris

Réponses:

305

Enlèvement automatisé

passez au bas de cette réponse pour une méthode scriptée de suppression des sources de logiciels incriminées pour toutes les versions d'ubuntu antérieures à Ubuntu 15.04

Quelles sont les erreurs 404

Le message d'erreur 404 ou introuvable est un code de réponse standard HTTP indiquant que le client a été en mesure de communiquer avec le serveur, mais que celui-ci n'a pas pu trouver ce qui avait été demandé.

Le serveur d'hébergement de site Web génère généralement une page Web "404 - Page non trouvée", lorsque les utilisateurs tentent de suivre un lien brisé ou mort.

Quelles sont les causes de ces erreurs dans update-manager

En règle générale, trois domaines principaux sont à l’origine de ces erreurs. update-manager

  1. Un utilisateur vient de mettre à niveau et a réactivé une source de logiciel PPA qui n'existe plus. entrez la description de l'image ici
  2. Un utilisateur a mal saisi manuellement une nouvelle source de logiciel entrez la description de l'image ici
  3. Un PPA a été ajouté, mais le responsable a ensuite supprimé tout / partie du PPA.

où sont ces sources de logiciels

Les PPA sont généralement enregistrés dans l'un des deux emplacements

  1. /etc/apt/sources.list
  2. dans un fichier nommé de manière appropriée avec une extension de fichier .list, /etc/apt/sources.list.d/par exemplewebupd8team-jupiter-natty.list

Ce fichier liste contient généralement:

deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main

Notez qu'un a #au début d'une ligne de texte signifie qu'il est mis en commentaire et n'est pas vérifié par le gestionnaire de paquets.

Comment éliminer ces erreurs

En règle générale, si vous exécutez à sudo apt-get updatepartir d'un terminal ou cliquez sur le bouton de détails dans Update Manager après avoir cliqué sur le bouton d'actualisation, des erreurs telles que:

entrez la description de l'image ici

Si l'erreur est due à un PPA - généralement, décochez cette option avec l'URL indiquée dans le message d'erreur pour résoudre le problème.

entrez la description de l'image ici

Si l'erreur 404 était due à un référentiel supplémentaire ajouté, /etc/apt/sources.listil est plus facile d'ajouter un #caractère au début de la ligne pour commenter le référentiel incriminé, c'est-à-dire

gksu gedit /etc/apt/sources.list

entrez la description de l'image ici

Plus d'informations

Voici un rapport de bogue sur le gestionnaire de mise à jour pour résoudre ce problème:

Si vous rencontrez ces problèmes sans PPA, consultez cette question:

fossfreedom
la source
Merci beaucoup.
Andrews B Anthony le
51

Suppression automatique des PPA 404 Introuvables à l'aide d'un script

Ceci est un script pour supprimer automatiquement tous les PPAs non trouvés. Copiez le code ci-dessous, collez-le dans un fichier et nommez-le 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

Donner l'autorisation d'exécution au script

sudo chmod +x ppa-remove

Copiez et collez le ppa-removefichier dans le /usr/binrépertoire.Ainsi, vous pourrez y accéder depuis n'importe où.

Usage

sudo ppa-remove

Description du script

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

tput setaf 6 La commande transforme la couleur du texte du terminal en vert.Ensuite, elle affiche "Initialisation ..Veuillez patienter" en couleur verte.

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;

    Stdout et stderr de la commande sudo apt-get updatesont écrits dans le fichier/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 recherche la ligne qui consiste W:, launchpad, 404dans le /tmp/update.txtfile.If il a constaté que puis dans cette ligne affiche (stdout) toutes les lettres à partir de l'emplacement 26 en column5.This sortie standard a été redirigée (écrit) au /tmp/awk.txtfichier.

Par exemple:

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

5ème colonne - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

dans cette 5ème colonne commencent à partir de 26 pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Cette ligne ci-dessus a été enregistrée dans /tmp/awk.txtfile.Maintenant, la commande suivante,

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

awk découvre les colonnes column1 et column2 avec le délimiteur dans /lequel les colonnes column1 et column2 sont concaténées à /partir du /tmp/awk.txtfichier, puis redirige (écrit) la sortie standard vers le /tmp/awk1.txtfichier.

Maintenant le /tmp/awk1.txtfichier contient la pitti/postgresqlligne.

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

S'il y a deux mêmes lignes, la uniquecommande affiche (stdout) une seule ligne uniquement. Cette ligne unique a été écrite dans /tmp/awk2.txt Finally contient des /tmp/awk2.txtnoms uniques de PPA.

tput sgr0

Cette commande change la couleur du texte du terminal en blanc.

Enfin if, les instructions conditionnelles seront exécutées. if [ -s /tmp/awk2.txt ]vérifie le contenu du fichier /tmp/awk2.txt, present ou non. Si oui, alors il prend la première ligne /tmp/awk2.txtet exécute la commande. Il sudo add-apt-repository -r ppa:$linecontinue jusqu'à la dernière ligne.

Si non, cela signifie qu'il n'y a pas de contenu.Ainsi, il est écrit "Aucun PPA à supprimer".

Captures d'écran

entrez la description de l'image ici

entrez la description de l'image ici

Avinash Raj
la source
/ usr / bin / ppa-remove: ligne 32: erreur de syntaxe: fin de fichier inattendue
Shravan40
21

Vous obtenez ces erreurs parce que vos référentiels PPA ne fournissent pas de paquet pour votre distribution d'Ubuntu (c'est-à-dire; quantal).

Regardez les captures d'écran suivantes:

ppa: petrakis / wdt-main Logo du tableau de bord

wdt-main

ppa: screenlets / ppa Logo du tableau de bord

des screenlets

Vous pouvez voir que le répertoire pour quantalest manquant et par conséquent vous obtenez 404 Not Found Error Messages.

Pour vous débarrasser de ces messages, vous devez supprimer ces référentiels PPA de votre système. Suivez cette question sur la façon de supprimer les AAE:


Comment étudier cela et arriver à cette conclusion?

Voici les messages d'erreur que vous recevez pour wdt-mainPPA:

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

Ouvrez l'onglet de votre navigateur et ouvrez le lien qui donne 404 Erreurs introuvables. Dans ce cas http://ppa.launchpad.net/petrakis/, allez plus loin selon le lien qui donne des erreurs. Vous seriez capable de voir quel est le problème réel.

Aditya
la source
17

Le plus probable est que le contrat d'achat d'électricité n'est plus maintenu et doit être supprimé. Vous pouvez le faire en utilisant simplement:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
Braiam
la source
3
cela a juste sauvé une question dupliquée d'être postée .. J'avais le corps de mon Q prêt et juste au moment où je commençais à taper mon titre, j'ai trouvé le lien .. pourquoi ne gardaient-ils pas toute la liste à un endroit! il y en a qui sont listés dans /etc/apt/sources.listlesquels j'ai vérifié mais je ne savais pas que je devais regarder /etc/apt/sources.list.d/aussi .. merci ..
précis
Ceci, puis l’ajout du nouveau PPA approprié s’est avéré être la meilleure solution (qui ne fonctionne que) pour moi.
Markus-tharkun
4

Choisir ancien référentiel

Si vous avez vraiment besoin des packages de ce référentiel, vous pouvez utiliser les miroirs de la version précédente.

Cependant, veuillez noter que toutes les versions plus anciennes ne sont pas rétrocompatibles ; certaines d'entre elles provoquent des conflits avec votre référentiel de packages principal.

La seule chose que vous puissiez faire en cas de conflit est de créer à partir des sources ou d'attendre que le fournisseur publie le référentiel de votre version d'Ubuntu. Nous ne savons pas exactement quand les fournisseurs de paquets publieront leur paquet pour notre version, vous êtes donc responsable de vérifier leur référentiel pour votre version.

Ceci peut être utilisé avec n’importe quel référentiel basé sur Debian. Cependant, rien ne garantit que cela réussira.

Pas

  1. Faites d'habitude sudo apt updateaprès l'ajout de PPA / référentiel. Vous pouvez remarquer qu'il y a 404 erreurs lors de la mise à jour; ignorez simplement ceci. Erreur 404
  2. Ouvrez le répertoire du référentiel qui provoque une erreur 404 avec votre navigateur. dans ce cas c'est https://dl.winehq.org/wine-builds/ubuntu. Les versions disponibles se trouvent généralement dans dists/. Miroirs
  3. Une fois que vous l'avez localisée, ouvrez Logiciels et mises à jour et remplacez le nom de votre version par la version disponible. de préférence plus tard ou LTS un. Remplacez la section 'Distribution' dans les miroirs de code source et binaire. Dans ce cas, je remplace bionicpar artful. entrez la description de l'image ici
  4. Faites à sudo apt updatenouveau.
  5. Vous avez terminé! Maintenant, vous n'avez plus d'erreur 404 lors de la mise à jour de vos listes de paquets. entrez la description de l'image ici
  6. Lorsque les packages de votre version Ubuntu sont publiés, répétez les étapes 3 et 4 en remplaçant la section 'Distribution' par votre nom de distribution.
Aryo Adhi
la source
2

Notez que cela m'est déjà arrivé et que j'étais hors de ces situations. Et cela a également fonctionné pour un de mes amis. Même ne pas être en mesure d'expliquer pourquoi, il y a quelque chose qui a résolu ce problème:

  1. Désactivez tous vos AAE;
  2. Courir sudo apt-get updatedu terminal;
  3. Activez vos PPA à nouveau;
  4. exécuter sudo apt-get update;

Et tout à coup cela a fonctionné. Ne me demande pas pourquoi.

Danilo
la source
Ne fait aucune différence pour moi. Encore 404s.
Kwoxer
J'ai désactivé certains PPA indésirables et j'ai essayé sudo apt-get updateet cela fonctionnait parfaitement.
Shashanth
1

Si vous obtenez une erreur 404 lors de la tentative d'obtention des fichiers de sécurité ou du système à partir d'un référentiel officiel (et non d'un PPA), vous pouvez choisir un autre miroir pour résoudre ce problème.

Vous pouvez soit:

A) déterminez-en un manuellement en consultant cette liste et en choisissant le miroir le plus récent. (vous voudrez peut-être prendre en compte d’autres facteurs tels que la distance et la bande passante) ou

B) Choisissez-en un automatiquement.

De toute façon, vous pouvez démarrer avec l'application Logiciels et mises à jour comme indiqué ci-dessous: Sélectionnez ensuite Télécharger depuis puis Autre. Ensuite, vous pouvez choisir manuellement le miroir de votre choix dans la liste ou cliquer sur le bouton Sélectionner le meilleur serveur, qui lancera des tests et choisira le meilleur serveur pour vous en fonction des conditions actuelles.

SnU

Elder Geek
la source