Come posso correggere l'errore apt "W: Pacchetti target ... è configurato più volte"?


128

Ho appena installato Ubuntu Gnome 16.04. Gli ho detto di salvare i miei documenti, il che ha funzionato. Alcuni software hanno dovuto essere reinstallati. Ora quando corro sudo apt-get updatevedo questo:

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

Esiste un modo automatizzato per risolvere questo problema?

Risposte:


161

Soluzione recente e aggiornata

Ho scritto uno script Python per automatizzare questo compito. Puoi trovare la versione più recente qui .

Installazione:

  1. Installa i prerequisiti:

    sudo apt install python3-apt
    
  2. Scarica il bundle ZIP ( aptsources-cleanup.zip) dall'ultima versione .

Uso:

  1. Dal percorso di download del pacchetto ZIP (vedere il passaggio 2 sopra) eseguire:

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. Seguire le istruzioni visualizzate sullo schermo.

Se desideri segnalare un problema , lasciare un commento o fork del codice sorgente, ti preghiamo di farlo su GitHub .


Soluzione storica e obsoleta

Questa è una versione più vecchia, più corta e più semplice, più adatta alla citazione incorporata:

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

Non richiede alcun parametro e funziona su tutti /etc/apt/sources.list*con l'aiuto del python3-aptpacchetto. Le righe non devono essere duplicati esatti (anche dopo la normalizzazione) ma è sufficiente se tipo, URI, suite e almeno un componente si sovrappongono.

Non sono sicuro che il test di uguaglianza sia corretto in tutti i casi angolari (ad es. Varie stringhe "opzionali").


Dal terminale è possibile scaricarlo con il comando wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "
Sami

@Sami: Al momento sì, ma non indicherò più l'ultima versione quando farò un'altra versione.
David Foerster, il

Utente ubuntu 18.04: funziona come un fascino. grazie uomo.
Ali,

osboxes @ osboxes: /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3: impossibile aprire il file 'aptsources-cleanup.zip': [Errno 2] Nessun file o directory simile
Toolkit

@Toolkit: ho rivisto le istruzioni per l'uso. Per favore, leggili e riprova. Ci scusiamo per la mancanza di chiarezza.
David Foerster,

80

Per me (16.04 LTS) andando a

Impostazioni di sistema >> Software e aggiornamenti >> Altro software e la rimozione di ogni voce duplicata dall'elenco ha funzionato correttamente.


6
Stavo richiedendo un metodo automatizzato.
Tim

17
questa è una soluzione migliore di leggere lo script python3 straniero prima di eseguirlo ... ha funzionato perfettamente
Max

2
Puoi eliminare "duplicati" che hanno un tipo diverso? Ad esempio ho http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial maine http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). Si salva per rimuovere quello (codice sorgente) (neanche questo è controllato, al contrario dell'altro)?
Deruijter,

1
@Tim vero, ma probabilmente non è questo il motivo per cui la maggior parte delle persone viene a questa domanda
Joel Berkeley,

2
@Deruijter Quello che dice "codice sorgente" non è considerato un duplicato dell'altro. Tuttavia, non è necessario quello che dice "codice sorgente" a meno che non si desideri scaricare il codice sorgente per alcuni pacchetti per compilarli da soli.
mchid

31

Ripristina i tuoi repository in questo modo

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. Scegli le tue opzioni
  4. Salva

(PS Ho avuto lo stesso problema oggi dopo l'aggiornamento di Ubuntu 15.10 a Ubuntu 16.04.)


Ricorda che dovresti farlo solo dopo aver verificato e assicurati di aver effettivamente software-properties-gtkinstallato sul tuo sistema. Non chiedermi cosa mi ha fatto scrivere questo.
Miloš Đakonović il

5

Poiché gli errori indicano dove si trova il problema e che tutti i problemi sono dovuti a una singola riga duplicata, puoi facilmente risolverlo manualmente con un editor di testo come vim, nano, ecc. Un vantaggio di questo è che puoi vedere esattamente qual è il problema e cosa stai facendo per risolverlo.

Nel tuo caso, con sudo o come root, apri /etc/apt/sources.list in un editor di testo. Elimina la riga 33 o la riga 87. Puoi verificare visivamente che siano prima i duplicati.

Se ti piace 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

Oppure, per uscire se commetti un errore ...

:q!             # to quit without saving any changes

4

Per i sistemi basati su Ubuntu con Linux mint, vai a Sorgenti software> Manutenzione> Rimuovi pacchetti duplicati


facendo ciò non ottengo duplicati, ma vedo ancora lo stesso errore
cipricus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.