Jak naprawić błąd „W: Duplicate sources.list”?

190

Otrzymuję to ostrzeżenie za każdym razem, gdy próbuję uruchomić 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

Poniżej znajduje się wynik z /etc/apt/sources.listpliku:

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

Jak to naprawić?

hsinxh
źródło

Odpowiedzi:

229

Twój sources.list naprawdę ma zduplikowane wpisy.

Najpierw zobaczmy poprawną formę linii repozytorium lub linii źródłowej:

Prawidłowy format wiersza źródła repozytorium to

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

Na przykład linia repo może być taka

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

Oznacza to, że repozytorium jest dla pakietów binarnych, które są hostowane w http://archive.ubuntu.com/ubuntu, a to repozytorium jest dla Ubuntu precyzyjnie (12.04), a to repozytorium zawiera główne (oprogramowanie, które jest oficjalnie obsługiwane przez Komponent kanoniczny).

  • Typ: typem może być debi deb-src. deboznacza repozytorium binarne, gdzie deb-srcoznacza repozytorium źródłowe

  • Lokalizacja: http://archive.ubuntu.com/ubuntu lokalizacja repozytorium.

  • Dist-name: nazwa dystrybucji wersji Ubuntu. Tak jest w przypadku Ubuntu 12.04 precise, w przypadku wersji 11.10 oneiric.
    Możesz odwiedzić Wiki Ubuntu, aby wyświetlić zaktualizowaną listę wydań Ubuntu i ich nazwy kodowe .

  • Składnik: To może być main, universe, multiversei restricted. Te słowa wskazują poziom obsługi pakietów i status licencjonowania.

Zobacz tę stronę, aby uzyskać więcej informacji.

Pamiętaj, że możesz dodać jeden lub więcej składników w linii, więc „główny”, „wszechświat”, „ograniczony” i „multiwersum” mogą znajdować się w jednej linii. Pamiętaj również, że chociaż dodajesz więcej niż jeden komponent w jednej linii, system APT traktuje je jako osobną linię zawierającą tylko jeden komponent.

Więc jeśli sources.listmasz taką linię

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

To nie może mieć innej linii, jak poniżej (które mają twoje pliki)

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

co jest równoważne z tymi dwiema liniami

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

Ponieważ duplikujesz wszechświat dwa razy, więc wystąpi błąd dla tego duplikatu. Błąd zostanie podany dla każdego znalezionego duplikatu.

Rozwiązanie:

Po przeanalizowaniu sources.listpliku stwierdziłem, że jest to podstawowy plik, który jest domyślnie dostarczany przez Ubuntu. Możesz zbudować plik domyślny, postępując zgodnie z procedurą:

  1. Otwórz terminal i najpierw zmień nazwę istniejącego sources.listpliku na sources.list.bakplik. (możemy to bezpiecznie usunąć, ale ostrożność jest dobra).

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Następnie otwórz, software-properties-gtkaby zbudować nowy. Wpisz poniższe polecenie w terminalu lub w wierszu polecenia myślnika, naciskając Alt+F2

    software-properties-gtk
    

    Uwaga: w przypadku Ubuntu w wersji 11.10 lub wcześniejszej należy użyć gksuprzed software-properties-gtkpoleceniem

  3. Po otwarciu okna

    • Wybierz wszystkie cztery kategorie w zakładce Oprogramowanie Ubuntu
    • Wybierz kategorię precyzyjne bezpieczeństwo , precyzyjne aktualizacje i precyzyjne backporty w zakładce Aktualizacje .
    • Wybierz kategorię Partner kanoniczny i Niezależny z zakładki Inne oprogramowanie .

Otóż ​​to. Masz teraz domyślny sources.listplik bez błędów. Jeśli chcesz, porównaj ten plik z poprzednim.


Zaktualizuj, aby obsługiwać sources.list.dpliki dir

