¿Cómo puedo solucionar el error apt "W: Target Packages ... se configura varias veces"?

128

Acabo de instalar Ubuntu Gnome 16.04. Le dije que guardara mis documentos, lo que funcionó. Algún software tuvo que ser reinstalado. Ahora cuando corro sudo apt-get updateveo esto:

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

¿Hay alguna forma automatizada de solucionar esto?

Tim
fuente

Respuestas:

161

Solución reciente y actualizada

Escribí un script de Python para automatizar esta tarea. Puedes encontrar la versión más reciente aquí .

Instalación:

  1. Instale los requisitos previos:

    sudo apt install python3-apt
    
  2. Descargue el paquete ZIP ( aptsources-cleanup.zip) de la última versión .

Uso:

  1. Desde la ubicación de descarga del paquete ZIP (consulte el paso 2 anterior) ejecute:

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. Siga las instrucciones que aparecen en la pantalla.

Si desea informar un problema , dejar un comentario o bifurcar el código fuente, hágalo en GitHub .


Solución histórica y desactualizada

Esta es una versión anterior, más corta y más simple, más adecuada para una cita en línea:

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

No toma parámetros y funciona en todos /etc/apt/sources.list*con la ayuda del python3-aptpaquete. Las líneas no tienen que ser duplicados exactos (incluso después de la normalización), pero es suficiente si el tipo, URI, suite y al menos un componente se superponen.

No estoy seguro de que la prueba de igualdad sea correcta en todos los casos de esquina (por ejemplo, varias cadenas de "opciones").

David Foerster
fuente
Desde la terminal puede descargarlo mediante el comando wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "
Sami
@ Sami: Por el momento sí, pero ya no señalará el último lanzamiento cuando haga otro lanzamiento.
David Foerster
Usuario de ubuntu 18.04: funciona como un encanto. gracias hombre.
Ali
osboxes @ osboxes: /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3: no se puede abrir el archivo 'aptsources-cleanup.zip': [Errno 2] No existe tal archivo o directorio
Toolkit
@ Toolkit: revisé las instrucciones de uso. Léalos e intente nuevamente. Perdón por la falta de claridad.
David Foerster
80

Para mí (16.04 LTS) voy a

Configuración del sistema >> Software y actualizaciones >> Otro software y eliminar cada entrada duplicada de la lista funcionó bien.

aprendiz
fuente
66
Estaba solicitando un método automatizado.
Tim
17
esta es una mejor solución que leer un script extranjero de python3 antes de ejecutarlo ... funcionó perfectamente
Max
2
¿Puedes eliminar "duplicados" que tienen un tipo diferente? Por ejemplo tengo http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial mainy http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). ¿Es seguro eliminar el (código fuente) uno (este tampoco está marcado, a diferencia del otro)?
Deruijter
1
@Tm cierto, pero probablemente no sea por eso que la mayoría de las personas llegan a esta pregunta
Joel Berkeley
2
@Deruijter El que dice "código fuente" no se considera un duplicado del otro. Sin embargo, no necesita el que dice "código fuente" a menos que desee descargar el código fuente de algunos paquetes para compilarlos usted mismo.
mchid
31

Restablece tus repositorios así

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. Elige tus opciones
  4. Salvar

(PD: tuve el mismo problema hoy después de actualizar Ubuntu 15.10 a Ubuntu 16.04).

Andrés
fuente
Tenga en cuenta que solo debe hacer esto después de verificar y asegurarse de que realmente haya software-properties-gtkinstalado en su sistema. No me preguntes qué me hizo escribir esto.
Miloš Đakonović
5

Dado que los errores le indican dónde está el problema y que todos los problemas se deben a una sola línea duplicada, puede solucionarlo manualmente con un editor de texto como vim, nano, etc. Una ventaja de esto es que puede ver exactamente cuál es el problema y qué está haciendo para solucionarlo.

En su caso, con sudo o como root, abra /etc/apt/sources.list en un editor de texto. Elimine la línea 33 o la línea 87. Puede verificar visualmente que estén duplicadas primero.

Si te gusta 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

O, para salir si te equivocas ...

:q!             # to quit without saving any changes
mightypile
fuente
4

Para sistemas basados ​​en Ubuntu con Linux mint, vaya a Fuentes de software> Mantenimiento> Eliminar paquetes duplicados

Mario Olivio Flores
fuente
haciendo eso no encuentro ningún duplicado, pero aún veo el mismo error
cipricus