Questão Como corrigir “W: Duplicar a entrada sources.list”?


Eu continuo recebendo esse aviso sempre que tento executar sudo apt-get update.

W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise-updates_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Abaixo está a saída de /etc/apt/sources.list Arquivo:

deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted

deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted

deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

deb http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted
deb http://archive.ubuntu.com/ubuntu precise-security universe
deb-src http://archive.ubuntu.com/ubuntu precise-security universe
deb http://archive.ubuntu.com/ubuntu precise-security multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-security multiverse

Como faço para corrigir isso?


186
2018-04-10 06:31


origem




Respostas:


Sua sources.list realmente tem entradas duplicadas.

Primeiro Vamos ver a forma correta de uma linha de repositório ou linha de origem:

O formato correto da linha de origem do repositório é

<type of repository>  <location>  <dist-name> <components> 

Por exemplo, uma linha de recompra pode ser como esta

  deb http://archive.ubuntu.com/ubuntu precise main

Aqui, isso significa que o repositório é para pacotes binários, que são hospedados em http://archive.ubuntu.com/ubuntu e este repositório é para o Ubuntu preciso (12.04) e este repositório contém o componente principal (software que é oficialmente suportado pela Canonical).

  • Tipo: O tipo pode ser deb e deb-src. deb significa um repositório binário onde deb-src significa um repositório de origem

  • Localização:  http://archive.ubuntu.com/ubuntu localização do repositório.

  • Dist-name: O nome da distribuição do lançamento do Ubuntu. Para o Ubuntu 12.04 é precise, para 11,10 é oneiric.
    Você pode visitar o Ubuntu Wiki para ver uma atualização lista de lançamentos do Ubuntu e seus nomes de código.

  • Componente: Pode ser main, universe, multiverse e restricted. Estas palavras indicam o nível de suporte para os pacotes e o status de licenciamento.

Vejo esta página Para maiores informações.

Por favor, tome nota que, você pode adicionar um ou mais componentes em uma linha, então "main", "universe", "restricted" e "multiverse" podem estar em uma única linha. Observe também que, embora você adicione mais de um componente em uma única linha, o sistema APT os considera como uma linha separada contendo apenas um componente.

Então, se o seu sources.list tem uma linha como esta

deb http://archive.ubuntu.com/ubuntu precise universe

Então não pode ter outra linha como a abaixo (que seus arquivos possuem)

deb http://archive.ubuntu.com/ubuntu precise main universe

que é equivalente a estas duas linhas

deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe

Porque você está duplicando universo duas vezes, então haverá um erro para essa duplicata. Um erro será dado para cada duplicata encontrada.

Solução:

Depois de analisar o seu sources.list arquivo, descobri que, é um básico que é fornecido pelo Ubuntu por padrão. Você pode criar um arquivo padrão seguindo o procedimento:

  1. Abra um terminal e primeiro renomeie o existente sources.list arquivo para sources.list.bak Arquivo. (podemos remover isso com segurança, mas a cautela é boa).

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Então abra software-properties-gtk para construir um novo. Digite o comando abaixo em um terminal ou no prompt de comando traço pressionando Alt+F2

    software-properties-gtk
    

    Note, para o Ubuntu versão 11.10 ou anterior você tem que usar gksu antes de o software-properties-gtk comando

  3. Depois que a janela estiver aberta,

    • Selecione todas as quatro categorias em Software Ubuntu aba
    • Selecione precisão-segurança, atualizações precisas e backports precisos categoria em Atualizações aba.
    • Selecione Parceiro canônico e Independente categoria de Outro software aba.

É isso aí. Você tem agora um padrão sources.listarquivo sem erro. Compare este arquivo com o anterior, se quiser.


Atualizar para lidar com sources.list.d arquivos do dir

Às vezes, uma entrada duplicada pode estar em um arquivo no /etc/apt/sources.list.d diretório, que também é usado pelo APT. Então, você deve olhar para o diretório e ver se há alguma duplicata nesses arquivos. Não é necessário que as duplicatas estejam no mesmo arquivo.

Exemplo de caso:

Um usuário exibiu essa mensagem de erro ao fazer sudo apt-get update.

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Mas não houve entrada com http://dl.google.com no principal /etc/apt/sources.list Arquivo. Olhando para o /etc/apt/sources.list.d/ diretório encontramos estes arquivos:

saída de ls /etc/apt/sources.list.d/:

