Buduję obraz dla osadzonego Linuksa opartego na Debianie. Wcześniej użyłem apt-get update
na urządzeniu, którego chcę użyć jako podstawy dla tego obrazu, więc listy pod /var/lib/apt/lists
są dość duże (prawie 100 MB).
Chcę zachować funkcjonalność apt-get
(więc nie chcę usuwać repozytoriów apt), ale chcę zwolnić miejsce zajęte na tych listach (listy prawie dwukrotnie przewyższają rozmiar obrazu).
Czy ktoś wie, jak to zrobić? Czy mogę po prostu usunąć pliki w /var/lib/apt/lists
?
Odpowiedź
Możesz po prostu użyć:
rm /var/lib/apt/lists/*
Spowoduje to usunięcie list pakietów. Żadne repozytoria nie zostaną usunięte, są one skonfigurowane w pliku konfiguracyjnym w /etc/apt/sources.list
. Wszystko, co może się zdarzyć, to narzędzia takie jak nie może pobrać informacji o pakiecie, dopóki nie zaktualizujesz list pakietów. Ponadto apt-get install
zakończy się niepowodzeniem z E: Unable to locate package <package>
, ponieważ nie informacje są dostępne ab z pakietu.
Następnie po prostu uruchom:
apt-get update
aby przepisać te listy, a polecenie będzie działać ponownie.
W każdym razie przed instalacją czegokolwiek zaleca się uruchomienie apt-get update
.
Komentarze
Odpowiedź
Listy zawierają informacje o tym, co jest dostępne, więc jeśli je usuniesz, nie będziesz w stanie niczego zainstalować – jest to dokładnie równoważne z usunięciem repozytoriów ze źródeł list (co powiesz, że nie chcesz tego robić).
Jedną z opcji jest skompresowanie list i pamiętaj, aby je zdekompresować przed następnym update
.
To, co często robię (zwłaszcza gdy chcę eksperymentować z dodatkowymi źródłami), to tworzenie katalogu /etc/apt/sources.available
i dodawanie wpisów do dystrybucji. Mogę wtedy łatwo włączyć dowolny podzbiór, tworząc dowiązania symboliczne z /etc/apt/sources.list.d
i wyłączyć, usuwając te dowiązania symboliczne.
Z pustą listą źródeł można apt-get update
– to powinno wyczyścić /var/lib/apt/lists
. Następnie połącz odpowiednie źródła z powrotem w /etc/apt/sources.list.d
, ale nie „t update
, dopóki nie zamierzasz ich używać.
rm -rf /var/lib/apt/lists/*