Jeg bygger et bilde for en innebygd Linux basert på Debian. Jeg brukte apt-get update
før på enheten jeg vil bruke som base for det bildet, så listene under /var/lib/apt/lists
er ganske store (nesten 100 MB i størrelse).
Jeg vil beholde apt-get
-funksjonaliteten (så jeg vil ikke fjerne egnede arkiver), men jeg vil frigjøre plass brukt i disse listene (listene nesten dobler størrelsen på bildet).
Er det noen som vet hvordan du gjør det? Kan jeg bare slette filene under /var/lib/apt/lists
?
Svar
Du kan bare bruke:
rm /var/lib/apt/lists/*
Dette fjerner pakkelistene. Ingen depoter blir slettet, de er konfigurert i konfigurasjonsfilen i /etc/apt/sources.list
. Alt som kan skje er at verktøy som apt-cache
kan ikke få pakkeinformasjon med mindre du oppdaterte pakkelistene. Også apt-get install
mislykkes med E: Unable to locate package <package>
, fordi nei informasjon er tilgjengelig ab ut pakken.
Så er det bare å kjøre:
apt-get update
for å skrive om listene, så vil kommandoen fungere igjen.
Uansett anbefales det å kjøre apt-get update
før du installerer noe.
Kommentarer
Svar
Listene er kunnskapen om hva som er tilgjengelig, så hvis du sletter dem, vil du ikke kunne installere noe – det tilsvarer nøyaktig å fjerne depotene fra kildene dine liste (som du sier du ikke vil gjøre).
Et alternativ er at du kan komprimere listene, og husk å pakke dem ut før du neste update
.
Det jeg ofte gjør (spesielt når jeg vil eksperimentere med ekstra kilder) er å lage en katalog /etc/apt/sources.available
og legge til oppføringer for distribusjoner. Jeg kan da enkelt aktivere et hvilket som helst delmengde ved å lage symlinker fra /etc/apt/sources.list.d
og deaktivere ved å fjerne disse symlinkene.
Med tomme kildeliste kan du apt-get update
– det bør fjerne /var/lib/apt/lists
. Koble deretter aktuelle kilder tilbake til /etc/apt/sources.list.d
, men ikke «t update
til det tidspunktet du faktisk har tenkt å bruke dem.
rm -rf /var/lib/apt/lists/*