aims-sagemath-precise.list
aims-sagemath-precise.list.save
dropbox.list
dropbox.list.save
fossfreedom-packagefixes-precise.list
fossfreedom-packagefixes-precise.list.save
google-chrome.list
google-chrome.list.save
google.list
google.list.save
sagemath-monolithic-precise.list
sagemath-monolithic-precise.list.save

Os arquivos google-chrome.list e google.list eram bons candidatos para conter duplicatas. Então, verificar o conteúdo de ambos os arquivos foi necessário.

Saída de cat /etc/apt/sources.list.d/google-chrome.list:

deb http://dl.google.com/linux/chrome/deb/ stable main  

e de cat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

Então, houve uma entrada duplicada nas fontes do Apt. Desde a google-chrome.list contém apenas uma única linha apt e também foi listada google.list arquivo podemos remover com segurança este arquivo com o comando

sudo rm /etc/apt/sources.list.d/google-chrome.list

Então o problema foi resolvido.


225
2017-09-05 17:33



+1 Esta é uma ótima resposta. Corrigido o problema e totalmente explicado o porquê de ter ocorrido. - akmad
O que eu fiz para fazer com que eu tivesse entradas duplicadas no meu sources.list.d? - Seanny123
Muito obrigado. Eu queria saber horas como duplicatas ocorreram. Finalmente você mostrou sources.list.d - Isura Manchanayake
Resposta agradável e completa. Na tua Atualização para lidar com os arquivos do sources.list.d dir você explica quais são os arquivos / linhas que dão as duplicatas. Você poderia similarmente explicar quais são os 6 pares de linhas (desde que você diz "seu arquivo tem 6 duplicatas lá") no OP que dá duplicatas? - sancho.s
A dica para ir checar minhas sources.list.d foi o que me ajudou a resolver isso. - lcarsos


Para o Ubuntu 12.04 

Graficamente:

pressione Alt + F2 e cole software-properties-gtk (ou você pode abrir o "Centro de Software" e depois ir em "Editar"> "Fontes de Software"). Vá para a aba "Outro Software", escolha a entrada duplicada e pressione o botão "Remover".

enter image description here


Se você precisa de uma opção de linha de comando, aqui está:

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  

O comando faz isso:

cat lê o arquivo e passa o conteúdo para perl que remove as linhas duplicadas. O resultado é então salvo > em um arquivo temporário que é então movido para substituir o original /etc/apt/sources.list Arquivo.


77
2018-05-04 22:27



Seu roteiro funcionou perfeitamente. - Lucio
Apenas como consertar, sem confusão e detalhes muito profundos. Obrigado! - P.M
Na verdade funcionou! Não foi possível, por algum motivo, instalar o git em um 12.04. Em vez de remover, acabei de verificar os "parceiros canônicos" duplicados aparentes. - davidkonrad
Eu corri o one-liner, mas sudo apt-get update ainda reclama de entradas duplicadas como se nada tivesse mudado. Se isso importa, eu estou no 12.04 (especificamente, elementar OS Luna). - waldyrious
o cat é inútil e impede que você use sudo perl -i - tripleee


Quão ruins são entradas duplicadas em sources.list?

Eu não sei o quão ruim é, mas eu não gosto sudo apt-get update mostrando-me entradas duplicadas.

A propósito, não é tão ruim, é apenas mostrar-lhe que você tem entradas duplicadas.

SourcesList

O arquivo sources.list é um fator chave para adicionar ou atualizar aplicativos para a sua instalação do Ubuntu. Isso também é usado pelo sistema para atualizações do sistema. O arquivo é basicamente o roteiro para o seu sistema saber onde ele pode baixar programas para instalação ou atualização.

É como a atualização do Windows

Você pode remover entradas duplicadas em algumas etapas fáceis com Gerente de Y PPA

 sudo add-apt-repository ppa:webupd8team/y-ppa-manager -y
 sudo apt-get update
 sudo apt-get install y-ppa-manager -y

Aberto y-ppa-manager Formato Traço

Digite sua senha de administrador

enter image description here

Clique duplo em avançado

enter image description here

Digitalize e remova os PPAs duplicados e clique em OK

enter image description here

Vai levar algum tempo (1 ou 2 Mints) para digitalizar e remover duplicado PPA


22
2018-05-08 05:36



No meu caso, o Y PPA continuou dizendo que nenhuma cópia foi encontrada. Eu fiz um backup do source.list removido e executei o sudo apt-get update para recriar a lista de fontes (ubuntu 12.04). Isso funcionou para mim. - michel.iamit
Trabalhei para mim no dia 17, obrigado cara! - spences10
Trabalhou para mim no Ubuntu 14.04 .. Obrigado amigo .. :) - Rahul Singh
funcionou como um encanto - vector
No meu caso, em 14.04, ele continua dizendo Nenhuma duplicação encontrada - Muhammad Omer Aslam


