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

188

Recebo 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 do arquivo /etc/apt/sources.list :

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?

    
por hsinxh 10.04.2012 / 08:31

25 respostas

227

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 estão hospedados no link e este repositório é para O Ubuntu precisa (12.04) e este repositório contém o componente principal (software oficialmente suportado pela Canonical).

  • Tipo: O tipo pode ser deb e deb-src . deb significa um repositório binário em que 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 . Essas palavras indicam o nível de suporte para os pacotes e o status de licenciamento.

Veja esta página para mais 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. Além disso, observe 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 tiver 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

Como você está duplicando universe duas vezes, haverá um erro para essa duplicata. Um erro será dado para cada duplicata encontrada.

Solução:

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

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

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

    software-properties-gtk
    

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

  3. Depois que a janela estiver aberta,

    • Selecione todas as quatro categorias na guia Ubuntu Software
    • Selecione as categorias precis-security , precisos-atualizações e precise-backports na guia Atualizações .
    • Selecione a categoria Canonical partner e Independent na guia Outro software .

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

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

Às vezes, uma entrada duplicada pode estar em um arquivo no diretório /etc/apt/sources.list.d , que também é usado pelo APT. Então, você deve olhar para esse 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 arquivo principal /etc/apt/sources.list . Observando o diretório /etc/apt/sources.list.d/ , encontramos esses 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 foram 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. Como google-chrome.list contém apenas uma única linha do apt e ela também foi listada no arquivo google.list , podemos remover esse arquivo com segurança com o comando

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

Então o problema foi resolvido.

    
por Anwar 05.09.2012 / 19:33
79

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".

Se você precisar 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 , o que remove as linhas duplicadas. O resultado é então salvo > em um arquivo temporário que é então movido para substituir o arquivo /etc/apt/sources.list original.

    
por desgua 05.05.2012 / 00:27
24

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

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

A propósito, não é tão ruim assim, apenas mostra 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

You can remove duplicate entries in few easy steps with Y PPA Manager

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

Abra o formulário y-ppa-manager Dash

Enter You Admin Password

DoubleClickOnAdvanced

Scan & Remove Duplicate PPA's & Click Ok

It will take some time ( 1 or 2 Mints ) To Scan & Remove Duplicate PPA's

    
por Qasim 08.05.2013 / 07:36
16

O repositório de parceiros é duplicado em /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 em sources.list .

sudo rm /etc/apt/sources.list.d/precise-partner.*
    
por Eric Carvalho 01.09.2012 / 21:20
10

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
    
por wojox 04.07.2012 / 07:16
8

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

    
por Amjed 11.04.2012 / 07:11
7

Se você não conseguiu descobrir isso em source.list , faça o seguinte:

  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 mova para outro software.
  3. Desmarque um dos produtos "Canonical Partners (Source Code)" embalados pela Canonical para os arquivos de seus parceiros e um dos "Canonical Partners - software empacotado pela Canonical para os arquivos de seus parceiros também e clique em Fechar para sair.
  4. Pressione simultaneamente as teclas CTRL + ALT + T para abrir o terminal e digite sudo apt-get update .
por all4naija 11.04.2012 / 08:15
6

10.10 e anteriores

Aplicativos > Centro de Software do Ubuntu > Editar > Fontes de software > Outro Software

OR

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

Selecione e remova entradas duplicadas.

    
por Sid 18.11.2010 / 16:43
5

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 acessar o menu Avançado.

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

    
por rearlight 06.05.2012 / 15:25
4

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

Vá para o terminal e insira sudo editor /etc/apt/sources.list , depois procure por qualquer linha idêntica nesse arquivo e, se as encontrar, exclua-as. Depois de terminar, salve e saia e, em seguida, 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 arquivo sources.list , depois, no arquivo real, passe e comente ou exclua cada linha, salvando e apt-get update -ing depois que cada linha tiver sido comentada ou excluída. Percorrendo este arquivo linha por linha, comentando linhas diferentes, eventualmente você dirá qual linha é supérflua. Não esqueça de descomentar quaisquer linhas que você tenha comentado se apt-get update ainda mostrar o mesmo prompt, caso contrário, você não terá mais fontes no arquivo sources.list .

    
por Jeff Welling 10.04.2012 / 17:01
4