Czasami zduplikowany wpis może znajdować się w pliku w /etc/apt/sources.list.dkatalogu, z którego korzysta również APT. Powinieneś więc spojrzeć na ten katalog i sprawdzić, czy w tych plikach jest duplikat. Nie jest konieczne, aby duplikaty znajdowały się w tym samym pliku.

Przykładowy przypadek:

Użytkownik miał podczas wyświetlania ten komunikat o błędzie 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

Ale http://dl.google.comw głównym /etc/apt/sources.listpliku nie było wpisu . Przeglądając /etc/apt/sources.list.d/katalog znaleźliśmy następujące pliki:

wyjście 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

Pliki google-chrome.listi google.listbyli dobrymi kandydatami do zawierających duplikaty. Konieczne było więc sprawdzenie zawartości obu plików.

Wyjście cat /etc/apt/sources.list.d/google-chrome.list:

deb http://dl.google.com/linux/chrome/deb/ stable main  

i cat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

W źródłach Apt były zduplikowane wpisy. Ponieważ google-chrome.listzawiera on tylko pojedynczą linię apt i był również wymieniony w google.listpliku, możemy bezpiecznie usunąć ten plik za pomocą polecenia

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

Następnie problem został rozwiązany.

Anwar
źródło
5
Co zrobiłem, aby mieć zduplikowane wpisy w mojej pliku sources.list.d?
Seanny123
@ Seanny123 Trudno powiedzieć.
Anwar,
1
Dziękuję Ci bardzo. Zastanawiałem się godzinami, jak zdarzyły się duplikaty. W końcu pokazałeś sources.list.d
Isura Manchanayake
1
Ładna i dokładna odpowiedź. W swojej aktualizacji dotyczącej plików sources.list.d dir wyjaśniasz, które pliki / linie dają duplikaty. Czy mógłbyś podobnie wyjaśnić, które są 6 parami linii (skoro mówisz „twój plik ma tam 6 duplikatów”) w PO, które dają duplikaty?
sancho.s
1
Porada, aby przejść do mojej strony sources.list.d, pomogła mi rozwiązać ten problem.
lcarsos
80

Dla Ubuntu 12.04

Graficznie:

Naciśnij Alt+ F2i wklej software-properties-gtk(lub możesz otworzyć „Centrum oprogramowania”, a następnie przejść do „Edycja”> „Źródła oprogramowania”). Przejdź do zakładki „Inne oprogramowanie”, wybierz zduplikowany wpis i naciśnij przycisk „Usuń”.

wprowadź opis zdjęcia tutaj


Jeśli potrzebujesz opcji wiersza polecenia, oto ona:

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

Polecenie wykonuje następujące czynności:

catodczytuje plik i przekazuje zawartość, do perlktórej usuwa zduplikowane linie. Wynik jest następnie zapisywany >w pliku tymczasowym, który jest następnie przenoszony w celu zastąpienia oryginalnego /etc/apt/sources.listpliku.

desgua
źródło
2
Jak to naprawić, bez zamieszania i wszystkich zbyt głębokich szczegółów. Dziękuję Ci!
Peter M.
To naprawdę działało! Z jakiegoś powodu nie można również zainstalować git na 12.04. Zamiast usunąć, właśnie sprawdziłem zduplikowane „partnerów kanonicznych”.
davidkonrad
3
Uruchomiłem linijkę, ale sudo apt-get updatewciąż narzekam na zduplikowane wpisy, jakby nic się nie zmieniło. Jeśli to ma znaczenie, mam 12.04 (konkretnie elementarne OS Luna).
waldyrious
catJest bezużyteczny i uniemożliwia korzystaniesudo perl -i
tripleee
24

Jak złe są zduplikowane wpisy w pliku sources.list?

Nie wiem, jak źle jest, ale nie lubię aktualizacji sudo apt-get pokazującej mi zduplikowane wpisy.

Nawiasem mówiąc, nie jest tak źle, po prostu pokazuje, że masz zduplikowane wpisy.

