Jeg bygger et billede til en indlejret Linux baseret på Debian. Jeg brugte apt-get update
før på den enhed, som jeg vil bruge som base for det billede, så listerne under /var/lib/apt/lists
er ret store (næsten 100 MB i størrelse).
Jeg vil beholde apt-get
-funktionaliteten (så jeg vil ikke fjerne egnede arkiver), men jeg vil frigøre plads brugt op i disse lister (listerne fordobler næsten billedets størrelse).
Ved nogen, hvordan man gør det? Kan jeg bare slette filerne under /var/lib/apt/lists
?
Svar
Du kan bare bruge:
rm /var/lib/apt/lists/*
Dette fjerner pakkelisterne. Ingen opbevaringssteder slettes, de er konfigureret i konfigurationsfilen i /etc/apt/sources.list
. Alt, der kan ske, er, at værktøjer som apt-cache
kan ikke få pakkeoplysninger, medmindre du opdaterer pakkelisterne. Også apt-get install
mislykkes med E: Unable to locate package <package>
, fordi ingen information er tilgængelig ab ud af pakken.
Kør derefter bare:
apt-get update
for at omskrive disse lister, og kommandoen fungerer igen.
Under alle omstændigheder anbefales det at køre apt-get update
før du installerer noget.
Kommentarer
- Selvfølgelig biblioteket er muligvis ikke tomt, bedes du tilføje -rf efter rm for at se sådan ud
rm -rf /var/lib/apt/lists/*
Svar
Listerne er kendskabet til, hvad der er tilgængeligt, så hvis du sletter dem, vil du ikke kunne installere noget – det svarer nøjagtigt til at fjerne arkiverne fra dine kilder liste (som du siger, at du ikke vil gøre).
En mulighed er, at du kan komprimere listerne og huske at afpakke dem, før du næste update
.
Hvad jeg ofte gør (især når jeg vil eksperimentere med ekstra kilder) er at oprette en mappe /etc/apt/sources.available
og tilføje poster til distributioner. Jeg kan derefter let aktivere ethvert undersæt ved at oprette symlinks fra /etc/apt/sources.list.d
og deaktivere ved at fjerne disse symlinks.
Med en tom kildeliste kan du apt-get update
– der skal rydde din /var/lib/apt/lists
. Link derefter relevante kilder tilbage til /etc/apt/sources.list.d
, men don “t update
indtil det tidspunkt, hvor du faktisk har til hensigt at bruge dem.