В чем причина записи W: Duplicate sources.list для apt-get?

4

Этот вопрос действительно относится к why сообщения об ошибке. Казалось бы, повторяющиеся записи в файле конфигурации, такие как sources.list , были бы довольно просто исправить автоматически и могут быть написаны довольно легко, IMHO.

В соответствии с ответом Анвара по каноническому вопросу об этом сообщении об ошибке:

  

Если у ваших источников.list есть строка, подобная этой

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

Тогда у него не может быть другой строки, как показано ниже (что у ваших файлов)

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

Это кажется довольно простой задачей - разделить строку на токены и объединить два.

И все же apt-get явно сообщает пользователю You may want to run apt-get update to correct these problems , хотя в нескольких сообщениях на Ask Ubuntu ошибка возникает, когда люди пытаются запустить apt-get update .

Так есть ли какая-то особая причина, почему apt-get не разрешает это автоматически? Есть ли какая-то форма дизайна / рассуждения, где это действительно желательно, чтобы это было исправлено вручную?

    
задан Sergiy Kolodyazhnyy 01.12.2017 в 22:07
источник

1 ответ

0
  

И все же apt-get явно сообщает пользователю You may want to run apt-get update to correct these problems , хотя в нескольких сообщениях в Ask Ubuntu ошибка возникает, когда люди пытаются запустить apt-get update .

Но это не единственное место, где эта ошибка видна. Так получилось, что большинство людей имеют тенденцию запускать apt-get update после внесения изменений в источники, что совершенно нормально, но это также может произойти с другими 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

И проблема здесь в том, что два предупреждения несколько независимо генерируются.

W: You may want to run apt-get update to correct these problems печатается, когда возникает ошибка при создании кэша apt. Это общепринятое решение: код, который печатает это, не знает (или не заботится) о том, какая ошибка произошла, но я бы сказал, что разумно предположить для большинства ошибок, которые могут возникнуть при построении кеша, выбор нового пакета список вполне может быть решением. (Подумайте обо всех возможных проблемах, которые мы видели, потому что кто-то побежал apt-get install или apt-get upgrade без запуска apt-get update .)

Но разработчики знают, что это не большое предложение. См. 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"));

(Как всегда, патчи должны приветствоваться.)

  

Итак, есть ли какая-то особая причина, почему apt-get не разрешает их автоматически?

Потому что, IMHO, это always результат PEBCAK. add-apt-repository достаточно умен, чтобы не добавлять повторяющиеся записи. Таким образом, эта ошибка всегда происходит, когда кто-то вручную редактирует источники. И поскольку у людей есть бесконечный потенциал для создания интересных ошибок, небезопасно, чтобы он автоматически исправлялся.

    
ответ дан muru 02.02.2018 в 03:04
источник