Eu procurei por essa ferramenta, mas não encontrei nenhuma ...
Então, acabei codificando um com PHP .

Desculpe pelo código-fonte desorganizado e sujo.

chkdup - Screenshot:

Autor

MubarakAlrashidi(DeaDSouL)

Requisitos:

  1. PHP.
  2. sudo.

Instalação:

  1. Abraoterminal.
  2. ParainstalaroPHP,sevocênãotiver,digite:sudoapt-getinstallphp5php5-cli.
  3. Façaodownloaddo chkdup .
  4. Extraia o arquivo em qualquer lugar que você quiser.
  5. Tipo: sudo sh install.sh .

Desinstalar:

  1. Abra o terminal.
  2. Ir para o caminho em que você extraiu a ferramenta.
  3. Tipo: sudo sh uninstall.sh .

Como usar:

Basta abrir o terminal e digitar sudo chkdup .

FAQs:

O que o install.sh faz?

  • O instalador moverá o chkdup.php para /opt/ e criará um link simbólico em /usr/bin/ .

E o uninstall.sh?

  • O desinstalador removerá os seguintes arquivos:

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. em si uninstall.sh

É seguro usar o chkdup?

  • Sim, já que é necessário fazer um backup da sources.list atual antes de tentar fazer qualquer coisa. Mas eu não sou responsável se alguma coisa aconteceu. A responsabilidade total será sua.

Licença

Licença Pública Geral GNU

    
por DeaDSouL 17.03.2011 / 01:19
3

Você verificou ls /etc/apt/sources.list.d/ ? Talvez você tenha alguns repositórios "extras"?

    
por koni_raid 11.04.2012 / 13:41
2

Instale o ubuntu-tweak e remova as entradas duplicadas de lá.

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

    
por karthick87 18.11.2010 / 16:43
1

Não, não há uma única linha de comando para encontrar e excluir entradas duplicadas no arquivo /etc/apt/sources.list .

Isso ocorre porque as linhas de comando sugeridas, que apenas duplicam a função do comando uniq embutido muito mais simples, funcionarão somente em um arquivo SORTED e removerão apenas as linhas ADJACENT. Além disso, esses comandos somente removerão linhas que consistem em uma sequência de caracteres idêntica .

As entradas duplicadas relatadas por apt-get update consistirão em entradas função duplicadas, como um repositório incluído em ambas as variantes i386 e amd64 . A maneira fácil e eficaz de removê-los é observar quais repositórios são relatados como duplicados pelo apt-get update e removê-los através do Centro de Software . Abra e escolha Editar - > Fontes de software - > Outro separador Software . Basta procurar as entradas duplicadas e desmarcá-las. (Esta é também uma oportunidade para remover qualquer repositório source-code se você não estiver compilando os pacotes).

No entanto, deve-se notar que apt-get update não encontra apenas entradas duplicadas via sources.list , mas inclui arquivos de repositório localizados em /var/lib/apt/lists/ . A exclusão de entradas duplicadas de lá removerá apenas temporariamente as mensagens de erro apt-get update se o Ubuntu achar que precisa delas, pois os arquivos serão automaticamente reinstalados. O fato de apt-get update relatar alguns repositórios como duplicados e, em seguida, sugerir que você execute apt-get update para repará-los, é um indício de que você realmente não precisa se preocupar com essa mensagem de erro.

    
por Smarteralec 08.05.2012 / 00:00
1

No meu caso, as duplicatas estavam no arquivo prerequists-sources.list . Consegui continuar o upgrade executando os seguintes comandos no Terminal:

