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ć deb
i deb-src
. deb
oznacza repozytorium binarne, gdzie deb-src
oznacza 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
, multiverse
i 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.list
masz 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.list
pliku 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ą:
Otwórz terminal i najpierw zmień nazwę istniejącego sources.list
pliku na sources.list.bak
plik. (możemy to bezpiecznie usunąć, ale ostrożność jest dobra).
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
Następnie otwórz, software-properties-gtk
aby 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ć gksu
przed software-properties-gtk
poleceniem
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.list
plik bez błędów. Jeśli chcesz, porównaj ten plik z poprzednim.
Zaktualizuj, aby obsługiwać sources.list.d
pliki dir
Czasami zduplikowany wpis może znajdować się w pliku w /etc/apt/sources.list.d
katalogu, 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.com
w głównym /etc/apt/sources.list
pliku 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.list
i google.list
byli 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.list
zawiera on tylko pojedynczą linię apt i był również wymieniony w google.list
pliku, 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.
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ń”.Jeśli potrzebujesz opcji wiersza polecenia, oto ona:
Polecenie wykonuje następujące czynności:
cat
odczytuje plik i przekazuje zawartość, doperl
któ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.list
pliku.źródło
sudo apt-get update
wciąż narzekam na zduplikowane wpisy, jakby nic się nie zmieniło. Jeśli to ma znaczenie, mam 12.04 (konkretnie elementarne OS Luna).cat
Jest bezużyteczny i uniemożliwia korzystaniesudo perl -i
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
Otwórz formularz y-ppa-manager Dash
źródło
Repozytorium partnera jest duplikowane wewnątrz
/etc/apt/sources.list
i/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
.źródło
rm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory
sudo rm /etc/apt/sources.list.d/*partner*
. Sprawdź także swoją /etc/apt/sources.list, poszukaj duplikatów linii./etc/apt/sources.list
nie zawiera żadnych duplikatów zgodnie zuniq
.Utwórz kopię zapasową źródeł.list:
Teraz usuń oryginał i zaktualizuj:
źródło
sources.list
pliku?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”
źródło
Jeśli nie możesz tego rozgryźć w swoim
source.list
, zrób to:sudo apt-get update
.źródło
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
Wybierz i usuń zduplikowane wpisy.
źródło
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:
Następnie uruchom aplikację i przejdź do menu Zaawansowane.
Następnie wybierz „Skanuj i usuń zduplikowane PPA” i naciśnij OK.
źródło
Wygląda na to, że masz dwa identyczne wiersze w swoim
/etc/apt/sources.list
pliku.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 update
co 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.list
pliku, a następnie przejdź do pliku i skomentuj lub usuń każdy wiersz, zapisując iapt-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śliapt-get update
nadal wyświetla ten sam monit, w przeciwnym razie nie będziesz mieć żadnych źródeł wsources.list
pliku.źródło
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:
Autor
Mubarak Alrashidi (DeaDSouL)
Wymagania:
Instalacja:
sudo apt-get install php5 php5-cli
.sudo sh install.sh
.Odinstaluj:
sudo sh uninstall.sh
.Jak tego użyć:
Wystarczy otworzyć terminal i wpisać
sudo chkdup
.FAQ:
Co robi install.sh?
chkdup.php
do,/opt/
a następnie utworzy dowiązanie symboliczne/usr/bin/
.Co z odinstalowaniem.sh?
Deinstalator usunie następujące pliki:
install.sh
/opt/chkdup.php
/usr/bin/chkdup
uninstall.sh
Czy korzystanie z programu chkdup jest bezpieczne?
Licencja
Ogólna Licencja Publiczna GNU
źródło
Sprawdziłeś
ls /etc/apt/sources.list.d/
? Może masz tam jakieś „dodatkowe” repozytoria?źródło
Zainstaluj ubuntu-tweak i usuń stamtąd zduplikowane wpisy.
źródło
Nie, nie ma ani jednego wiersza poleceń, aby znaleźć i usunąć zduplikowane wpisy w
/etc/apt/sources.list
pliku.Jest tak, ponieważ sugerowane wiersze poleceń, które jedynie powielają funkcję znacznie prostszego wbudowanego
uniq
polecenia, 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 update
będą się składały ze zduplikowanych wpisów funkcji , takich jak repozytorium zawarte zarówno w jego, jaki386
iamd64
wariantach. Ł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 wszelkichsource-code
repozytoriów, jeśli nie kompilujesz pakietów).Należy jednak zauważyć, że
apt-get update
nie tylko można znaleźć zduplikowane wpisysources.list
, ale także pliki repozytorium znajdujące się w/var/lib/apt/lists/
. Usunięcie stamtąd zduplikowanych wpisów spowoduje tymczasowe usunięcieapt-get update
komunikatów o błędach tylko wtedy, gdy Ubuntu uzna, że ich potrzebuje, ponieważ pliki zostaną automatycznie ponownie zainstalowane. Fakt, żeapt-get update
zgłosi niektóre repozytoria jako duplikaty, a następnie zasugeruje, że uruchomiszapt-get update
się, aby je naprawić, jest wskazówką, że tak naprawdę nie musisz się martwić o ten komunikat o błędzie.źródło
W moim przypadku duplikaty były w
prerequists-sources.list
pliku. Udało mi się kontynuować aktualizację, uruchamiając następujące polecenia w terminalu:Następnie przejdź do strony
Update Manager
i zainstaluj aktualizacje.źródło
.list
Wystarczy zmienić nazwę na coś, co się nie kończyCóż, 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 update
aby ponownie ustanowić katalog i jego zawartość.źródło
Przeszedłem
/etc/apt/sources.list
ręczniesudo nano /etc/apt/sources.list
i usunąłem duplikaty. Poapt-get update
tym problem został rozwiązany.źródło
W
/etc/apt/sources.list
trzeba komentować (dodaj#
na początku linii) duplikatu wpisu repozytorium i zapisać zmiany. Po tym powtórzsudo apt-get update
.źródło
Użyj Generatora listy źródeł Ubuntu .
sudo -H nautilus
w terminalu/etc/apt/sources.list
sources.list
i zapisz.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).
źródło
Po prostu edytuj plik
/etc/apt/sources.list
(na przykład użyjsudo -H gedit /etc/apt/sources.list
) i usuń zduplikowaną linię lub umieść#
na początku linii.źródło
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
(Aby lepiej zrozumieć: w katalogu
/etc
można znaleźć (prawie) wszystkie pliki konfiguracyjne komputera, awapt
katalogu znajduje sięsouces.list
plik 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ś:
Baw się dobrze!
źródło
* Wstawiono podział linii dla czytelności.
źródło
Wykonaj następujące czynności, aby usunąć duplikaty
źródło
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.list
pozostajeźródło
Jest to właściwe zadanie, w
uniq
którym pomija się zduplikowane linie i drukuje tylko unikalne wpisy, dlatego możemy pobrać dane wyjścioweuniq
i zastąpić stary plikuniq
danymi wyjściowymi:źródło
uniq
wymaga posortowanego wejścia.sort -u
wykonuje tę samą pracę =)