SDT*_*USA 5 package-management apt grub2
我的 Ubuntu Server 18.04 系统在继续工作的同时,已经无法应用任何更新。我不知道我所做的任何系统更改可能是罪魁祸首。
我能做些什么来解决这个问题?我试过自动删除、清除等。
这是典型的输出,但任何 apt 命令都会产生类似的错误:
# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
linux-image-4.15.0-22-generic
The following packages will be upgraded:
libcephfs2 librados2 ssh-import-id
3 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/3,065 kB of archives.
After this operation, 8,281 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 149817 files and directories currently installed.)
Removing linux-image-4.15.0-22-generic (4.15.0-22.24) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-4.15.0-22-generic
/etc/kernel/postrm.d/x-grub-legacy-ec2:
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ...
Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) /usr/sbin/update-grub-legacy-ec2: line 1101: read:
read error: 0: Bad file descriptor
run-parts: /etc/kernel/postrm.d/x-grub-legacy-ec2 exited with return code 1
dpkg: error processing package linux-image-4.15.0-22-generic (--remove):
installed linux-image-4.15.0-22-generic package post-removal script
subprocess returned error exit status 1
Errors were encountered while processing:
linux-image-4.15.0-22-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)
感谢大家的回应。遵循以下建议。似乎无法通过 apt / dpkg 清理它。这是输出:
# sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-22-generic
Found initrd image: /boot/initrd.img-4.15.0-22-generic
Found linux image: /boot/vmlinuz-4.15.0-20-generic
Found initrd image: /boot/initrd.img-4.15.0-20-generic
done
# sudo dpkg --purge linux-image-4.15.0-22-generic
dpkg: dependency problems prevent removal of linux-image-4.15.0-22-generic:
linux-image-generic depends on linux-image-4.15.0-22-generic.
linux-modules-extra-4.15.0-22-generic depends on linux-image-4.15.0-22-generic | linux-image-unsigned-4.15.0-22-generic; however:
Package linux-image-4.15.0-22-generic is to be removed.
Package linux-image-unsigned-4.15.0-22-generic is not installed.
dpkg: error processing package linux-image-4.15.0-22-generic (--purge):
Run Code Online (Sandbox Code Playgroud)
依赖性问题 - 未删除处理时遇到错误:linux-image-4.15.0-22-generic
SDT*_*USA 14
我仍然不清楚为什么我会遇到这个问题,但似乎缺少 grub /boot/grub/menu.lst 文件导致 apt / dpkg 更新失败。所以我创建了一个空文件。
sudo touch /boot/grub/menu.lst
sudo update-grub2
Run Code Online (Sandbox Code Playgroud)
都好。然后继续更新系统:
sudo apt update
sudo apt upgrade
sudo apt autoremove --purge
Run Code Online (Sandbox Code Playgroud)
在此过程中,会出现一个警告,指出当前的 menu.lst 文件与包维护者的版本不同。选择安装包维护者版本的选项,然后其余的更新和清理成功完成。将看到下一次内核升级如何进行,但现在问题已解决。
感谢所有提供建议和帮助的人!
归档时间: |
|
查看次数: |
6577 次 |
最近记录: |