Я не могу обновить Ubuntu или autoclean из-за невозможности запустить "apt-get -f install"

Я не могу очистить свое дисковое пространство с помощью автоочистки и не могу выполнить обновление, потому что меня постоянно просят запустить apt-get -f install однако из-за полного диска он не будет установлен. Автоочистка не работает, продувка не работает. Вот мои результаты, когда я пытаюсь запустить обновление:

agiles@agiles-23-1015:~$ sudo apt-get upgrade
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-4.4.0-128-generic : Depends: linux-image-4.4.0-128-generic but it is not installed
 linux-image-extra-4.4.0-130-generic : Depends: linux-image-4.4.0-130-generic but it is not installed
 linux-image-extra-4.4.0-131-generic : Depends: linux-image-4.4.0-131-generic but it is not installed
 linux-image-generic : Depends: linux-image-4.4.0-131-generic but it is not installed
E: Unmet dependencies. Try using -f.

Когда я запускаю -f установить:

agiles@agiles-23-1015:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-124 linux-headers-4.4.0-124-generic linux-headers-4.4.0-128 linux-headers-4.4.0-128-generic linux-headers-4.4.0-130
  linux-headers-4.4.0-130-generic linux-image-4.4.0-124-generic linux-image-4.4.0-128-generic linux-image-4.4.0-130-generic linux-image-extra-4.4.0-124-generic
  linux-image-extra-4.4.0-128-generic linux-image-extra-4.4.0-130-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  linux-image-4.4.0-128-generic linux-image-4.4.0-130-generic linux-image-4.4.0-131-generic
Suggested packages:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
The following NEW packages will be installed:
  linux-image-4.4.0-128-generic linux-image-4.4.0-130-generic linux-image-4.4.0-131-generic
0 upgraded, 3 newly installed, 0 to remove and 194 not upgraded.
7 not fully installed or removed.
Need to get 0 B/66.4 MB of archives.
After this operation, 204 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 425417 files and directories currently installed.)
Preparing to unpack .../linux-image-4.4.0-131-generic_4.4.0-131.157_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.4.0-131-generic /boot/vmlinuz-4.4.0-131-generic
Done.
Unpacking linux-image-4.4.0-131-generic (4.4.0-131.157) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-131-generic_4.4.0-131.157_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-131-generic' to '/boot/vmlinuz-4.4.0-131-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-131-generic /boot/vmlinuz-4.4.0-131-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-131-generic /boot/vmlinuz-4.4.0-131-generic
Preparing to unpack .../linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
Done.
Unpacking linux-image-4.4.0-128-generic (4.4.0-128.154) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-128-generic' to '/boot/vmlinuz-4.4.0-128-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
Preparing to unpack .../linux-image-4.4.0-130-generic_4.4.0-130.156_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.4.0-130-generic /boot/vmlinuz-4.4.0-130-generic
Done.
Unpacking linux-image-4.4.0-130-generic (4.4.0-130.156) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-130-generic_4.4.0-130.156_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-130-generic' to '/boot/vmlinuz-4.4.0-130-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-130-generic /boot/vmlinuz-4.4.0-130-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-130-generic /boot/vmlinuz-4.4.0-130-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-4.4.0-131-generic_4.4.0-131.157_amd64.deb
 /var/cache/apt/archives/linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb
 /var/cache/apt/archives/linux-image-4.4.0-130-generic_4.4.0-130.156_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

2 ответа

Это немного старый вопрос, однако... Как уже упоминалось @vanadium, вы, вероятно, не хватает места в /boot раздел. Таким образом, уборка в порядке.

Мой способ очистки ботинка выглядит так:

cd /boot
sudo find . -maxdepth 1 -not -type d -not -name "*-4.4.0-116-*" -delete

замещать 4.4.0-116 с текущим используемым ядром. Вы можете определить это с uname -r, В этом случае 4.4.0-116 было текущее ядро ​​на сервере, который я чистил.

PS Не забыл обновить grub.

sudo update-grub

Скорее всего, у вас есть отдельный раздел /boot или очень маленький корневой раздел. К сожалению, обновление Ubuntu не приводит к автоматическому удалению ядер. В результате, если пространство ограничено, оно может заполниться, возможно, до такой степени, что вы больше не сможете использовать инструменты apt для удаления старых ядер.

Если у вас есть один раздел для Ubuntu, который содержит как систему, так и данные (вашу домашнюю папку), просто временно удалите данные, чтобы у инструментов apt было место на диске. В противном случае читайте дальше.

  • Сначала попытайтесь напрямую удалить файлы, связанные с вашим самым старым ядром, из каталога /boot. Смотрите принятый ответ в этом вопросе Askbuntu. Это должно освободить достаточно места в /boot, чтобы остальная часть очистки выполнялась инструментами apt.
  • Затем завершите прерванную установку, используя команду sudo apt-get -f install, Это должно установить ваше последнее ядро ​​и снова привести ваши пакеты в согласованное состояние.
  • После этого используйте sudo apt autoremove очистить оставшиеся старые ядра автоматически, кроме одного, кроме последнего.

Если все работает, не забывайте регулярно выдавать "sudo apt autoremove". К сожалению, в Ubuntu это не выполняется автоматически.

Другие вопросы по тегам