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.