Ubuntu 16.04 แพ็คเกจเคอร์เนลที่เสียจะไม่ให้ฉันติดตั้งหรือลบสิ่งใด ๆ ด้วย apt-get


11

เมื่อใดก็ตามที่ฉันพยายามทำอะไรกับ apt-get ไม่ว่าจะเป็นการติดตั้ง, ลบ, กำจัด, อัปเดต, อัปเกรดฉันมักจะได้รับข้อผิดพลาดเดียวกัน

ses@ses-VirtualBox:~/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)

ฉันลองทำตามคำถามนี้ แต่ไม่มีโชค: Apt ไม่สามารถลบเคอร์เนลที่ติดตั้งบางส่วนและไม่สามารถติดตั้งแพ็คเกจอื่น ๆ ได้

ตรวจสอบไฟล์สถานะ dpkg ฉันเห็นว่าแพ็กเกจทั้งสองติดตั้งเพียงครึ่งเดียว

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 <kernel-team@lists.ubuntu.com>
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.

** การแก้ไข

หลังจากลบแพ็คเกจเคอร์เนลด้วยตนเองตามคำแนะนำของ user.dz paste.ubuntu.com/23487716

ในระหว่างที่ติดตั้ง sudo apt-get -f Ubuntu แจ้งเตือนฉันเกี่ยวกับข้อผิดพลาดของระบบ ป้อนคำอธิบายรูปภาพที่นี่


จะเกิดอะไรขึ้นเมื่อคุณวิ่งsudo apt-get install -f?
ข้อผิดพลาด

ฉันได้รับปัญหาเดียวกัน
dses

1
คุณเพิ่งติดตั้ง VirtualBox หรือไม่ run-parts: failed to exec /etc/kernel/postinst.d/vboxadd: Exec format errorปัญหาคือเส้น vboxaddจะถูกเรียกใช้ทุกครั้งที่คุณเพิ่มหรือลบเคอร์เนลและจะหยุดการติดตั้งหรือลบทุกครั้ง Exec format errorมักจะหมายถึงการปฏิบัติการที่กล่าวถึงถูกรวบรวมสำหรับสถาปัตยกรรมที่ผิด อะไรคือผลลัพธ์ของfile /etc/kernel/postinst.d/vboxadd?
ชัยต. เร็กซ์

/etc/kernel/postinst.d/vboxadd: empty
dses

ฉันสงสัยว่าทำไมsudo apt-get install sshพยายามลบแพ็คเกจ linux-image-extra เหล่านั้นออก
jarno

คำตอบ:


11

หมายเหตุ:ตามที่ ChaiT.Rex แสดงความคิดเห็นด้านล่างเฉพาะขั้นตอนที่ 4 และ 5 เท่านั้นที่จะต้องแก้ไขปัญหา

ฉันออกจากขั้นตอน 1,2 และ 3 ที่มีการบันทึกไว้สำหรับทุกคนที่อาจจำเป็นต้องลบแพคเกจ แต่ก่อนอื่นลอง/ubuntu//a/490677/26246ซึ่งดูง่ายขึ้น

  1. ลบออกด้วยตนเองโปรดระวังหากคุณพิมพ์คำสั่งด้านล่างใหม่เป็นคำสั่งrm -rfที่อันตรายเมื่อมันทำงานเหมือนรูท

    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. เปลี่ยนสถานะในไฟล์สถานะ dpkg

    ทำการสำรองข้อมูลในกรณีที่

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

    ค้นหารายการที่เกี่ยวข้อง (คำสั่งที่มีเอาต์พุตที่คาดไว้หมายเลขบรรทัดจะแตกต่างกัน):

    ~$ 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
    

    เปิดไฟล์สถานะเพื่อแก้ไขและเปลี่ยนสถานะแพ็กเกจ:

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

    จาก:

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

    ถึง:

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

    Ctrl+ oเพื่อบันทึก Ctrl+ xเพื่อออก

    ทำการเปลี่ยนแปลงเดียวกันกับ linux-image-extra-4.4.0-42-generic

  3. ลบ linux-image-4.4.0-38-generic & linux-image-4.4.0-42-generic ด้วยตนเองด้วยตนเอง

    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
    

    เช่นเดียวกับก่อนที่จะแก้ไขสถานะของพวกเขาเป็น 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. ลบไฟล์ Virtualbox ที่มีปัญหา

    sudo rm /etc/kernel/postinst.d/vboxadd
    
  5. อัปเดตสถานะ dpkg & เมนูด้วง

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

ตกลงฉันสามารถติดตั้งและลบแพคเกจสำเร็จหลังจากทำตามคำแนะนำของคุณ อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้แสดงไว้ด้านบนหลังจากใช้ sudo apt-get install -f
dses

@dses อัปเดตคำตอบของฉันสามารถเริ่มต้นใหม่ได้จากขั้นตอนที่หนึ่ง
user.dz

ดังนั้นการทำตามขั้นตอนของคุณอีกครั้งก็ทำให้ฉันใช้ apt ได้ตามปกติ มีเพียงปัญหาที่ตอนนี้ฉันได้รับข้อผิดพลาดของเคอร์เนลแพ็คเกจเพิ่มเติมและ Ubuntu แสดงข้อผิดพลาดของระบบในช่วง "apt install -f" ตามที่ปรากฏในส่วนการแก้ไขของคำถาม
dses

1
@ user.dz ฉันคิดว่าหากการลบ/etc/kernel/postinst.d/vboxaddไม่ทำงานนั่นคือทั้งหมดที่จำเป็นจริงๆ ทุกอย่างในไดเรกทอรีนั้นจะทำงานทุกครั้งที่เคอร์เนลติดตั้งหรือลบออกและไฟล์นั้นจะExec format errorขัดจังหวะการลบเมล็ดเหล่านั้นทุกครั้ง
ชัยต. เร็กซ์

1
@ ChaiT.Rex คุณพูดถูกฉันไม่ได้สังเกตว่าในตอนแรก
user.dz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.