web-dev-qa-db-fra.com

Comment réparer "W: Duplicate sources.list entry"?

Je continue à recevoir cet avertissement chaque fois que j'essaie d'exécuter Sudo apt-get update.

W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise-updates_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Vous trouverez ci-dessous la sortie du fichier /etc/apt/sources.list:

deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted

deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted

deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

deb http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted
deb http://archive.ubuntu.com/ubuntu precise-security universe
deb-src http://archive.ubuntu.com/ubuntu precise-security universe
deb http://archive.ubuntu.com/ubuntu precise-security multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-security multiverse

Comment je le répare?

189
hsinxh

Votre source.list a vraiment des entrées en double.

Voyons d'abord la forme correcte d'une ligne de référentiel ou d'une ligne source:

Le format correct de la ligne source du référentiel est

<type of repository>  <location>  <dist-name> <components> 

Par exemple, une ligne de prise en pension peut être comme celle-ci

  deb http://archive.ubuntu.com/ubuntu precise main

Ici, cela signifie que le référentiel est pour les paquets binaires, qui sont hébergés dans http://archive.ubuntu.com/ubunt et que ce référentiel est pour Ubuntu precise (12.04) et que ce référentiel contient les (logiciel officiellement supporté par Canonical).

  • Type: Le type peut être debet deb-src. debdésigne un référentiel binaire où deb-src désigne un référentiel source

  • Emplacement: http://archive.ubuntu.com/ubuntu emplacement du référentiel.

  • Dist-name: Nom de la distribution de la version Ubuntu. Pour Ubuntu 12.04, il s'agit de precisename__, pour 11.10, il s'agit de oneiricname__.
    Vous pouvez visiter le wiki Ubuntu pour afficher une version mise à jour liste des versions d'Ubuntu et leurs noms de code .

  • Composant: Il peut s'agir de mainname__, universename__, multiverseet restrictedname__. Ces mots indiquent le niveau de prise en charge des packages et le statut de la licence.

Voir cette page pour plus d'informations.

Veuillez noter que vous pouvez ajouter un ou plusieurs composants dans une ligne, de sorte que "principal", "univers", "restreint" et "multivers" puissent figurer dans un seul line. Notez également que, bien que vous ajoutiez plusieurs composants sur une seule ligne, le système APT les considère comme une ligne séparée ne contenant qu'un seul composant.

Donc, si votre sources.list a une ligne comme celle-ci

deb http://archive.ubuntu.com/ubuntu precise universe

Ensuite, il ne peut pas y avoir une autre ligne comme celle ci-dessous (qui contient vos fichiers)

deb http://archive.ubuntu.com/ubuntu precise main universe

qui est équivalent de ces deux lignes

deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe

Parce que vous dupliquez nivers deux fois, il y aura donc une erreur pour ce duplicata. Une erreur sera donnée pour chaque duplicata trouvé.

Solution:

Après avoir analysé votre fichier sources.list, j’ai trouvé que c’est un fichier de base fourni par Ubuntu par défaut. Vous pouvez créer un fichier par défaut en suivant la procédure suivante:

  1. Ouvrez un terminal et renommez d'abord le fichier sources.list existant en fichier sources.list.bak. (Nous pouvons le supprimer en toute sécurité, mais la prudence est de mise).

     Sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Puis ouvrez software-properties-gtk pour en créer un nouveau. Tapez la commande ci-dessous dans une commande de terminal ou de tiret. Invite en appuyant sur Alt+F2

    software-properties-gtk
    

    Remarque: pour Ubuntu version 11.10 ou antérieure, vous devez utiliser gksuavant la commande software-properties-gtk

  3. Après que la fenêtre est ouverte,

    • Sélectionnez les quatre catégories dans l'onglet Logiciel Ubuntu
    • Sélectionnez précision-sécurité, précision-mises à jour et précision-backports catégorie dans Mises à jour onglet.
    • Sélectionnez la catégorie Partenaire canonique et Indépendante à partir de l'onglet Autre logiciel .