SourcesList

Plik sources.list jest kluczowym czynnikiem w dodawaniu lub uaktualnianiu aplikacji do instalacji Ubuntu. Jest to również używane przez twój system do aktualizacji systemu. Plik jest w zasadzie mapą drogową dla twojego systemu, aby wiedzieć, skąd może pobierać programy do instalacji lub aktualizacji.

To jest jak aktualizacja Windows

Za pomocą Y PPA Manager możesz usunąć zduplikowane wpisy w kilku prostych krokach

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

Otwórz formularz y-ppa-manager Dash

Wpisz hasło administratora

wprowadź opis zdjęcia tutaj

Kliknij dwukrotnie Zaawansowane

wprowadź opis zdjęcia tutaj

Skanuj i usuń zduplikowane PPA i kliknij OK

wprowadź opis zdjęcia tutaj

Zajmie to trochę czasu (1 lub 2 mennice), aby skanować i usuwać zduplikowane pliki PPA

Qasim
źródło
2
W moim przypadku firma Y PPA powtarzała, że ​​nie znaleziono duplikatów. Zrobiłem kopię zapasową source.list, usunąłem ją i uruchomiłem sudo apt-get update, aby odtworzyć listę źródeł (ubuntu 12.04). To zadziałało dla mnie.
michel.iamit
1
Pracowałem dla mnie nad Mennicą 17, dzięki stary!
spences10
Pracowałem dla mnie na Ubuntu 14.04..Dziękuję kolego .. :)
Rahul Singh
1
działało jak urok
wektor
1
W moim przypadku 14.04 ciągle powtarza brak znalezionych duplikatów
Muhammad Omer Aslam
16

Repozytorium partnera jest duplikowane wewnątrz /etc/apt/sources.listi /etc/apt/sources.list.d/precise-partner.list.

Po prostu usuń te pliki „partnerów precyzyjnych”, ponieważ repozytorium partnerów jest już obecne sources.list.

