web-dev-qa-db-fra.com

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?

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?

259
Pedro

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

Généralement, trois domaines principaux sont à l’origine de ces erreurs dans update-manager

  1. Un utilisateur vient de mettre à niveau et a réactivé une source de logiciel PPA qui n'existe plus. enter image description here
  2. Un utilisateur a mal saisi manuellement une nouvelle source de logiciel enter image description here
  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 dans /etc/apt/sources.list.d/, par exemple webupd8team-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 # 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 packages.

Comment éliminer ces erreurs

En règle générale, si vous exécutez Sudo apt-get update à partir 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:

enter image description here

Si l'erreur est due à un PPA - Décochez généralement le PPA portant le même nom avec l'URL indiquée dans le message d'erreur pour résoudre le problème.

enter image description here

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

gksu gedit /etc/apt/sources.list

enter image description here

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:

302
fossfreedom

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 fichier ppa-remove dans le répertoire /usr/bin.Pour pouvoir y accéder de 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"

La commande tput setaf 6 transforme la couleur du texte du terminal en vert.Ensuite, elle affiche "Initializing ..Please Wait" 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 update sont é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 composée de W:, launchpad, 404 dans le fichier /tmp/update.txt.Si elle a constaté que cette ligne affiche alors (stdout) toutes les lettres à partir du 26ème emplacement de la colonne5.Ce résultat standard a été redirigé (écrit) dans le fichier /tmp/awk.txt.

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 commence à partir du 26ème caractère - pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Cette ligne ci-dessus a été stockée dans le fichier /tmp/awk.txt.Maintenant, la commande suivante,

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

awk découvre la colonne1 et la colonne2 avec le délimiteur / où la colonne1 et la colonne2 sont concaténées par /du fichier /tmp/awk.txt, puis redirige (écrit) la sortie standard vers le fichier /tmp/awk1.txt.

Le fichier /tmp/awk1.txt contient maintenant la ligne pitti/postgresql.

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

S'il y a deux mêmes lignes, la commande unique affiche (stdout) une seule ligne. Cette seule ligne a été écrite dans /tmp/awk2.txt Enfin, /tmp/awk2.txt est composé de noms PPA uniques.

tput sgr0

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

Enfin, les instructions conditionnelles if seront exécutées. if [ -s /tmp/awk2.txt ] vérifie le contenu du fichier /tmp/awk2.txt présent ou non. Si oui, il prend la première ligne de /tmp/awk2.txt et exécute la commande Sudo add-apt-repository -r ppa:$line.Il continue 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

enter image description here

enter image description here

50
Avinash Raj

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

Regardez les captures d'écran suivantes:

ppa: petrakis/wdt-main Launchpad logo

wdt-main

ppa: screenlets/ppa Launchpad logo

screenlets

Vous pouvez voir que le répertoire pour quantal est manquant et que vous obtenez donc 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-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

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

21
Aditya

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*
17
Braiam

Choisir ancien référentiel

Si vous avez vraiment besoin des packages de que le 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 compatibilité avec les versions antérieures ; 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 Libération.

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

Pas

  1. Effectuez Sudo apt update comme d'habitude aprè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. 404 Error
  2. Ouvrez le répertoire du référentiel qui provoque une erreur 404 avec votre navigateur. dans ce cas, il s'agit de https://dl.winehq.org/wine-builds/ubuntu. Habituellement, les versions disponibles se trouvent dans dists/. Mirrors
  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 bionic par artful. enter image description here
  4. Faites à nouveau Sudo apt update.
  5. Vous avez terminé! Maintenant, vous n'avez plus d'erreur 404 lors de la mise à jour de vos listes de paquets. enter image description here
  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.
4
Aryo Adhi

Notez que cela m'est déjà arrivé et que je n'étais pas dans 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. Exécutez Sudo apt-get update à partir du terminal;
  3. Activez vos PPA à nouveau;
  4. Run Sudo apt-get update;

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

2
Danilo

Si vous obtenez une erreur 404 lors de la tentative d'obtention des fichiers de sécurité ou 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.

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

Dans tous les cas, 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 exécutera certains tests et choisira le meilleur serveur pour vous en fonction des conditions actuelles.

SnU

1
Elder Geek

J'ai essayé toutes les réponses possibles, mais la seule solution consistait à copier le fichier buntu 16.04 Xenial par défaut /etc/apt/sources.list dans mon /etc/apt/sources.list.

Sources: https://Gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Cela a sauvé mon Linux.

1
Damjan Pavlica