Comment puis-je corriger l'erreur apt “W: Les paquetages cibles… sont configurés plusieurs fois”?

128

Je viens d'installer Ubuntu Gnome 16.04. Je lui ai dit de sauvegarder mes documents - ce qui a fonctionné. Certains logiciels ont dû être réinstallés. Maintenant, quand je cours, sudo apt-get updateje vois ceci:

W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (main/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (main/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (restricted/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (restricted/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (multiverse/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (multiverse/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: The repository 'http://extras.ubuntu.com/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 uses weak digest algorithm (SHA1)
W: http://repo.sinew.in/dists/stable/InRelease: Signature by key B6DA722E2E65721AF54B93966F7565879798C2FC uses weak digest algorithm (SHA1)
E: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/xenial/main/source/Sources  404  Not Found [IP: 91.189.92.152 80]
E: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/xenial/main/binary-amd64/Packages  404  Not Found [IP: 91.189.92.152 80]
E: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/xenial/main/binary-i386/Packages  404  Not Found [IP: 91.189.92.152 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (main/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (main/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (restricted/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (restricted/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (multiverse/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (multiverse/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87

Existe-t-il un moyen automatisé de résoudre ce problème?

Tim
la source

Réponses:

161

Solution récente et à jour

J'ai écrit un script Python pour automatiser cette tâche. Vous pouvez trouver la version la plus récente ici .

Installation:

  1. Installez les prérequis:

    sudo apt install python3-apt
    
  2. Téléchargez le fichier ZIP ( aptsources-cleanup.zip) de la dernière version .

Usage:

  1. À partir de l'emplacement de téléchargement du fichier ZIP (voir l'étape 2 ci-dessus), exécutez:

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. Suivez les instructions apparaissant à l'écran.

Si vous souhaitez signaler un problème , laisser un commentaire ou insérer le code source, veuillez le faire sur GitHub .


Solution historique et obsolète

Il s’agit d’une version plus ancienne, plus courte et plus simple, mieux adaptée aux citations en ligne:

#!/usr/bin/env python3
"""
Detects and interactively deactivates duplicate Apt source entries.

Usage: sudo python3 apt-remove-duplicate-source-entries.py
"""

from __future__ import print_function
import aptsources.sourceslist

EMPTY_COMPONENT_LIST = (None,)

def get_duplicates(sourceslist):
    """
    Detects and returns duplicate Apt source entries.
    """

    sentry_map = dict()
    duplicates = list()
    for se in sourceslist.list:
        if not se.invalid and not se.disabled:
            for c in (se.comps or EMPTY_COMPONENT_LIST):
                key = (se.type, se.uri, se.dist, c)
                previous_se = sentry_map.setdefault(key, se)
                if previous_se is not se:
                    duplicates.append((se, previous_se))
                    break

    return duplicates


if __name__ == '__main__':
    try:
        input = raw_input
    except NameError:
        pass

    sourceslist = aptsources.sourceslist.SourcesList(False)
    duplicates = get_duplicates(sourceslist)

    if duplicates:
        for dupe, orig in duplicates:
            print(
                'Overlapping source entries:\n'
                '  1. {0}: {1}\n'
                '  2. {2}: {3}\n'
                'I disabled the latter entry.'.format(
                    orig.file, orig, dupe.file, dupe),
                end='\n\n')
            dupe.disabled = True

        print('\n{0} source entries were disabled:'.format(len(duplicates)),
            *[dupe for dupe, orig in duplicates], sep='\n  ', end='\n\n')
        if input('Do you want to save these changes? (y/N) ').upper() == 'Y':
            sourceslist.save()

    else:
        print('No duplicated entries were found.')

Il ne prend aucun paramètre et fonctionne /etc/apt/sources.list*avec l'aide du python3-aptpaquet. Les lignes ne doivent pas nécessairement être des doublons exacts (même après la normalisation), mais suffisent si le type, l'URI, la suite et au moins un composant se chevauchent.

Je ne suis pas sûr que le test d'égalité soit correct dans tous les cas (par exemple, différentes chaînes «d'option»).

David Foerster
la source
Depuis le terminal, vous pouvez le télécharger par la commande wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "
Sami
@Sami: Oui pour le moment, mais cela ne pointe plus vers la dernière version lorsque je crée une nouvelle version.
David Foerster
Ubuntu 18.04 utilisateur: fonctionne comme un charme. Merci mec.
Ali le
osboxes @ osboxes: /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3: impossible d'ouvrir le fichier 'aptsources-cleanup.zip': [Errno 2] Aucun fichier ni répertoire de ce type
Toolkit
@Toolkit: J'ai révisé les instructions d'utilisation. Veuillez les lire et réessayer. Désolé pour le manque de clarté.
David Foerster le
80

Pour moi (16.04 LTS) aller à

Paramètres système >> Logiciels et mises à jour >> Autres logiciels et supprimer chaque entrée en double de la liste a bien fonctionné.

apprenant
la source
6
Je demandais une méthode automatisée.
Tim
17
c'est une meilleure solution que de lire un script étranger python3 avant de l'exécuter ... a parfaitement fonctionné
Max
2
Pouvez-vous supprimer les "doublons" qui ont un type différent? Par exemple j'ai http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial mainet http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). Est-il possible de supprimer le code source (celui-ci n'est pas coché non plus, contrairement à l'autre)?
Deruijter
1
@ Tim vrai mais ce n'est probablement pas pourquoi la plupart des gens viennent à cette question
Joel Berkeley
2
@Deruijter Celui qui dit "code source" n'est pas considéré comme un doublon de l'autre. Cependant, vous n'avez pas besoin de celui qui dit "code source" sauf si vous souhaitez télécharger le code source de certains packages pour les compiler vous-même.
mardi
31

Réinitialisez vos référentiels comme ceci

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. Choisissez vos options
  4. sauver

(PS: j'ai eu le même problème aujourd'hui après avoir mis à jour Ubuntu 15.10 à Ubuntu 16.04.)

Andrew
la source
Veillez à ne le faire qu'après avoir vérifié et vérifié que vous êtes bien software-properties-gtkinstallé sur votre système. Ne me demandez pas ce qui m'a fait écrire ceci.
Miloš Đakonović
5

Comme les erreurs vous indiquent où se situe le problème et que tous les problèmes sont dus à une seule ligne dupliquée, vous pouvez facilement résoudre ce problème manuellement avec un éditeur de texte tel que vim, nano, etc. quel est le problème et ce que vous faites pour le résoudre.

Dans votre cas, avec sudo ou en tant que root, ouvrez /etc/apt/sources.list dans un éditeur de texte. Supprimez la ligne 33 ou la ligne 87. Vous pouvez vérifier visuellement qu’il s’agit d’abord de doublons.

Si vous aimez Vim ...

$ sudo vim /etc/apt/sources.list
33 [Shift]+g    # to goto line 33
87 [Shift]+g    # to goto line 87, don't need a duplicate of line 33
dd              # to delete the line you're on
:wq             # to write the file and quit

Ou, pour sortir si vous faites une erreur ...

:q!             # to quit without saving any changes
pourrait-t-il
la source
4

Pour les systèmes Ubuntu sous Linux mint, accédez à Sources de logiciels> Maintenance> Supprimer les packages en double.

Mario Olivio Flores
la source
Ce faisant, je n’obtiens aucun doublon, mais je vois toujours la même erreur
cipricus