Вопрос Как исправить «W: Дублировать запись sources.list»?


Я всегда получаю это предупреждение, когда пытаюсь запустить 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

Ниже приведен вывод из /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

Как это исправить?


186
2018-04-10 06:31


происхождения




ответы:


У ваших источников.list действительно есть повторяющиеся записи.

Сначала Посмотрим правильную форму строки репозитория или исходной строки:

Правильный формат исходной строки репозитория

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

Например, линия репо может быть похожа на эту

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

Здесь это означает, что репозиторий предназначен для двоичных пакетов, которые размещаются в http://archive.ubuntu.com/ubuntu и этот репозиторий предназначен для Ubuntu exact (12.04), и этот репозиторий содержит основное (программное обеспечение, которое официально поддерживается каноническим) компонентом.

  • Тип: Тип может быть deb а также deb-src, deb означает двоичный репозиторий, где deb-src означает исходный репозиторий

  • Место нахождения:  http://archive.ubuntu.com/ubuntu расположение репозитория.

  • Dist имя: Название распространения выпуска 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. Вы можете создать файл по умолчанию, следуя процедуре:

  1. Откройте терминал и сначала переименуйте существующий sources.list файл для sources.list.bak файл. (мы можем безопасно удалить это, но осторожность хорошая).

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Затем откройте software-properties-gtk построить новый. Введите команду ниже в терминале или в командной строке с нажатием Alt+F2

    software-properties-gtk
    

    Обратите внимание: для Ubuntu версии 11.10 или более ранней версии вам необходимо использовать gksu перед software-properties-gtk команда

  3. После того, как окно открыто,

    • Выберите все четыре категории в Программное обеспечение Ubuntu табуляция
    • Выбрать Точная-безопасности, Точное-обновление а также Точные-Backports категории в Обновления Вкладка.
    • Выбрать Канонический партнер а также независимый категория от Другое программное обеспечение Вкладка.

Вот и все. У вас есть значение по умолчанию 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 содержат только одну метку, и она также указана в google.list файл, мы можем безопасно удалить этот файл с помощью команды

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

Тогда проблема была решена.


225
2017-09-05 17:33



+1 Это отличный ответ. Исправлена ​​проблема и подробно объяснялось, почему она произошла. - akmad
Что я сделал, чтобы заставить меня иметь повторяющиеся записи в моих sources.list.d? - Seanny123
Большое спасибо. Мне было интересно, как произошли дубликаты. Наконец вы показали sources.list.d - Isura Manchanayake
Хороший и тщательный ответ. В вашей Обновление для работы с файлами sources.list.d вы объясните, какие файлы / строки предоставляют дубликаты. Не могли бы вы также объяснить, какие из 6 пар строк (так как вы говорите «у вашего файла есть 6 дубликатов там») в OP, которые дают дубликаты? - sancho.s
Подсказка, чтобы проверить мои sources.list.d, помогла мне решить эту проблему. - lcarsos


Для Ubuntu 12.04 

Графически:

Нажмите Alt + F2 и вставить software-properties-gtk (или вы можете открыть «Центр программного обеспечения», затем перейдите в «Редактировать»> «Источники программного обеспечения»). Перейдите на вкладку «Другое программное обеспечение», выберите дублируемую запись и нажмите кнопку «Удалить».

enter image description here


Если вам нужна опция командной строки, вот она:

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

Команда выполняет следующее:

cat читает файл и передает содержимое perl который удаляет повторяющиеся строки. Затем результат сохраняется > во временном файле, который затем перемещается для замены оригинала /etc/apt/sources.list файл.


77
2018-05-04 22:27



Ваш скрипт работал отлично. - Lucio
Просто, как исправить это, без путаницы и всех слишком глубоких деталей. Спасибо! - P.M
Это действительно сработало! Не удалось, по какой-либо причине, установить git на 12.04 либо. Вместо того, чтобы удалять, я просто проверил очевидных дублированных «канонических партнеров». - davidkonrad
Я запустил однострочный, но sudo apt-get update все еще жалуется на дубликаты записей, как будто ничего не изменилось. Если это имеет значение, я на 12.04 (в частности, элементарная ОС Луна). - waldyrious
cat бесполезен и не позволяет использовать sudo perl -i - tripleee


Насколько плохи повторяющиеся записи в sources.list?

Я не знаю, как это плохо, но мне не нравится Обновление sudo apt-get показывая мне повторяющиеся записи.

Кстати, это не так уж плохо, просто показывая вам, что у вас есть повторяющиеся записи.

