Установленный snapd на 14.04 & hellip; теперь & ldquo; Не удалось выполнить вызов метода: Unit postgresql@9.4-main.service не удалось загрузить: нет такого файла или каталога. & Rdquo; [dубликат]

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

Как мне исправить?

188
задан 24 May 2017 в 09:59

34 ответа

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

8
ответ дан 17 July 2018 в 21:25

Прошел через /etc/apt/sources.list вручную sudo nano /etc/apt/sources.list и удалил дубликаты. После apt-get update проблема была решена.

1
ответ дан 17 July 2018 в 21:25

В моем случае дубликаты были в файле prerequists-sources.list. Я смог продолжить обновление, выполнив следующие команды в терминале:

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

Затем перейдите к Update Manager и установите обновления.

1
ответ дан 17 July 2018 в 21:25

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

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

sudo rm /etc/apt/sources.list.d/precise-partner.*
16
ответ дан 17 July 2018 в 21:25

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

Щелкните левой кнопкой мыши по значку настроек (в крайнем верхнем углу экрана) и выберите «Системные настройки». Нажмите «Источники программного обеспечения» и перейдите в «Другое программное обеспечение». Снимите отметку с одного из «Канонических партнеров (исходный код)», программного обеспечения, упакованного Canonical для файлов своих партнеров, и одного из «Канонических партнеров» - программного обеспечения, упакованного Canonical для файлов своих партнеров, и нажмите «Закрыть», чтобы уйти. Одновременно нажмите клавиши CTRL + ALT + T, чтобы открыть терминал и введите sudo apt-get update.
7
ответ дан 17 July 2018 в 21:25
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

* Разъемы строк вставлены для удобочитаемости.

0
ответ дан 17 July 2018 в 21:25

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

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

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

SourcesList

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

Это точно так же, как обновление Windows

. Вы можете удалить повторяющиеся записи за несколько простых шагов, чтобы узнать, где он может загружать программы для установки или обновления. 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

Открыть sudo apt-get update form Dash

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

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

Двойной щелчок Вкл. Дополнительно

Двойной щелчок Вкл. Дополнительно

Потребуется некоторое время (1 или 2 Mints) для сканирования и amp; Удалить дубликаты PPA
22
ответ дан 17 July 2018 в 21:25

Для Ubuntu 12.04

Графически:

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

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

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
ответ дан 17 July 2018 в 21:25

У ваших источников.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), и этот репозиторий содержит основное (программное обеспечение, которое официально поддерживается компонентом Canonical).

Тип: Тип может быть deb и [F14]. 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. Эти слова указывают уровень поддержки пакетов и статус лицензирования.

См. эту страницу для получения дополнительной информации.

У ваших источников.list действительно есть повторяющиеся записи. Также обратите внимание: хотя вы добавляете более одного компонента в один line, 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

Поскольку вы дублируете , у ваших источников.list действительно есть повторяющиеся записи. дважды, так что будет ошибка для этого дубликата. Ошибка для каждого найденного дубликата.

Решение:

После анализа вашего файла 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». На вкладке «Обновления» выберите категорию «Точная защита», «Точные обновления» и «Точная резервная копия». Выберите «Канонический партнер» и «Независимая категория» на вкладке «Прочее программное обеспечение».

Вот и все. У вас есть файл по умолчанию 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

So , в источниках Apt были дубликаты записей. Поскольку google-chrome.list содержит только одну метку, и она также была указана в файле google.list, мы можем безопасно удалить этот файл с помощью команды

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

Затем проблема была решена.

222
ответ дан 17 July 2018 в 21:25

Ну, я решил проблему с Duplicate Entry самостоятельно, переименовав /etc/apt/sources.d (как root) на что-то еще и запустив sudo apt-get update, чтобы восстановить каталог и его содержимое.

1
ответ дан 17 July 2018 в 21:25

Это подходящее задание для uniq, которое пропускает повторяющиеся строки и печатает только уникальные записи, поэтому мы можем взять вывод uniq и заменить старый файл на выход uniq:

sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources /etc/apt/sources.list
0
ответ дан 17 July 2018 в 21:25

Для 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

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

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

5
ответ дан 17 July 2018 в 21:25

Нет, нет одной командной строки для поиска и удаления дублированных записей в файле /etc/apt/sources.list.