C'est tout. Vous avez maintenant un fichier par défaut sources.list sans erreur. Comparez ce fichier avec le précédent, si vous voulez.


Mise à jour pour traiter les fichiers de sources.list.d dir

Parfois, une entrée en double peut se trouver dans un fichier du répertoire /etc/apt/sources.list.d, également utilisé par APT. Donc, vous devriez regarder ce répertoire et voir s'il y a des doublons dans ces fichiers. Il n'est pas nécessaire que les doublons se trouvent dans le même fichier.

Exemple de cas:

Un utilisateur avait ce message d'erreur affiché en faisant Sudo apt-get update.

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main AMD64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-AMD64_Packages)
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Mais il n'y avait aucune entrée avec http://dl.google.com dans le fichier principal /etc/apt/sources.list. En regardant le répertoire /etc/apt/sources.list.d/, nous avons trouvé ces fichiers:

sortie de ls /etc/apt/sources.list.d/:

aims-sagemath-precise.list
aims-sagemath-precise.list.save
dropbox.list
dropbox.list.save
fossfreedom-packagefixes-precise.list
fossfreedom-packagefixes-precise.list.save
google-chrome.list
google-chrome.list.save
google.list
google.list.save
sagemath-monolithic-precise.list
sagemath-monolithic-precise.list.save

Les fichiers google-chrome.list et google.list étaient de bons candidats pour contenir des doublons. Donc, vérifier le contenu des deux fichiers était nécessaire.

Sortie de cat /etc/apt/sources.list.d/google-chrome.list:

deb http://dl.google.com/linux/chrome/deb/ stable main  

et de cat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

Donc, il y avait un doublon dans les sources d'Apt. Étant donné que google-chrome.list ne contient qu'une seule ligne apt et que celle-ci était également répertoriée dans le fichier google.list, nous pouvons supprimer ce fichier en toute sécurité avec la commande

Sudo rm /etc/apt/sources.list.d/google-chrome.list

Ensuite, le problème a été résolu.

228
Anwar

Pour Ubuntu 12.04

Graphiquement:

Presse Alt + F2 et collez software-properties-gtk (ou vous pouvez ouvrir "Centre logiciel" puis aller dans "Edition"> "Sources logicielles"). Allez à l'onglet "Autres logiciels", choisissez l'entrée en double et appuyez sur le bouton "Supprimer".

enter image description here


Si vous avez besoin d'une option de ligne de commande, la voici:

cat /etc/apt/sources.list | Perl -ne '$H{$_}++ or print' > /tmp/sources.list && Sudo mv /tmp/sources.list /etc/apt/sources.list  

La commande fait ceci:

cat lit le fichier et passe le contenu à Perl qui supprime les lignes en double. Le résultat est ensuite enregistré > dans un fichier temporaire, qui est ensuite déplacé pour remplacer le fichier /etc/apt/sources.list d'origine.

79
desgua

Quelle est la gravité des entrées en double dans sources.list?

Je ne sais pas à quel point c'est mauvais, mais je n'aime pas Sudo apt-get update me montre les entrées en double.

Soit dit en passant, ce n’est pas si grave, il vous montre simplement que vous avez des entrées en double.

SourcesList

Le fichier sources.list est un facteur clé lors de l'ajout ou de la mise à niveau d'applications à votre installation Ubuntu. Ceci est également utilisé par votre système pour les mises à jour du système. Le fichier est essentiellement la feuille de route de votre système pour savoir où il peut télécharger des programmes pour l’installation ou la mise à niveau.

C'est comme la mise à jour Windows

Vous pouvez supprimer les entrées en double en quelques étapes faciles avec Y PPA Manager

 Sudo add-apt-repository ppa:webupd8team/y-ppa-manager -y
 Sudo apt-get update
 Sudo apt-get install y-ppa-manager -y