O repositório de parceiros é duplicado dentro /etc/apt/sources.list e /etc/apt/sources.list.d/precise-partner.list.

Basta remover os arquivos "parceiros precisos", pois o repositório de parceiros já está presente sources.list.

sudo rm /etc/apt/sources.list.d/precise-partner.*

16
2017-09-01 19:20



Estou entendendo rm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory - Dennis
Experimentar sudo rm /etc/apt/sources.list.d/*partner*. Além disso, verifique seu /etc/apt/sources.list, procure por linhas duplicadas. - Eric Carvalho
Sem sorte, não tenho arquivos com "parceiro" no nome desse diretório. E /etc/apt/sources.list não contém quaisquer duplicados de acordo com uniq. - Dennis


Faça uma cópia de backup de suas sources.list:

sudo cp /etc/apt/sources.list{,.backup}

Agora remova o original e atualize:

sudo rm /etc/apt/sources.list && sudo apt-get update

10
2017-07-04 05:16



Como ele pode atualizar sem sources.list Arquivo? - Anwar
Ele irá repovoar. =) - wojox
@wojox Funciona, obrigado. - quantme
o meu não repovoou - conman253
Reverter para o que você fez backup - wojox


Eu tive o mesmo problema, fontes de software abertas. desmarcada "Parceiros da Canonical". O Conflito é entre "Parceiros Canonicais" e "Parceiros Canonicais Adicionados pelo Centro de Software"


8
2018-04-11 05:11





Se você não conseguiu descobrir em sua source.listentão faça isso:

  1. Clique com o botão esquerdo no ícone de configurações (no canto superior extremo da tela) e selecione Configurações do sistema.
  2. Clique em Fontes de Software e vá para Outro Software.
  3. Desmarque um dos softwares Canonical Partners (Source Code) embalados pela Canonical para os arquivos de seus parceiros e um dos 'Canonical Partners' - software fornecido pela Canonical para os arquivos de seus parceiros e clique em Close para sair.
  4. Simultaneamente pressione CTRL + ALT + T teclas para abrir o terminal e digitar sudo apt-get update.

7
2018-04-11 06:15



Eu segui suas sugestões, mas ainda estou recebendo esse erro. - hsinxh
Por favor, publique aqui a imagem das suas 'Fontes de Software' para conhecer o culpado. - all4naija
Por favor, poste a imagem do seu 'Outro Software' aqui. - all4naija


Para o Ubuntu 9.10 - 12.04

Existe um aplicativo chamado Y-PPA-Manager, que pode fazer isso e muito mais.

Você pode instalá-lo assim de um terminal:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get upgrade
sudo apt-get install y-ppa-manager

Depois disso, basta iniciar o aplicativo e ir para o menu Avançado.

enter image description here

Em seguida, selecione "Verificar e remover PPAs duplicados" e clique em OK.

enter image description here


5
2018-05-06 13:25



É uma ferramenta legal, mas não resolve o problema. Eu fiz essa escolha e depois disso tenho os mesmos avisos. - nazar_art


10.10 e mais cedo

Aplicativos> Ubuntu Software Center> Editar> Fontes de Software> Outros softwares

OU

Sistema> Administração> Gerenciador de Pacotes Synaptic> Configurações> Repositórios

Software Sources config window

Selecione e remova entradas duplicadas.


5
2017-11-18 15:43





Parece que você tem duas linhas idênticas em seu /etc/apt/sources.list Arquivo.

Vá para o terminal e digite sudo editor /etc/apt/sources.list, em seguida, procure por quaisquer linhas idênticas nesse arquivo e, se as encontrar, exclua-as. Após o seu feito, salve e saia e faça sudo apt-get update e isso deve resolver seu problema.

Se isso não resolver o seu problema, você terá que usar uma abordagem de tentativa e erro. Primeiro, crie um backup do seu sources.list arquivo, em seguida, no arquivo real passar e comentar ou excluir cada linha, salvando e apt-get update-ing após cada linha ter sido comentada ou excluída. Passar por este arquivo linha por linha, comentando linhas diferentes, eventualmente lhe dirá qual linha é supérflua. Não esqueça de descomentar quaisquer linhas que você tenha comentado apt-get update ainda mostra o mesmo prompt, caso contrário, você ficará sem fontes em seu sources.list Arquivo.


4
2018-04-10 15:01