В ваших источниках.list действительно есть повторяющиеся записи.
Сначала Посмотрим правильную форму строки или исходной строки репозитория:
Правильный формат исходной строки репозитория
<type of repository> <location> <dist-name> <components>
Например, строка репо может быть похожа на эту
deb http://archive.ubuntu.com/ubuntu precise main
Здесь это означает, что репозиторий предназначен для двоичных пакетов, размещенных в Ссылка , и этот репозиторий предназначен для Ubuntu exact (12.04), и этот репозиторий содержит основное (программное обеспечение, которое официально поддерживается компонентом Canonical).
-
Тип: Тип может быть deb
и deb-src
. deb
означает двоичный репозиторий, где deb-src
означает исходный репозиторий
-
Местоположение: http://archive.ubuntu.com/ubuntu
местоположения репозитория.
-
Dist-name: . Имя распространения выпуска Ubuntu. Для Ubuntu 12.04 это precise
, для 11.10 это oneiric
.
Вы можете посетить Ubuntu Wiki, чтобы просмотреть обновленный список выпусков Ubuntu и их кодовые имена .
-
Компонент: Он может быть main
, universe
, multiverse
и restricted
. Эти слова указывают уровень поддержки пакетов и статус лицензирования. Р>
Подробнее см. эту страницу .
Обратите внимание, что вы можете добавить один или несколько компонентов в строку, поэтому «main», «universe», «limited» и «multiverse» могут находиться в одной строке. Также обратите внимание: хотя вы добавляете несколько компонентов в одну строку, система APT рассматривает их как отдельную строку, содержащую только один компонент. Р>
Итак, если ваш sources.list
имеет строку, подобную этой
deb http://archive.ubuntu.com/ubuntu precise universe
Тогда у него не может быть другой строки, как показано ниже (что у ваших файлов)
deb http://archive.ubuntu.com/ubuntu precise main universe
, что эквивалентно этим двум линиям
deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe
Потому что вы дублируете юниверс дважды, поэтому для этого дубликата будет ошибка. Для каждого найденного дубликата будет указана ошибка.
Решение:
После анализа вашего файла sources.list
я обнаружил, что он является базовым, который по умолчанию предоставляется Ubuntu. Вы можете создать файл по умолчанию, следуя процедуре:
-
Откройте терминал и сначала переименуйте существующий файл sources.list
в файл sources.list.bak
. (мы можем безопасно удалить это, но осторожность хорошая).
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
-
Затем откройте software-properties-gtk
, чтобы построить новый. Введите команду ниже в терминале или в командной строке с нажатием Alt + F2
software-properties-gtk
Примечание. Для Ubuntu версии 11.10 или более ранней версии вы должны использовать gksu
перед командой software-properties-gtk
-
После того, как окно открыто,
- Выберите все четыре категории в вкладке Ubuntu Software
- Выберите точная защита , точные обновления и точная обратная связь на вкладке Обновления .
- Выберите категорию Канонический партнер и Независимый на вкладке Другие программы .
Вот и все. У вас есть файл sources.list
по умолчанию без ошибок. Сравните этот файл с предыдущим, если хотите.
Обновление для работы с файлами sources.list.d
dir
Иногда дублирующаяся запись может быть в файле в каталоге /etc/apt/sources.list.d
, который также используется APT. Итак, вы должны посмотреть на этот каталог и посмотреть, есть ли в этих файлах дубликат. Не обязательно, чтобы дубликаты находились в одном файле. Р>
Пример:
У пользователя появилось это сообщение об ошибке при выполнении 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
Но в файле http://dl.google.com
не было записи с /etc/apt/sources.list
. Посмотрев в каталоге /etc/apt/sources.list.d/
, мы нашли эти файлы:
вывод 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
Файлы google-chrome.list
и google.list
были хорошими кандидатами для хранения дубликатов. Таким образом, необходимо было проверить содержимое обоих файлов.
Результат cat /etc/apt/sources.list.d/google-chrome.list
:
deb http://dl.google.com/linux/chrome/deb/ stable main
и cat /etc/apt/sources.list.d/google.list
deb http://dl.google.com/linux/chrome/deb/ stable main
Итак, в источниках Apt были дубликаты записей. Поскольку google-chrome.list
содержит только одну apt-строку, и она также указана в файле google.list
, мы можем безопасно удалить этот файл с помощью команды
sudo rm /etc/apt/sources.list.d/google-chrome.list
Тогда проблема была решена.