wyczyść listę apt-get

32

Buduję obraz dla osadzonego Linuksa opartego na Debianie. Użyłem apt-get updatewcześniej na urządzeniu, którego chcę użyć jako podstawy dla tego obrazu, więc listy poniżej /var/lib/apt/listssą dość duże (prawie 100 MB).

Chcę zachować apt-getfunkcjonalność (więc nie chcę usuwać apt repozytoriów), ale chcę zwolnić miejsce wykorzystane na tych listach (listy prawie dwukrotnie powiększają obraz).

Czy ktoś wie jak to zrobić? Czy mogę po prostu usunąć pliki poniżej /var/lib/apt/lists?

Dakkaron
źródło

Odpowiedzi:

47

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 takie, że narzędzia takie jak apt-cachenie mogą uzyskać informacji o pakiecie, chyba że zaktualizujesz listy pakietów. Również apt-get installsię nie powiedzie E: Unable to locate package <package>, ponieważ nie ma dostępnych informacji o pakiecie.

Następnie po prostu uruchom:

apt-get update

aby przepisać te listy, a polecenie będzie działać ponownie.

W każdym razie zaleca się uruchomienie apt-get updateprzed zainstalowaniem czegokolwiek.

chaos
źródło
6

Listy są wiedzą o tym, co jest dostępne, więc jeśli je usuniesz, nie będziesz w stanie niczego zainstalować - to dokładnie odpowiada usunięciu repozytoriów z listy źródeł (co, jak mówisz, nie chcesz robić).

Jedną z opcji jest to, że możesz skompresować listy i pamiętaj o ich rozpakowaniu przed następnym update.

Często robię (szczególnie, gdy chcę eksperymentować z dodatkowymi źródłami) tworzenie katalogu /etc/apt/sources.availablei dodawanie wpisów do dystrybucji. Następnie mogę łatwo włączyć dowolny podzbiór, tworząc dowiązania symboliczne /etc/apt/sources.list.di wyłączyć je, usuwając te dowiązania symboliczne.

Z pustą listą źródeł możesz apt-get update- to powinno wyczyścić twój /var/lib/apt/lists. Następnie podłącz odpowiednie źródła z powrotem do /etc/apt/sources.list.d, ale nie, updatedopóki nie zamierzasz z nich korzystać.

Toby Speight
źródło