Это связано с тем, что предлагаемые командные строки, которые просто дублируют функцию гораздо более простой встроенная команда uniq, будет работать только в файле SORTED и будет удалять только строки ADJACENT. Кроме того, эти команды будут удалять только строки, состоящие из одинаковой строки символов.

Дублирующие записи, сообщенные apt-get update, будут состоять из дубликатов идентичных строк символов записей, таких как репозиторий включен в оба варианта i386 и amd64. Легкий и эффективный способ их удаления - отметить, какие репозитории сообщаются как дубликаты с помощью apt-get update и удалять их через Центр программного обеспечения. Откройте его и выберите «Редактировать» -> «Источники программного обеспечения -> вкладка« Прочее программное обеспечение ». Просто найдите дубликаты записей и снимите их. (Это также возможность удалить любые source-code репозитории, если вы не компилируете пакеты).

Однако следует отметить, что apt-get update не только находит повторяющиеся записи через sources.list, но содержит файлы репозитория, расположенные в /var/lib/apt/lists/. Удаление повторяющихся записей оттуда будет временно удалять сообщения об ошибках apt-get update, если Ubuntu считает, что он им нужен, поскольку файлы будут автоматически переустановлены. Тот факт, что apt-get update сообщит о некоторых репозиториях как дубликаты, а затем предположим, что вы запускаете apt-get update для их ремонта, является ключом, который вам действительно не нужно беспокоиться об этом сообщении об ошибке.

1
ответ дан 17 July 2018 в 21:25

В случае 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)

Open: sources.list.d

rm google.list

, поэтому остается только google-chrome.list

0
ответ дан 17 July 2018 в 21:25

Выполните следующие действия для удаления дубликатов

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list
0
ответ дан 17 July 2018 в 21:25

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

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

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

sudo rm /etc/apt/sources.list && sudo apt-get update
10
ответ дан 17 July 2018 в 21:25

Я пытаюсь выполнить возможности, предлагаемые другими пользователями с помощью терминала, поскольку это то, что вы просили, в основном:

войти, если вы используете текстовую установку или нажмите Alt + F2 и введите gnome -терминал, если вы используете GUI

Затем введите

sudo nano /etc/apt/sources.list

(Чтобы лучше понять: в каталоге /etc вы можете найти (почти) все файлы конфигурации вашего компьютера и в каталоге apt вы найдете файл souces.list, содержащий все репозитории, которые APT использует для обновления или установки и обновления программного обеспечения)

Отредактируйте удаление файла или комментирование с помощью # в начале из строки любые дублированные строки.

Нажмите Alt + X, чтобы выйти, и нажмите F2 , чтобы сохранить файл (или n, чтобы выйти без сохранения).

Затем обновите, чтобы убедиться, что вы исправили его:

sudo apt-get update

Удачи!

1
ответ дан 17 July 2018 в 21:25

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

8
ответ дан 23 July 2018 в 22:03

Прошел через /etc/apt/sources.list вручную sudo nano /etc/apt/sources.list и удалил дубликаты. После apt-get update проблема была решена.

1
ответ дан 23 July 2018 в 22:03

В моем случае дубликаты были в файле prerequists-sources.list. Я смог продолжить обновление, выполнив следующие команды в терминале:

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

Затем перейдите к Update Manager и установите обновления.

1
ответ дан 23 July 2018 в 22:03
  • 1
    Перемещение в / tmp не требуется. Переименование чего-то, что не заканчивается на .list, достаточно – Daniel Alder 14 October 2014 в 01:03

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

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

