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?
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 deb
et deb-src
. deb
dé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 precise
name__, pour 11.10, il s'agit de oneiric
name__.
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 main
name__, universe
name__, multiverse
et restricted
name__. 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é.
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:
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
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 gksu
avant la commande software-properties-gtk
Après que la fenêtre est ouverte,
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.
sources.list.d
dirParfois, 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.
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.
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".
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.
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.
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
Double-cliquez sur Avancé
Numériser et supprimer les PPA en double et cliquer sur OK
Cela prendra du temps (1 ou 2 minutes) Pour numériser et supprimer les PPA en double
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.*
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
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"
Si vous ne parvenez pas à le comprendre dans votre source.list
, procédez comme suit:
Sudo apt-get update
.Applications> Centre du logiciel Ubuntu> Édition> Sources du logiciel> Autres logiciels
OR
Système> Administration> Gestionnaire de paquets Synaptic> Paramètres> Référentiels
Sélectionnez et supprimez les entrées en double.
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é.
Puis sélectionnez "Analyser et supprimer les PPA en double" et cliquez sur OK.
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 update
ing 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.
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.
Mubarak Alrashidi (DeaDSouL)
Sudo apt-get install php5 php5-cli
.Sudo sh install.sh
.Sudo sh uninstall.sh
.Ouvrez simplement le terminal et tapez Sudo chkdup
.
Que fait l'install.sh?
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:
install.sh
/opt/chkdup.php
/usr/bin/chkdup
uninstall.sh
Est-il prudent d'utiliser chkdup?
Licence publique générale GNU
Avez-vous vérifié ls /etc/apt/sources.list.d/
? Peut-être que vous avez des dépôts "supplémentaires"?
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
Utilisez le Générateur de liste de sources Ubunt .
Sudo -H nautilus
dans le terminal/etc/apt/sources.list
sources.list
et sauvegardez.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).
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!
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.
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.
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.
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.
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
.
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.
C'est un travail approprié pour uniq
qui omet les lignes en double et n'imprime que des entrées uniques. Nous pouvons donc extraire la sortie de uniq
et remplacer l'ancien fichier par uniq
name __:
sort /etc/apt/sources.list | uniq > /tmp/sources && Sudo mv /tmp/sources /etc/apt/sources.list
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é.
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
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