Como posso corrigir o erro do apt "W: Target Packages ... é configurado várias vezes"?

128

Acabei de instalar o Ubuntu Gnome 16.04. Eu disse para salvar meus documentos - o que funcionou. Alguns softwares tiveram que ser reinstalados. Agora, quando corro sudo apt-get update, vejo isso:

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 uma maneira automatizada de corrigir isso?

Tim
fonte

Respostas:

161

Solução recente e atualizada

Eu escrevi um script Python para automatizar esta tarefa. Você pode encontrar a versão mais recente aqui .

Instalação:

  1. Instale os pré-requisitos:

    sudo apt install python3-apt
    
  2. Faça o download do pacote ZIP ( aptsources-cleanup.zip) da versão mais recente .

Uso:

  1. No local do download do pacote ZIP (veja a etapa 2 acima), execute:

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. Siga as instruções exibidas na tela.

Se você deseja relatar um problema , deixar um comentário ou digitar o código-fonte, faça-o no GitHub .


Solução histórica e desatualizada

Esta é uma versão mais antiga, mais curta e mais simples, mais adequada para cotação embutida:

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

Não requer nenhum parâmetro e funciona /etc/apt/sources.list*com a ajuda do python3-aptpacote. As linhas não precisam ser duplicatas exatas (mesmo após a normalização), mas são suficientes se o tipo, URI, suíte e pelo menos um componente se sobrepuserem.

Não tenho certeza de que o teste de igualdade esteja correto em todos os casos de canto (por exemplo, várias seqüências de opções).

David Foerster
fonte
No terminal, você pode baixá-lo pelo comando wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "
Sami
@Sami: No momento, sim, mas não apontará mais para a versão mais recente quando eu fizer outra versão.
David Foerster
Usuário do Ubuntu 18.04: funciona como um encanto. obrigado cara.
Ali
osboxes @ osboxes: /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3: não é possível abrir o arquivo 'aptsources-cleanup.zip': [Erro 2] Não existe esse arquivo ou diretório
Toolkit
@ Toolkit: Revisei as instruções de uso. Por favor, leia-os e tente novamente. Desculpe pela falta de clareza.
David Foerster
80

Para mim (16.04 LTS) indo para

As configurações do sistema >> Software e atualizações >> Outro software e remover cada entrada duplicada da lista funcionaram bem.

aprendiz
fonte
6
Eu estava solicitando um método automatizado.
Tim
17
esta é uma solução melhor do que leu o roteiro python3 estrangeiro antes de executá-lo ... funcionou perfeitamente
Max
2
Você pode excluir "duplicatas" que têm um tipo diferente? Por exemplo, eu tenho http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial maine http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). É salvo remover o (código fonte) (este também não é verificado, ao contrário do outro)?
Deruijter
1
@ Tim verdade, mas provavelmente não é por isso que a maioria das pessoas vem a essa pergunta
Joel Berkeley
2
@ Deruijter O que diz "código fonte" não é considerado uma duplicata do outro. No entanto, você não precisa do que diz "código-fonte", a menos que queira fazer o download do código-fonte de alguns pacotes para compilá-los por conta própria.
mchid 4/07
31

Redefina seus repositórios assim

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. Escolha suas opções
  4. Salve 

(PS: Eu tive o mesmo problema hoje depois de atualizar o Ubuntu 15.10 para o Ubuntu 16.04.)

Andrew
fonte
Lembre-se de que você só deve fazer isso depois de verificar e certificar-se de que realmente software-properties-gtkinstalou no seu sistema. Não me pergunte o que me fez escrever isso.
Miloš Đakonović
5

Como os erros informam onde está o problema e que todos os problemas se devem a uma única linha duplicada, você pode facilmente corrigir isso manualmente com um editor de texto como vim, nano etc. Um benefício disso é que você pode ver exatamente qual é o problema e o que você está fazendo para corrigi-lo.

No seu caso, com sudo ou como root, abra /etc/apt/sources.list em um editor de texto. Exclua a linha 33 ou a linha 87. Você pode verificar visualmente se elas são duplicadas primeiro.

Se você gosta de 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, para sair se cometer um erro ...

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

Para sistemas baseados no Ubuntu com Linux mint, vá para Fontes de software> Manutenção> Remover pacotes duplicados

Mario Olivio Flores
fonte
fazendo isso, não recebo nenhuma duplicata encontrada, mas ainda vejo o mesmo erro
cipricus