Jag bygger en bild för en inbäddad Linux baserad på Debian. Jag använde apt-get update
tidigare på den enhet som jag vill använda som bas för den bilden, så listorna under /var/lib/apt/lists
är ganska stora (nästan 100 MB i storlek).
Jag vill behålla apt-get
-funktionen (så jag vill inte ta bort apt-arkiv) men jag vill frigöra utrymme som används i dessa listor (listorna nästan dubbelt så stor som bilden).
Vet någon hur man gör det? Kan jag bara radera filerna under /var/lib/apt/lists
?
Svar
Du kan bara använda:
rm /var/lib/apt/lists/*
Detta tar bort paketlistorna. Inga arkiv tas bort, de konfigureras i konfigurationsfilen i /etc/apt/sources.list
. Allt som kan hända är att verktyg som apt-cache
kan inte få paketinformation om du inte har uppdaterat paketlistorna. Även apt-get install
misslyckas med E: Unable to locate package <package>
, eftersom ingen information finns tillgänglig ab ut paketet.
Kör sedan bara:
apt-get update
för att skriva om listorna och kommandot fungerar igen.
Hur som helst rekommenderas det att köra apt-get update
innan du installerar något.
Kommentarer
Svar
Listorna är kunskapen om vad som finns tillgängligt, så om du tar bort dem kommer du inte att kunna installera någonting – det motsvarar exakt förvaret från dina källor lista (som du säger att du inte vill göra).
Ett alternativ är att du kan komprimera listorna och komma ihåg att packa upp dem innan du nästa update
.
Vad jag ofta gör (särskilt när jag vill experimentera med extra källor) är att skapa en katalog /etc/apt/sources.available
och lägga till poster för distributioner. Jag kan sedan enkelt aktivera valfri delmängd genom att skapa symlänkar från /etc/apt/sources.list.d
och inaktivera genom att ta bort symlänkar.
Med en tom källista kan du apt-get update
– det ska rensa din /var/lib/apt/lists
. Länka sedan tillbaka lämpliga källor till /etc/apt/sources.list.d
, men inte ”t update
tills du faktiskt tänker använda dem.
rm -rf /var/lib/apt/lists/*