Qual é a razão por trás da entrada W: Duplicate sources.list do apt-get?

4

Esta questão é realmente sobre o porquê da mensagem de erro. Parece que as entradas duplicadas no arquivo de configuração, como sources.list , seriam bastante simples de corrigir automaticamente e podem ser gravadas com bastante facilidade, IMHO.

De acordo com resposta de Anwar sobre a questão canônica sobre essa mensagem de erro:

  

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

Isso parece ser algo fácil de resolver - dividir a linha em tokens e mesclar os dois.

No entanto, apt-get informa explicitamente ao usuário You may want to run apt-get update to correct these problems , embora em vários posts no Ask Ubuntu o erro realmente apareça quando as pessoas tentam executar apt-get update .

Portanto, há algum motivo específico pelo qual apt-get não os resolva automaticamente? Existe alguma forma de conceito de design / raciocínio onde é desejável que isso seja corrigido manualmente?

    
por Sergiy Kolodyazhnyy 01.12.2017 / 22:07

1 resposta

0
  

No entanto, apt-get informa explicitamente ao usuário You may want to run apt-get update to correct these problems , mesmo que em várias postagens no Ask Ubuntu o erro realmente apareça quando as pessoas tentam executar apt-get update .

Mas esse não é o único lugar em que esse erro é visto. Acontece que a maioria das pessoas tendem a executar apt-get update depois de fazer alterações nas fontes, o que é perfeitamente correto, mas isso também pode acontecer com outras operações do apt:

$ sudo vim /etc/apt/sources.list
[sudo] password for muru: 
$ sudo apt install vim-gnome    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vim-gnome is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
W: Duplicate sources.list entry http://jp.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages)
W: Duplicate sources.list entry http://jp.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

E o problema aqui é que os dois avisos são gerados de forma independente.

W: You may want to run apt-get update to correct these problems é impresso quando ocorre algum erro durante a criação do cache do apt. É uma solução genérica: o código que imprime isso não sabe (ou se importa) qual erro aconteceu, mas eu diria que é razoável assumir, para a maioria dos erros que poderiam acontecer ao construir o cache, buscar um novo pacote lista pode muito bem ser a solução. (Pense em todos os problemas do apt que vimos porque alguém executou apt-get install ou apt-get upgrade sem executar apt-get update .)

Mas os desenvolvedores sabem que não é uma ótima sugestão. Veja apt-pkg/cachefile.cc :

/* This sux, remove it someday */
if (_error->PendingError() == true)
   _error->Warning(_("You may want to run apt-get update to correct these problems"));

(Como sempre, os patches devem ser bem-vindos.)

  

Então, existe alguma razão em particular para o apt-get não resolver isso automaticamente?

Porque, IMHO, isso é sempre o resultado do PEBCAK. add-apt-repository é inteligente o suficiente para não adicionar entradas duplicadas. Então, esse erro sempre acontece quando alguém edita as fontes manualmente. E como os humanos têm um potencial infinito para criar erros interessantes, não é seguro corrigi-los automaticamente.

    
por muru 02.02.2018 / 03:04