SourcesList

Файл sources.list является ключевым фактором при добавлении или обновлении приложений к вашей установке Ubuntu. Это также используется вашей системой для обновления системы. Файл в основном является дорожной картой для вашей системы, чтобы знать, где она может загружать программы для установки или обновления.

Его так же, как Windows update

Вы можете удалить повторяющиеся записи несколькими шагами с помощью Менеджер PPA

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

открыто у-PPA-менеджер форма тир

Введите пароль администратора

enter image description here

Дважды нажмите «Дополнительно»

enter image description here

Сканирование и удаление дубликатов PPA и нажмите «ОК»

enter image description here

Это займет некоторое время (1 или 2 Mints) для сканирования и удаления дубликатов PPA


22
2018-05-08 05:36



В моем случае Y PPA продолжал говорить, что не найдено дубликатов. Я сделал резервную копию source.list, удалив его и запустил sudo apt-get update, чтобы воссоздать исходный список (ubuntu 12.04). Это сработало для меня. - michel.iamit
Поработал для меня на Монетном дворе 17, спасибо человеку! - spences10
Работала для меня на ubuntu 14.04..Спасибо приятелю .. :) - Rahul Singh
работал как шарм - vector
В моем случае 14.04 он продолжает говорить Не найдено дубликатов - Muhammad Omer Aslam


Репозиторий-партнер дублируется внутри /etc/apt/sources.list а также /etc/apt/sources.list.d/precise-partner.list,

Просто удалите эти файлы «точного партнера», поскольку репозиторий-партнер уже присутствует в sources.list,

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

16
2017-09-01 19:20



Я получаю rm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory - Dennis
Пытаться sudo rm /etc/apt/sources.list.d/*partner*, Также проверьте ваш /etc/apt/sources.list, найдите дубликаты строк. - Eric Carvalho
Не повезло, у меня нет файлов с «партнером» в имени в этом каталоге. А также /etc/apt/sources.list не содержит дубликатов в соответствии с uniq, - Dennis


Создайте резервную копию ваших sources.list:

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

Теперь удалите оригинал и обновите:

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

10
2017-07-04 05:16



Как он может обновляться без sources.listфайл? - Anwar
Он будет заселен. знак равно - wojox
@wojox Это работает, спасибо. - quantme
мой не пересаживал - conman253
Вернитесь к тому, который вы создали - wojox


У меня была та же проблема, открытые источники программного обеспечения. неконтролируемые «Канонические партнеры». Конфликт между «Канонические партнеры» и «Канонические партнеры, добавленные программным центром»,


8
2018-04-11 05:11





Если вы не могли понять это в своем source.list, затем выполните следующее:

  1. Щелкните левой кнопкой мыши по значку настроек (в крайнем верхнем углу экрана) и выберите «Системные настройки».
  2. Нажмите «Источники программного обеспечения» и перейдите в «Другое программное обеспечение».
  3. Снимите отметку с одного из «Канонических партнеров (исходный код)», программного обеспечения, упакованного Canonical для файлов своих партнеров, и одного из «Канонических партнеров» - программного обеспечения, упакованного Canonical для файлов своих партнеров, и нажмите «Закрыть», чтобы уйти.
  4. Одновременно нажмите CTRL + ALT + T ключей для открытия терминала и типа sudo apt-get update,

7
2018-04-11 06:15



Я следовал вашим предложениям, но все же я получаю эту ошибку. - hsinxh
Пожалуйста, разместите изображение своих «Источников программного обеспечения» здесь, чтобы узнать виновника. - all4naija
Пожалуйста, разместите изображение своего «Другого программного обеспечения» здесь. - all4naija


Для Ubuntu 9.10 - 12.04

Существует приложение под названием Y-PPA-Manager, которое может это сделать и многое другое.

Вы можете установить его так же из терминала:

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

После этого просто запустите приложение и перейдите в меню «Дополнительно».

enter image description here

Затем выберите «Сканировать и удалить дубликаты PPA» и нажмите «ОК».

enter image description here


5
2018-05-06 13:25



Это классный инструмент, но это не проблема. Я сделал этот выбор и после этого получил те же предупреждения. - nazar_art


10.10 и ранее

Приложения> Центр программного обеспечения Ubuntu> Редактировать> Источники программного обеспечения> Другое программное обеспечение

ИЛИ

Система> Администрирование> Synaptic Packet Manager> Настройки> Репозитории

Software Sources config window

Выбор и удаление повторяющихся записей.


5
2017-11-18 15:43