sudo rm /etc/apt/sources.list.d/precise-partner.*
Eric Carvalho
źródło
Dostajęrm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory
Dennis
1
Spróbować sudo rm /etc/apt/sources.list.d/*partner*. Sprawdź także swoją /etc/apt/sources.list, poszukaj duplikatów linii.
Eric Carvalho
Nie mam szczęścia, nie mam żadnych plików z „partnerem” w nazwie w tym katalogu. I /etc/apt/sources.listnie zawiera żadnych duplikatów zgodnie z uniq.
Dennis
10

Utwórz kopię zapasową źródeł.list:

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

Teraz usuń oryginał i zaktualizuj:

sudo rm /etc/apt/sources.list && sudo apt-get update
wojox
źródło
Jak może aktualizować bez sources.listpliku?
Anwar
Ponownie się zaludni. =)
wojox
mój nie
zaludnił się
Powróć do tego, którego kopię zapasową
utworzyłeś
Jak wrócić do listy kopii zapasowych? usunięcie usunęło wiele ważnych rzeczy ... nie jest to całkowicie bezpieczne.
alvas
8

Miałem ten sam problem, otwarte źródła oprogramowania. odznaczone „Partnerzy kanoniczni”. Konflikt występuje między „partnerami kanonicznymi” a „partnerami kanonicznymi dodanymi przez centrum oprogramowania”

Amjed
źródło
7

Jeśli nie możesz tego rozgryźć w swoim source.list, zrób to:

  1. Kliknij lewym przyciskiem myszy ikonę ustawień (w górnym, górnym rogu ekranu) i wybierz Ustawienia systemu.
  2. Kliknij Źródła oprogramowania i przejdź do Inne oprogramowanie.
  3. Odznacz jedno z oprogramowania „Partnerzy Canonical (kod źródłowy) spakowane przez Canonical dla plików swoich partnerów” oraz jedno z „Partnerów kanonicznych - oprogramowanie spakowane przez Canonical dla plików swoich partnerów” i kliknij Zamknij, aby wyjść.
  4. Jednocześnie naciśnij klawisze CTRL+ ALT+ T, aby otworzyć terminal i wpisać sudo apt-get update.
all4naija
źródło
Postępowałem zgodnie z twoimi sugestiami, ale wciąż pojawia się ten błąd.
hsinxh
Prześlij zdjęcie swojego „Źródła oprogramowania” tutaj, aby poznać winowajcę.
all4naija
Proszę zamieścić tutaj zdjęcie swojego „Innego oprogramowania”.
all4naija,
6

10.10 i wcześniej

Aplikacje> Centrum oprogramowania Ubuntu> Edycja> Źródła oprogramowania> Inne oprogramowanie

LUB

System> Administracja> Menedżer pakietów Synaptic> Ustawienia> Repozytoria

Okno konfiguracji źródeł oprogramowania

Wybierz i usuń zduplikowane wpisy.

Sid
źródło
5

Dla Ubuntu 9.10 - 12.04

Istnieje aplikacja o nazwie Y-PPA-Manager, która może to zrobić i wiele więcej.

Możesz zainstalować go w ten sposób z terminalu:

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

Następnie uruchom aplikację i przejdź do menu Zaawansowane.

wprowadź opis zdjęcia tutaj

Następnie wybierz „Skanuj i usuń zduplikowane PPA” i naciśnij OK.

wprowadź opis zdjęcia tutaj

tylne światło
źródło
To fajne narzędzie, ale nie rozwiązuje problemu. Dokonałem tego wyboru, a potem mam te same ostrzeżenia.
nazar_art
4

Wygląda na to, że masz dwa identyczne wiersze w swoim /etc/apt/sources.listpliku.

Idź do terminala i wejdź sudo editor /etc/apt/sources.list, a następnie poszukaj identycznych linii w tym pliku, a jeśli je znajdziesz, usuń je. Po zakończeniu zapisz i wyjdź, a następnie zrób to, sudo apt-get updateco powinno rozwiązać problem.

Jeśli to nie rozwiąże problemu, będziesz musiał zastosować metodę prób i błędów. Najpierw utwórz kopię zapasową sources.listpliku, a następnie przejdź do pliku i skomentuj lub usuń każdy wiersz, zapisując i apt-get update-ing po skomentowaniu lub usunięciu każdego wiersza . Przechodzenie przez ten wiersz po wierszu, komentowanie różnych wierszy ostatecznie powie ci, która linia jest zbędna. Nie zapomnij o odkomentowaniu linii, które skomentowałeś, jeśli apt-get updatenadal wyświetla ten sam monit, w przeciwnym razie nie będziesz mieć żadnych źródeł w sources.listpliku.

Jeff Welling
źródło
4

Szukałem takiego narzędzia, ale nie znalazłem żadnego ...
Więc sam go kodowałem PHP.

Przepraszamy za brudny niezorganizowany kod źródłowy.

chkdup - zrzut ekranu:

wprowadź opis zdjęcia tutaj

Autor

Mubarak Alrashidi (DeaDSouL)

Wymagania:

  1. PHP.
  2. sudo.

Instalacja:

  1. Otwórz terminal.
  2. Aby zainstalować PHP jeśli nie masz, typ: sudo apt-get install php5 php5-cli.
  3. Pobierz chkdup .
  4. Wyodrębnij plik w dowolnym miejscu.
  5. Typ: sudo sh install.sh.

Odinstaluj:

  1. Otwórz terminal.
  2. Przejdź do ścieżki, do której wyodrębniono narzędzie.
  3. Typ: sudo sh uninstall.sh.

Jak tego użyć:

Wystarczy otworzyć terminal i wpisać sudo chkdup.

FAQ:

Co robi install.sh?

  • Instalator przeniesie chkdup.phpdo, /opt/a następnie utworzy dowiązanie symboliczne /usr/bin/.

Co z odinstalowaniem.sh?

  • Deinstalator usunie następujące pliki:

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. samo uninstall.sh

Czy korzystanie z programu chkdup jest bezpieczne?

  • Tak, ponieważ wymaga wykonania kopii zapasowej aktualnego pliku sources.list przed podjęciem jakichkolwiek działań. Ale nie jestem odpowiedzialny, jeśli coś się stanie. Pełna odpowiedzialność będzie po twojej stronie.

Licencja

Ogólna Licencja Publiczna GNU

Martwa dusza
źródło
właśnie wypróbowałem, fajnie i prosto :-) fajnie :-)
bmbaker
3

Sprawdziłeś ls /etc/apt/sources.list.d/? Może masz tam jakieś „dodatkowe” repozytoria?

koni_raid
źródło
2

Zainstaluj ubuntu-tweak i usuń stamtąd zduplikowane wpisy.

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

alternatywny tekst

karthick87
źródło
To nie mówi, jak to zrobić.
RolandiXor
1

Nie, nie ma ani jednego wiersza poleceń, aby znaleźć i usunąć zduplikowane wpisy w /etc/apt/sources.listpliku.

Jest tak, ponieważ sugerowane wiersze poleceń, które jedynie powielają funkcję znacznie prostszego wbudowanego uniqpolecenia, będą działać tylko na pliku SORTED i usuwają tylko wiersze ADJACENT. Ponadto polecenia te usuwają tylko wiersze składające się z identycznego ciągu znaków .

Zgłoszone zduplikowane wpisy apt-get updatebędą się składały ze zduplikowanych wpisów funkcji , takich jak repozytorium zawarte zarówno w jego, jak i386i amd64wariantach. Łatwym i skutecznym sposobem ich usunięcia jest zanotowanie, które repozytoria są zgłaszane jako duplikaty przez apt-get update i usunięcie ich za pośrednictwem Centrum oprogramowania . Otwórz i wybierz Edycja -> Źródła oprogramowania -> karta Inne oprogramowanie . Po prostu wyszukaj duplikaty wpisów i odznacz je. (Jest to również okazja do usunięcia wszelkich source-coderepozytoriów, jeśli nie kompilujesz pakietów).

Należy jednak zauważyć, że apt-get updatenie tylko można znaleźć zduplikowane wpisy sources.list, ale także pliki repozytorium znajdujące się w /var/lib/apt/lists/. Usunięcie stamtąd zduplikowanych wpisów spowoduje tymczasowe usunięcie apt-get updatekomunikatów o błędach tylko wtedy, gdy Ubuntu uzna, że ​​ich potrzebuje, ponieważ pliki zostaną automatycznie ponownie zainstalowane. Fakt, że apt-get updatezgłosi niektóre repozytoria jako duplikaty, a następnie zasugeruje, że uruchomisz apt-get updatesię, aby je naprawić, jest wskazówką, że tak naprawdę nie musisz się martwić o ten komunikat o błędzie.

Smarteralec
źródło
1

W moim przypadku duplikaty były w prerequists-sources.listpliku. Udało mi się kontynuować aktualizację, uruchamiając następujące polecenia w terminalu:

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

Następnie przejdź do strony Update Manageri zainstaluj aktualizacje.

Mathijs Sterk
źródło
Przeniesienie do / tmp nie jest konieczne. .listWystarczy zmienić nazwę na coś, co się nie kończy
Daniel Alder
1

Cóż, sam rozwiązałem problem Zduplikowanego wpisu, zmieniając nazwę /etc/apt/sources.d(jako root) na coś innego i uruchamiając, sudo apt-get updateaby ponownie ustanowić katalog i jego zawartość.

Seann
źródło
1

Przeszedłem /etc/apt/sources.listręcznie sudo nano /etc/apt/sources.listi usunąłem duplikaty. Po apt-get updatetym problem został rozwiązany.

Anderverhaal
źródło
1

W /etc/apt/sources.listtrzeba komentować (dodaj #na początku linii) duplikatu wpisu repozytorium i zapisać zmiany. Po tym powtórz sudo apt-get update.

Snorri
źródło
1

Użyj Generatora listy źródeł Ubuntu .

  • Uruchom sudo -H nautilusw terminalu
  • Odnaleźć /etc/apt/sources.list
  • Kliknij prawym przyciskiem myszy i otwórz plik za pomocą edytora tekstu (jeśli go klikniesz, otworzy się GUI źródeł oprogramowania)
  • Po prostu skopiuj i wklej do sources.listi zapisz.
  • Wyjdź z terminalu i gotowe.

Wygląda na to, że Google ma problem, więc sugeruję pominięcie tego. Zrobiłem to na Ubuntu 12.10 (wersja Studio z dodanym pulpitem Ubuntu i Unity dla innego logowania na pulpicie).

studiofreak
źródło
1

Po prostu edytuj plik /etc/apt/sources.list(na przykład użyj sudo -H gedit /etc/apt/sources.list) i usuń zduplikowaną linię lub umieść #na początku linii.

Micha
źródło
1

Staram się uzupełnić możliwości oferowane przez innych użytkowników korzystających z terminala, ponieważ właśnie o to pytałeś, głównie:

zaloguj się, jeśli korzystasz z instalacji tekstowej lub naciśnij Alt+ F2i wpisz gnome-terminal, jeśli korzystasz z GUI

Następnie wpisz

sudo nano /etc/apt/sources.list

(Aby lepiej zrozumieć: w katalogu /etcmożna znaleźć (prawie) wszystkie pliki konfiguracyjne komputera, aw aptkatalogu znajduje się souces.listplik zawierający wszystkie repozytoria, których APT używa do aktualizacji lub instalacji i aktualizacji oprogramowania)

Edytuj plik, usuwając lub komentując #na początku wiersza wszelkie zduplikowane wiersze.

Naciśnij Ctrl+, Xaby wyjść i naciśnij, yaby zapisać plik (lub nwyjść bez zapisywania).

Następnie zaktualizuj, aby zobaczyć, czy to naprawiłeś:

sudo apt-get update

Baw się dobrze!

Pitto
źródło
Wydaje mi się również, że rozwinięty edytor tekstu, taki jak vim, może automatycznie znajdować duplikaty, ale nie wiem, jak to zrobić, każda informacja byłaby interesująca
Pitto
0
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

* Wstawiono podział linii dla czytelności.

Tony Saratonev
źródło
2
Proszę wyjaśnić odpowiedź lub ryzykować jej usunięcie.
jokerdino
Witamy w Ask Ubuntu! Jak jokerdino, jak wskazano, ta odpowiedź byłaby znacznie przydatna, gdybyś ją edytować, aby dodać wyjaśnienie (lub przynajmniej powiedzieć użytkownikowi, co dokładnie zrobić z tymi wierszami).
Eliah Kagan
Ta odpowiedź jest błędna, ponieważ może usuwać zduplikowane wpisy, ale nie usuwa zduplikowanych wpisów źródłowych . patrz tutaj o wyjaśnienie
Anwar
0

Wykonaj następujące czynności, aby usunąć duplikaty

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  
Stormvirux
źródło
więcej informacji na ten temat
0

W przypadku 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)

Otwarty: sources.list.d

rm google.list

tak google-chrome.listpozostaje

Stevie G.
źródło
0

Jest to właściwe zadanie, w uniqktórym pomija się zduplikowane linie i drukuje tylko unikalne wpisy, dlatego możemy pobrać dane wyjściowe uniqi zastąpić stary plik uniqdanymi wyjściowymi:

 sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources  /etc/apt/sources.list
Sergiy Kolodyazhnyy
źródło
1
uniqwymaga posortowanego wejścia.
mur
sort -uwykonuje tę samą pracę =)
AB