Ouvrir y-ppa-manager formulaire Dash

Entrez votre mot de passe administrateur

enter image description here

Double-cliquez sur Avancé

enter image description here

Numériser et supprimer les PPA en double et cliquer sur OK

enter image description here

Cela prendra du temps (1 ou 2 minutes) Pour numériser et supprimer les PPA en double

24
Qasim

Le référentiel partenaire est dupliqué dans /etc/apt/sources.list et /etc/apt/sources.list.d/precise-partner.list.

Supprimez simplement ces fichiers "partenaire précis" car le référentiel partenaire est déjà présent dans sources.list.

Sudo rm /etc/apt/sources.list.d/precise-partner.*
16
Eric Carvalho

Faites une copie de sauvegarde de votre sources.list:

Sudo cp /etc/apt/sources.list{,.backup}

Maintenant, supprimez l'original et mettez à jour:

Sudo rm /etc/apt/sources.list && Sudo apt-get update
10
wojox

J'ai eu le même problème, les sources de logiciels ouverts. décoché "Partenaires Canoniques". Le conflit est entre "Partenaires Canonical" et "Partenaires Canonical Ajouté par logiciel Center"

8
Amjed

Si vous ne parvenez pas à le comprendre dans votre source.list, procédez comme suit:

  1. Cliquez avec le bouton gauche de la souris sur l'icône des paramètres (dans le coin supérieur extrême de votre écran) et sélectionnez Paramètres du système.
  2. Cliquez sur Sources de logiciels et accédez à Autres logiciels.
  3. Décochez l'un des logiciels "Canonical Partners (Code source)" fourni par Canonical pour les fichiers de leurs partenaires et l'un des logiciels "Canonical Partners" fourni par Canonical pour les fichiers de leurs partenaires, puis cliquez sur Fermer pour quitter.
  4. Appuyez simultanément sur CTRL + ALT + T clés pour ouvrir le terminal et tapez Sudo apt-get update.
7
all4naija

10.10 et plus tôt

Applications> Centre du logiciel Ubuntu> Édition> Sources du logiciel> Autres logiciels

OR

Système> Administration> Gestionnaire de paquets Synaptic> Paramètres> Référentiels

Software Sources config window

Sélectionnez et supprimez les entrées en double.

6
Sid

Pour Ubuntu 9.10 - 12.04

Il existe une application appelée Y-PPA-Manager qui peut le faire et bien plus encore.

Vous pouvez l'installer comme ça depuis un terminal:

Sudo add-apt-repository ppa:webupd8team/y-ppa-manager
Sudo apt-get upgrade
Sudo apt-get install y-ppa-manager

Après cela, lancez simplement l'application et accédez au menu Avancé.

enter image description here

Puis sélectionnez "Analyser et supprimer les PPA en double" et cliquez sur OK.

enter image description here

5
rearlight

On dirait que vous avez deux lignes identiques dans votre fichier /etc/apt/sources.list.

Allez au terminal et entrez Sudo editor /etc/apt/sources.list, puis recherchez les lignes identiques dans ce fichier et, si vous les trouvez, supprimez-les. Une fois que vous avez terminé, enregistrez et quittez, puis exécutez Sudo apt-get update et cela devrait résoudre votre problème.

Si cela ne résout pas votre problème, vous devrez utiliser une approche par essais et erreurs. Tout d’abord, créez une sauvegarde de votre fichier sources.list, puis dans le fichier réel, mettez en commentaire ou supprimez chaque ligne, enregistrez et apt-get updateing après que chaque ligne ait été commentée ou supprimée. En parcourant ce fichier ligne par ligne en commentant différentes lignes, vous pourrez éventuellement savoir quelle ligne est la plus superflue. N'oubliez pas de ne commenter aucune des lignes que vous avez commentées si apt-get update affiche toujours le même message, faute de quoi votre fichier sources.list restera sans aucune source.

4
Jeff Welling

J'ai cherché un tel outil, mais je n'en ai trouvé aucun ...
J'ai donc fini par en coder un moi-même avec PHP.

Désolé pour le code source non organisé sale.

chkdup - Capture d'écran:

enter image description here

Auteur

Mubarak Alrashidi (DeaDSouL)

Exigences:

  1. PHP.
  2. Sudo.

Installation:

  1. Ouvrez le terminal.
  2. Pour installer PHP si vous ne l'avez pas, tapez: Sudo apt-get install php5 php5-cli.
  3. Téléchargez le chkdup .
  4. Extrayez le fichier où vous voulez.
  5. Tapez: Sudo sh install.sh.

Désinstaller:

  1. Ouvrez le terminal.
  2. Accédez au chemin dans lequel vous avez extrait l'outil.
  3. Tapez: Sudo sh uninstall.sh.

Comment l'utiliser:

Ouvrez simplement le terminal et tapez Sudo chkdup.

FAQ:

Que fait l'install.sh?

  • Le programme d'installation déplacera le chkdup.php vers le /opt/ et créera un lien symbolique dans le /usr/bin/.

Qu'en est-il du fichier uninstall.sh?

  • Le programme de désinstallation supprimera les fichiers suivants:

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. lui-même uninstall.sh

Est-il prudent d'utiliser chkdup?

  • Oui, car il faut une sauvegarde du fichier sources.list actuel avant de tenter quoi que ce soit. Mais je ne suis pas responsable si quelque chose s'est passé. La pleine responsabilité sera à vous.

Licence

Licence publique générale GNU

4
DeaDSouL

Avez-vous vérifié ls /etc/apt/sources.list.d/? Peut-être que vous avez des dépôts "supplémentaires"?

3
koni_raid

Installez Ubuntu-Tweak et supprimez les entrées en double.

Sudo add-apt-repository ppa:tualatrix/ppa
Sudo apt-get update
Sudo apt-get install ubuntu-Tweak

alt text

2
karthick87

Utilisez le Générateur de liste de sources Ubunt .

  • Exécutez Sudo -H nautilus dans le terminal
  • Trouver /etc/apt/sources.list
  • Faites un clic droit et ouvrez le fichier avec un éditeur de texte (si vous cliquez dessus, cela ouvrira l'interface graphique des sources du logiciel)
  • Copiez et collez simplement dans le sources.list et sauvegardez.
  • Quittez le terminal et vous avez terminé.

Google semble avoir un problème, alors je suggérerais de le laisser de côté. Je l’ai fait sous Ubuntu 12.10 (version Studio avec bureau Ubuntu ajouté et connexion Unity pour un autre bureau).

1
studiofreak

J'essaie de compléter les possibilités offertes par d'autres utilisateurs utilisant un terminal, puisque c'est ce que vous avez demandé, principalement:

connectez-vous si vous utilisez une installation texte ou appuyez sur Alt+F2 et tapez gnome-terminal si vous utilisez l'interface graphique

Puis tapez

Sudo nano /etc/apt/sources.list

(Pour mieux comprendre: dans le répertoire /etc vous pouvez trouver (presque) tous les fichiers de configuration de votre ordinateur et dans le répertoire apt vous trouverez le fichier souces.list qui contient tous les référentiels que APT utilise pour mettre à jour ou installer et mise à niveau du logiciel)

Editez le fichier en supprimant ou en commentant avec # au début de la ligne les lignes dupliquées.

Presse Ctrl+X pour sortir et appuyez sur y pour sauvegarder le fichier (ou n quitter sans sauvegarder).

Puis mettez à jour pour voir si vous l'avez corrigé:

Sudo apt-get update

S'amuser!

1
Pitto

Non, il n'y a pas une seule ligne de commande pour rechercher et supprimer les entrées dupliquées dans le fichier /etc/apt/sources.list.

En effet, les lignes de commande suggérées, qui ne font que dupliquer la fonction de la commande beaucoup plus simple et intégrée uniq, ne fonctionneront que sur un fichier SORTED et ne supprimeront que les lignes ADJACENT. De plus, ces commandes ne supprimeront que les lignes composées d'un chaîne de caractères identique.

Les entrées en double signalées par apt-get update seront composées d'entrées en double fonction, par exemple un référentiel inclus dans ses variantes i386 et AMD64. Le moyen le plus simple et le plus efficace de les supprimer est de noter les dépôts référencés comme étant des doublons par apt-get update et de les supprimer via le Software Center. Ouvrez-le et choisissez Éditer -> Sources de logiciels -> onglet Autres logiciels. Il suffit de rechercher les entrées en double et de les décocher. (C’est également l’occasion de supprimer les référentiels source-code si vous ne compilez pas les packages).

Toutefois, il convient de noter que apt-get update ne recherche pas uniquement les entrées en double via sources.list, mais inclut les fichiers de référentiel situés dans /var/lib/apt/lists/. Supprimer les entrées en double à partir de là ne supprimera que temporairement les messages d'erreur apt-get update si Ubuntu pense en avoir besoin, car les fichiers seront automatiquement réinstallés. Le fait que apt-get update signale que certains référentiels sont des doublons, puis suggère que vous exécutiez lui-même apt-get update pour les réparer, indique que vous n'avez pas vraiment besoin de vous inquiéter à propos de ce message d'erreur.

1
Smarteralec

Nous sommes passés par /etc/apt/sources.list manuellement Sudo nano /etc/apt/sources.list et avons supprimé les doublons. Après apt-get update, le problème a été résolu.

1
Anderverhaal

Eh bien, j'ai moi-même résolu le problème de l'entrée en double en renommant /etc/apt/sources.d (en tant que root) en quelque chose d'autre et en exécutant Sudo apt-get update pour rétablir le répertoire et son contenu.

1
Seann

Dans mon cas, les doublons se trouvaient dans le fichier prerequists-sources.list. J'ai pu poursuivre la mise à niveau en exécutant les commandes suivantes dans le terminal:

Sudo mv /etc/apt/sources.list.d/prerequists-sources.list /tmp
Sudo apt-get update

Ensuite, allez à Update Manager et installez les mises à jour.

1
Mathijs Sterk

Dans /etc/apt/sources.list, vous devez commenter (ajouter # au début de la ligne) l'entrée de référentiel dupliquée et enregistrer les modifications. Après cela, répétez Sudo apt-get update.

1
Snorri

Editez simplement le fichier /etc/apt/sources.list (par exemple, utilisez Sudo -H gedit /etc/apt/sources.list) et supprimez la ligne en double ou insérez un # au début de la ligne.

1
Micha

C'est un travail approprié pour uniqqui omet les lignes en double et n'imprime que des entrées uniques. Nous pouvons donc extraire la sortie de uniqet remplacer l'ancien fichier par uniqname __:

 sort /etc/apt/sources.list | uniq > /tmp/sources && Sudo mv /tmp/sources  /etc/apt/sources.list
0
S="/etc/apt/sources.list" ;
S2="$S ${S}.d/*.list" ;
grep -b "^deb\`cat $S2 |
    grep -i "^deb[[:space:]]http" |
    sort |
    uniq -dc |
    sed -e 's;[[:space:]]\\+[[:digit:]]\\+[[:space:]]\\+deb\\(.\\+$\\);\\1;g'\`$" $S2

* Les sauts de ligne insérés pour la lisibilité.

0
Tony Saratonev

Exécutez ce qui suit pour supprimer les doublons

cat /etc/apt/sources.list | Perl -ne '$H{$_}++ or print' > /tmp/sources.list && Sudo mv /tmp/sources.list /etc/apt/sources.list  
0
Stormvirux

Dans le cas de W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main AMD64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-AMD64_Packages)

Ouvrir: sources.list.d

rm google.list

il ne reste donc que google-chrome.list

0
Stevie G