GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Los paquetes de kernel rotos de Ubuntu 16.04 no me permiten instalar o eliminar nada con apt-get?

Cada vez que trato de hacer algo con apt-get, ya sea instalar, eliminar, purgar, actualizar, mejorar, siempre recibo el mismo error.

[email protected]:~/Downloads$ sudo apt-get install ssh
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-45 linux-headers-4.4.0-45-generic linux-image-4.4.0-45-generic linux-image-extra-4.4.0-45-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
Suggested packages:
  ssh-askpass rssh molly-guard monkeysphere
The following packages will be REMOVED:
  linux-image-extra-4.4.0-38-generic linux-image-extra-4.4.0-42-generic
The following NEW packages will be installed:
  ncurses-term openssh-server openssh-sftp-server ssh ssh-import-id
0 upgraded, 5 newly installed, 2 to remove and 0 not upgraded.
10 not fully installed or removed.
Need to get 0 B/643 kB of archives.
After this operation, 320 MB disk space will be freed.
Do you want to continue? [Y/n] y
Preconfiguring packages ...
(Reading database ... 308434 files and directories currently installed.)
Removing linux-image-extra-4.4.0-38-generic (4.4.0-38.57) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/vboxadd 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error
run-parts: /etc/kernel/postinst.d/vboxadd exited with return code 1
dpkg: error processing package linux-image-extra-4.4.0-38-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-extra-4.4.0-42-generic (4.4.0-42.62) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: executing /etc/kernel/postinst.d/vboxadd 4.4.0-42-generic /boot/vmlinuz-4.4.0-42-generic
run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format error
run-parts: /etc/kernel/postinst.d/vboxadd exited with return code 1
dpkg: error processing package linux-image-extra-4.4.0-42-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 linux-image-extra-4.4.0-38-generic
 linux-image-extra-4.4.0-42-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Intenté seguir esta pregunta pero no tuve suerte:
Apt no elimina el kernel parcialmente instalado y no puede instalar ningún otro paquete

revisando el archivo de estado de dpkg veo que ambos paquetes están a medio instalar

Package: linux-image-extra-4.4.0-38-generic
Status: deinstall ok half-installed
Priority: optional
Section: kernel
Installed-Size: 158607
Maintainer: Ubuntu Kernel Team <[email protected]>
Architecture: amd64
Source: linux
Version: 4.4.0-38.57
Depends: linux-image-4.4.0-38-generic, crda | wireless-crda
Description: Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
 This package contains the Linux kernel extra modules for version 4.4.0 on
 64 bit x86 SMP.
 .
 Also includes the corresponding System.map file, the modules built by the
 packager, and scripts that try to ensure that the system is not left in an
 unbootable state after an update.
 .
 Supports Generic processors.
 .
 Geared toward desktop and server systems.
 .
 You likely do not want to install this package directly. Instead, install
 the linux-generic meta-package, which will ensure that upgrades work
 correctly, and that supporting packages are also installed.

** Ediciones

Relacionado:Ubuntu:¿cómo deshabilitar `apt-daily.service` en la imagen de la máquina virtual en la nube de Ubuntu?

después de eliminar los paquetes del núcleo manualmente según las instrucciones de user.dz
paste.ubuntu.com/23487716

mientras tanto, durante sudo apt-get install -f Ubuntu me alertó sobre un error del sistema

Respuesta aceptada:

Nota: Como ChaiT.Rex comentó a continuación, solo se requieren los pasos 4 y 5 para solucionar el problema.

Dejo los pasos 1, 2 y 3 documentados para cualquier persona que necesite eliminar manualmente algunos paquetes. Pero prueba primero este https://askubuntu.com/a/490677/26246 que parece más fácil.

  1. Elimínelos manualmente, tenga cuidado si está volviendo a escribir los siguientes comandos rm -rf es un comando peligroso cuando se ejecuta como root.

    sudo rm -rf /lib/modules/4.4.0-38-generic /lib/modules/4.4.0-42-generic
    sudo rm -rf /usr/share/doc/linux-image-extra-4.4.0-38-generic /usr/share/doc/linux-image-extra-4.4.0-42-generic
    sudo rm /var/lib/dpkg/info/linux-image-extra-4.4.0-38-generic* /var/lib/dpkg/info/linux-image-extra-4.4.0-42-generic*
    
  2. Cambie su estado en el archivo de estado de dpkg.

    Haz una copia de seguridad por si acaso

    sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup0
    

    Encuentre las entradas relacionadas (comando con salida esperada, el número de línea será diferente):

    ~$ grep -n -e "linux-image-extra-4.4.0-38-generic" -e "linux-image-extra-4.4.0-42-generic" /var/lib/dpkg/status
    18488:Package: linux-image-extra-4.4.0-42-generic
    77123:Package: linux-image-extra-4.4.0-38-generic
    

    Abrir archivo de estado para editar y cambiar el estado del paquete:

    sudo nano +18488 /var/lib/dpkg/status
    

    de:

    Package: linux-image-extra-4.4.0-38-generic
    Status: install ok installed
    

    a:

    Package: linux-image-extra-4.4.0-38-generic
    Status: deinstall ok config-files
    

    Ctrl +o ahorrar. Ctrl +x para salir.

    Realice los mismos cambios en linux-image-extra-4.4.0-42-generic .

  3. Elimine manualmente linux-image-4.4.0-38-generic y linux-image-4.4.0-42-generic también

    sudo rm -f *4.4.0-38-generic *4.4.0-42-generic
    sudo rm -rf /usr/share/doc/linux-image-4.4.0-38-generic /usr/share/doc/linux-image-4.4.0-42-generic
    

    Igual que antes, edite su estado para deinstall ok config-files

    $ grep -n -e "Package: linux-image-4.4.0-38-generic" -e "Package: linux-image-4.4.0-42-generic" /var/lib/dpkg/status
    61217:Package: linux-image-4.4.0-38-generic
    98051:Package: linux-image-4.4.0-42-generic
    
  4. Elimina ese problemático archivo de virtualbox

    sudo rm /etc/kernel/postinst.d/vboxadd
    
  5. Actualizar el estado de dpkg y el menú de grub

    sudo dpkg --audit
    sudo apt-get install -f
    sudo update-grub
    

Ubuntu
  1. ¿Ubuntu 16.04 paquetes rotos después de una instalación nueva?

  2. Valgrind:¿problema con los paquetes rotos retenidos?

  3. ¿Cómo instalar Gfortran?

  4. Apt-Get Lista de paquetes instalados | Lista instalada con Apt en Ubuntu

  5. Cómo instalar paquetes .deb locales con apt-get

Cómo instalar DEB en RedHat/Centos y RPM en Debian/Ubuntu con Alien

Instalar Portainer con Docker en Ubuntu

Cómo instalar Let's Encrypt SSL con Nginx en Ubuntu 16.04 LTS

Cómo instalar NCDU en Ubuntu 17.04

Cómo eliminar paquetes rotos en Ubuntu Linux

Cómo instalar Django 3.2 en Ubuntu 20.04 con Apache y WSGI