Otrzymałem komunikat o błędzie wyjaśniający, że mój / boot jest pełny. próba oczyszczenia starych plików obrazów zawsze wydaje się nieudana z powodu błędów pełnego dysku lub błędów zależności. Czy ktoś mógłby wyjaśnić, gdzie się mylę.
$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.
$ ls /boot
abi-3.13.0-32-generic initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic lost+found
abi-3.13.0-37-generic memtest86+.bin
abi-3.13.0-39-generic memtest86+.elf
abi-3.13.0-40-generic memtest86+_multiboot.bin
abi-3.13.0-43-generic System.map-3.13.0-32-generic
config-3.13.0-32-generic System.map-3.13.0-36-generic
config-3.13.0-36-generic System.map-3.13.0-37-generic
config-3.13.0-37-generic System.map-3.13.0-39-generic
config-3.13.0-39-generic System.map-3.13.0-40-generic
config-3.13.0-40-generic System.map-3.13.0-43-generic
config-3.13.0-43-generic vmlinuz-3.13.0-32-generic
grub vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic
użyłem
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
dostać
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic
Następnie wybierz pierwszy obraz do usunięcia
$ sudo apt-get purge linux-image-3.13.0-32-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
linux-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
boot
package-management
disk-usage
Philip Howard
źródło
źródło
sudo apt-get autoremove
ils /boot
.uname -r
polecenia, aby znaleźć swoją bieżącą wersję jądra i spróbuj usunąć jądro inne niż to.Odpowiedzi:
W takim przypadku użyłbym tego
dpkg
narzędzia do wymuszenia usunięcia niektórych pakietów jądra. Nie jest to zalecane do powszechnego użytku i jest nieco niebezpieczne , ale w takim przypadku pomocne mogą być niezaspokojone zależności.Najpierw zlokalizuj jądro, w którym system jest uruchamiany. Ten, który jest aktualnie załadowany. Otwórz terminal (CTRL + ALT + T) i wydaj następujące polecenie
Wyświetli się załadowane jądro, NIE powinieneś próbować go usuwać.
Następnie wydaj polecenie
zwróci wszystkie zainstalowane obrazy. Wybierz jeden lub dwa i spróbuj je usunąć. Spróbuj wymusić ich usunięcie / wyczyszczenie. Na przykład
Możesz zrobić to samo dla innych obrazów, aby zwolnić miejsce.
Następnie możesz spróbować zainstalować brakujące pakiety lub
spróbować rozwiązać zależności.
Na koniec wydaj polecenie „wyczyść stare jądra”
Powyższe polecenie usunie WSZYSTKIE jądra oprócz tego, który jest aktualnie załadowany.
Ponieważ masz osobną partycję / boot, pamiętaj, że będziesz musiał często śledzić jej przestrzeń i często czyścić (częstotliwość zależy od przestrzeni / boot)
źródło
dpkg
, musiałem biecsudo apt-get -f autoremove
, abyapt-get
przestać narzekać niespełnionych zależności. W przeciwnym raziesudo apt-get -f install
najwyraźniej próbowałem ponownie zainstalować wszystkie obrazy jądra, które usunąłemdpkg
, które oczywiście po prostu/boot
ponownie się zapełniły .apt-get -f autoremove
powyższym komentarzu w @mdunsmuir nadal chce zainstalować wszystkie stare jądra podczas dowolnej z powyższych operacji czyszczenia. Czy istnieje sposób, aby po prostu kazać mu ignorować niepowiązane zależności i usunąć pojedyncze, kompletne stare jądro?sudo dpkg --force-all -P linux-image-extra-3.13.0-32-generic
. W przeciwnym razie dodatki te nadal zależą od rzeczywistego obrazu, a-f
flaga spowodowałaby ponowną instalację obrazu, a następnie zabrakło miejsca na dysku.To działało dla mnie na Ubuntu 16.04.
źródło
Wyświetl wszystkie jądra:
Wyświetl bieżące jądro:
Wyświetl wszystkie jądra Z WYJĄTKIEM aktualnego:
Upewnij się, że twojego obecnego jądra nie ma na tej liście.
Usuń wszystkie jądra Z WYJĄTKIEM bieżącego:
Wyczyść inne rzeczy:
źródło