Wie kann ich den apt-Fehler "W: Zielpakete ... sind mehrfach konfiguriert" beheben?

128

Ich habe gerade Ubuntu Gnome 16.04 installiert. Ich sagte, es solle meine Dokumente speichern - was funktionierte. Einige Software musste neu installiert werden. Wenn ich jetzt renne, sehe sudo apt-get updateich Folgendes:

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

Gibt es eine automatisierte Möglichkeit, dies zu beheben?

Tim
quelle

Antworten:

161

Aktuelle, aktuelle Lösung

Ich habe ein Python-Skript geschrieben, um diese Aufgabe zu automatisieren. Sie können die finden die neueste Version hier .

Installation:

  1. Installieren Sie die Voraussetzungen:

    sudo apt install python3-apt
    
  2. Laden Sie das ZIP-Bundle ( aptsources-cleanup.zip) aus der neuesten Version herunter .

Verwendungszweck:

  1. Führen Sie vom Download-Speicherort des ZIP-Bundles (siehe Schritt 2 oben) Folgendes aus:

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. Folgen Sie den Anweisungen auf dem Bildschirm.

Wenn Sie ein Problem melden , einen Kommentar hinterlassen oder den Quellcode teilen möchten , tun Sie dies bitte auf GitHub .


Historische, veraltete Lösung

Dies ist eine ältere, kürzere und einfachere Version, die sich besser für ein Inline-Angebot eignet:

#!/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.')

Es benötigt keinen Parameter und funktioniert /etc/apt/sources.list*mit Hilfe des python3-aptPakets. Zeilen müssen keine exakten Duplikate sein (auch nach der Normalisierung), aber es reicht aus, wenn Typ, URI, Suite und mindestens eine Komponente überlappen.

Ich bin mir nicht sicher, ob der Gleichheitstest in allen Eckfällen korrekt ist (z. B. verschiedene "Option" -Strings).

David Foerster
quelle
Vom Terminal können Sie es mit dem Befehl wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "
Sami
@Sami: Im Moment ja, aber es wird nicht mehr auf die neueste Version verweisen, wenn ich eine andere Veröffentlichung mache.
David Foerster
Ubuntu 18.04 Benutzer: funktioniert wie ein Zauber. Danke, Mann.
Ali
osboxes @ osboxes: /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3: Datei 'aptsources-cleanup.zip' kann nicht geöffnet werden: [Errno 2] Keine solche Datei oder Verzeichnis
Toolkit
@ Toolkit: Ich habe die Gebrauchsanweisung überarbeitet. Bitte lesen Sie sie und versuchen Sie es erneut. Entschuldigung für die Unklarheit.
David Foerster
80

Für mich (16.04 LTS) gehts

Systemeinstellungen >> Software und Updates >> Andere Software und das Entfernen jedes doppelten Eintrags aus der Liste funktionierten einwandfrei.

Lerner
quelle
6
Ich habe eine automatisierte Methode angefordert.
Tim
17
Dies ist eine bessere Lösung, als fremdes Python3-Skript zu lesen, bevor es ausgeführt wird ... hat perfekt funktioniert
Max
2
Können Sie "Duplikate" löschen, die einen anderen Typ haben? Zum Beispiel habe ich http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial mainund http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). Ist es sicher, den (Quellcode) zu entfernen (dieser ist auch nicht aktiviert, im Gegensatz zu dem anderen)?
Deruijter
1
@ Tim stimmt, aber das ist wahrscheinlich nicht der Grund, warum die meisten Menschen auf diese Frage kommen
Joel Berkeley
2
@Deruijter Der "Quellcode" wird nicht als Duplikat des anderen betrachtet. Sie benötigen jedoch keinen Quellcode, es sei denn, Sie möchten den Quellcode für einige Pakete herunterladen, um sie selbst zu kompilieren.
4.
31

Setzen Sie Ihre Repositorys auf diese Weise zurück

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. Wählen Sie Ihre Optionen
  4. sparen

(PS: Ich hatte heute nach dem Update von Ubuntu 15.10 auf Ubuntu 16.04 das gleiche Problem.)

Andrew
quelle
Beachten Sie, dass Sie dies erst tun sollten, nachdem Sie überprüft und sichergestellt haben, dass Sie tatsächlich software-properties-gtkauf Ihrem System installiert sind. Frag mich nicht, warum ich das geschrieben habe.
Miloš Đakonović
5

Da die Fehler Ihnen mitteilen, wo das Problem liegt und dass alle Probleme auf eine einzige duplizierte Zeile zurückzuführen sind, können Sie dies einfach manuell mit einem Texteditor wie vim, nano usw. beheben. Ein Vorteil davon ist, dass Sie genau sehen können Was ist das Problem und was Sie tun, um es zu beheben.

Öffnen Sie in Ihrem Fall mit sudo oder als root /etc/apt/sources.list in einem Texteditor. Löschen Sie entweder Zeile 33 oder Zeile 87. Sie können visuell überprüfen, ob es sich um Duplikate handelt.

Wenn Sie vim mögen ...

$ 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

Oder raus, wenn Sie einen Fehler machen ...

:q!             # to quit without saving any changes
mächtigstapel
quelle
4

Gehen Sie für Ubuntu-basierte Systeme mit Linux Mint zu Software Sources> Maintenance> Remove Duplicate Packages

Mario Olivio Flores
quelle
dabei bekomme ich kein
duplikat