sudo mv /etc/apt/sources.list.d/prerequists-sources.list /tmp
sudo apt-get update

Em seguida, vá para o Update Manager e instale as atualizações.

    
por Mathijs Sterk 15.06.2012 / 10:18
1

Bem, eu mesmo resolvi o problema da Entrada Duplicada renomeando /etc/apt/sources.d (como root) para outra coisa e executando sudo apt-get update para restabelecer o diretório e seu conteúdo.

    
por Seann 25.04.2013 / 21:36
1

Passou /etc/apt/sources.list manualmente sudo nano /etc/apt/sources.list e removeu as duplicatas. Depois de apt-get update , o problema foi resolvido.

    
por Anderverhaal 03.09.2013 / 14:01
1

Em /etc/apt/sources.list , você deve comentar (adicionar # no início da linha) a entrada do repositório duplicado e salvar as alterações. Depois disso, repita sudo apt-get update .

    
por Snorri 28.05.2013 / 11:07
1

Use o Gerador de listas de fontes do Ubuntu .

  • Executar sudo -H nautilus no terminal
  • Localizar /etc/apt/sources.list
  • Clique com o botão direito do mouse e abra o arquivo com um editor de texto (se você clicar nele, ele abrirá a GUI de fontes de software)
  • Basta copiar e colar no sources.list e salvar.
  • Saia do terminal e pronto.

O Google parece ter um problema, por isso sugiro deixar isso de lado. Eu fiz isso no Ubuntu 12.10 (versão do Studio com área de trabalho do Ubuntu adicionada e Unity para outro login na área de trabalho).

    
por studiofreak 05.01.2013 / 15:29
1

Basta editar o arquivo /etc/apt/sources.list (por exemplo, use sudo -H gedit /etc/apt/sources.list ) e remover a linha duplicada ou colocar um # no início da linha.

    
por Micha 14.12.2012 / 19:41
1

Eu tento completar as possibilidades oferecidas por outros usuários usando terminal, já que foi isso que você pediu, principalmente:

faça o login se estiver usando uma instalação baseada em texto ou pressione Alt + F2 e digite gnome-terminal se estiver usando a GUI

Em seguida, digite

sudo nano /etc/apt/sources.list

(Para entender melhor: no diretório /etc você pode encontrar (quase) todos os arquivos de configuração do seu computador e no diretório apt você encontra o arquivo souces.list que contém todos os repositórios que o APT usa para atualizar ou instalar e atualizar o software)

Edite o arquivo removendo ou comentando com # no início da linha quaisquer linhas duplicadas.

Pressione Ctrl + X para sair e pressione y para salvar o arquivo (ou n para sair sem salvar).

Em seguida, atualize para ver se você o corrigiu:

sudo apt-get update

Divirta-se!

    
por Pitto 18.11.2010 / 18:12
0
S="/etc/apt/sources.list" ;
S2="$S ${S}.d/*.list" ;
grep -b "^deb\'cat $S2 |
    grep -i "^deb[[:space:]]http" |
    sort |
    uniq -dc |
    sed -e 's;[[:space:]]\+[[:digit:]]\+[[:space:]]\+deb\(.\+$\);\1;g'\'$" $S2

* Quebras de linha inseridas para facilitar a leitura.

    
por Tony Saratonev 04.07.2012 / 01:59
0

Execute o seguinte para remover as duplicatas

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  
    
por Stormvirux 14.09.2013 / 12:46
0

No caso de 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)

Aberto: sources.list.d

rm google.list

apenas google-chrome.list permanece

    
por Stevie G 25.05.2015 / 10:38
0

É um trabalho apropriado para uniq , que omite linhas duplicadas e imprime somente entradas exclusivas, portanto, podemos obter a saída de uniq e substituir o arquivo antigo pela saída de uniq :

 sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources  /etc/apt/sources.list
    
por Sergiy Kolodyazhnyy 24.11.2015 / 01:38