sudo rm /etc/apt/sources.list.d/precise-partner.*
16
ответ дан 23 July 2018 в 22:03
  • 1
    Я получаю rm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory – Dennis 31 March 2013 в 05:00
  • 2
    Попробуйте sudo rm /etc/apt/sources.list.d/*partner*. Также проверьте ваш /etc/apt/sources.list, найдите дубликаты строк. – Eric Carvalho 31 March 2013 в 05:51
  • 3
    Не повезло, у меня нет файлов с «партнером». в имени в этом каталоге. И /etc/apt/sources.list не содержит дубликатов в соответствии с uniq. – Dennis 24 June 2013 в 04:03

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

Щелкните левой кнопкой мыши по значку настроек (в крайнем верхнем углу экрана) и выберите «Системные настройки». Нажмите «Источники программного обеспечения» и перейдите в «Другое программное обеспечение». Снимите отметку с одного из «Канонических партнеров (исходный код)», программного обеспечения, упакованного Canonical для файлов своих партнеров, и одного из «Канонических партнеров» - программного обеспечения, упакованного Canonical для файлов своих партнеров, и нажмите «Закрыть», чтобы уйти. Одновременно нажмите клавиши CTRL + ALT + T, чтобы открыть терминал и введите sudo apt-get update.
7
ответ дан 23 July 2018 в 22:03
  • 1
    Я следовал вашим предложениям, но все же я получаю эту ошибку. – hsinxh 11 April 2012 в 13:08
  • 2
    Пожалуйста, разместите изображение своих «Источников программного обеспечения» здесь, чтобы узнать виновника. – all4naija 11 April 2012 в 23:19
  • 3
    Пожалуйста, разместите изображение своего «Другого программного обеспечения» здесь. – all4naija 11 April 2012 в 23:22
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

* Разъемы строк вставлены для удобочитаемости.

0
ответ дан 23 July 2018 в 22:03
  • 1
    Пожалуйста, объясните ответ или риск его удаления. – jokerdino♦ 4 July 2012 в 09:55
  • 2
    Добро пожаловать в Ask Ubuntu! Как указано в jokerdino, этот ответ был бы полезен, если бы вы отредактировали его, чтобы добавить какое-то объяснение (или, по крайней мере, сказать пользователю точно , что делать с этими строками ). – Eliah Kagan 4 July 2012 в 15:34
  • 3
    Этот ответ неверен, поскольку он может удалять повторяющиеся записи, но не удаляет дубликаты исходных записей . см. здесь для объяснения – Anwar 6 September 2012 в 10:26

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

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

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

SourcesList

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

Это точно так же, как обновление Windows

. Вы можете удалить повторяющиеся записи за несколько простых шагов, чтобы узнать, где он может загружать программы для установки или обновления. 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

Открыть sudo apt-get update form Dash

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

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

Двойной щелчок Вкл. Дополнительно

Двойной щелчок Вкл. Дополнительно

Потребуется некоторое время (1 или 2 Mints) для сканирования и amp; Удалить дубликаты PPA
22
ответ дан 23 July 2018 в 22:03
  • 1
    В моем случае Y PPA продолжал говорить, что не найдено дубликатов. Я сделал резервную копию source.list, удалив его и запустил sudo apt-get update, чтобы воссоздать исходный список (ubuntu 12.04). Это сработало для меня. – michel.iamit 5 July 2013 в 13:27
  • 2
    Поработал для меня на Монетном дворе 17, спасибо человеку! – spences10 28 September 2014 в 16:42
  • 3
    Работала для меня на ubuntu 14.04..Спасибо приятелю .. :) – Rahul Singh 24 March 2016 в 07:05
  • 4
    работал как шарм – vector 29 June 2016 в 03:16
  • 5
    В моем случае в 14.04 он продолжает говорить Нет дубликатов Найдено – Muhammad Omer Aslam 23 January 2018 в 14:44

Для Ubuntu 12.04

Графически:

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

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

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
ответ дан 23 July 2018 в 22:03
  • 1
    Ваш скрипт работал отлично. – Lucio 21 December 2013 в 03:01
  • 2
    Просто, как исправить это, без путаницы и всех слишком глубоких деталей. Спасибо! – P.M 21 July 2014 в 23:00
  • 3
    Это действительно сработало! Не удалось, по какой-либо причине, установить git на 12.04 либо. Вместо удаления я просто проверил очевидные дублированные «канонические партнеры». – davidkonrad 15 October 2014 в 17:10
  • 4
    Я запускал однострочный, но sudo apt-get update все еще жалуется на дубликаты записей, как будто ничего не изменилось. Если это имеет значение, я на 12.04 (в частности, элементарная ОС Луна). – waldyrious 5 March 2016 в 14:22
  • 5
    [D0] cat бесполезен и не позволяет вам использовать sudo perl -i – tripleee 7 December 2017 в 13:51

У ваших источников.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), и этот репозиторий содержит основное (программное обеспечение, которое официально поддерживается компонентом Canonical).

Тип: Тип может быть deb и [F14]. 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. Эти слова указывают уровень поддержки пакетов и статус лицензирования.

См. эту страницу для получения дополнительной информации.

У ваших источников.list действительно есть повторяющиеся записи. Также обратите внимание: хотя вы добавляете более одного компонента в один line, 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

Поскольку вы дублируете , у ваших источников.list действительно есть повторяющиеся записи. дважды, так что будет ошибка для этого дубликата. Ошибка для каждого найденного дубликата.

Решение:

После анализа вашего файла 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». На вкладке «Обновления» выберите категорию «Точная защита», «Точные обновления» и «Точная резервная копия». Выберите «Канонический партнер» и «Независимая категория» на вкладке «Прочее программное обеспечение».

Вот и все. У вас есть файл по умолчанию 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

So , в источниках Apt были дубликаты записей. Поскольку google-chrome.list содержит только одну метку, и она также была указана в файле google.list, мы можем безопасно удалить этот файл с помощью команды

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

Затем проблема была решена.

222
ответ дан 23 July 2018 в 22:03
  • 1
    +1 Это отличный ответ. Исправлена ​​проблема и подробно объяснялось, почему она произошла. – akmad 27 April 2013 в 14:13
  • 2
    Что я сделал, чтобы заставить меня иметь повторяющиеся записи в моих sources.list.d? – Seanny123 11 November 2013 в 15:19
  • 3
    Большое спасибо. Мне было интересно, как произошли дубликаты. Наконец вы показали sources.list.d – Isura Manchanayake 17 February 2016 в 19:57
  • 4
    Хороший и тщательный ответ. В вашем обновлении для работы с файлами sources.list.d dir вы объясняете, какие файлы / строки предоставляют дубликаты. Не могли бы вы также объяснить, какие из 6 пар строк (так как вы говорите «ваш файл имеет 6 дубликатов там») в OP, которые дают дубликаты? – sancho.s 18 May 2016 в 11:55
  • 5
    Подсказка, чтобы проверить мои sources.list.d, помогла мне решить эту проблему. – lcarsos 1 June 2016 в 20:38

Ну, я решил проблему с Duplicate Entry самостоятельно, переименовав /etc/apt/sources.d (как root) на что-то еще и запустив sudo apt-get update, чтобы восстановить каталог и его содержимое.

1
ответ дан 23 July 2018 в 22:03

Это подходящее задание для uniq, которое пропускает повторяющиеся строки и печатает только уникальные записи, поэтому мы можем взять вывод uniq и заменить старый файл на выход uniq:

sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources /etc/apt/sources.list
0
ответ дан 23 July 2018 в 22:03

Для 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

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

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

5
ответ дан 23 July 2018 в 22:03
  • 1
    Это классный инструмент, но это не проблема. Я сделал этот выбор и после этого получил те же предупреждения. – nazar_art 25 July 2013 в 15:28

Нет, нет одной командной строки для поиска и удаления дублированных записей в файле /etc/apt/sources.list.

Это связано с тем, что предлагаемые командные строки, которые просто дублируют функцию гораздо более простой встроенная команда uniq, будет работать только в файле SORTED и будет удалять только строки ADJACENT. Кроме того, эти команды будут удалять только строки, состоящие из одинаковой строки символов.

Дублирующие записи, сообщенные apt-get update, будут состоять из дубликатов идентичных строк символов записей, таких как репозиторий включен в оба варианта i386 и amd64. Легкий и эффективный способ их удаления - отметить, какие репозитории сообщаются как дубликаты с помощью apt-get update и удалять их через Центр программного обеспечения. Откройте его и выберите «Редактировать» -> «Источники программного обеспечения -> вкладка« Прочее программное обеспечение ». Просто найдите дубликаты записей и снимите их. (Это также возможность удалить любые source-code репозитории, если вы не компилируете пакеты).

Однако следует отметить, что apt-get update не только находит повторяющиеся записи через sources.list, но содержит файлы репозитория, расположенные в /var/lib/apt/lists/. Удаление повторяющихся записей оттуда будет временно удалять сообщения об ошибках apt-get update, если Ubuntu считает, что он им нужен, поскольку файлы будут автоматически переустановлены. Тот факт, что apt-get update сообщит о некоторых репозиториях как дубликаты, а затем предположим, что вы запускаете apt-get update для их ремонта, является ключом, который вам действительно не нужно беспокоиться об этом сообщении об ошибке.

1
ответ дан 23 July 2018 в 22:03

Другие вопросы по тегам:

Похожие вопросы: