当我尝试安装 .deb 文件时,dpkg 给出了此错误:
dpkg: error: dpkg status database is locked by another process
所以我尝试了一下dpkg --configre -a
,它给了我这个输出
Setting up linux-image-4.10.0-24-generic (4.10.0-24.28) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-4.10.0-24-generic
vmlinuz(/boot/vmlinuz-4.10.0-24-generic
) points to /boot/vmlinuz-4.10.0-24-generic
(/boot/vmlinuz-4.10.0-24-generic) -- doing nothing at /var/lib/dpkg/info/linux-image-4.10.0-24-generic.postinst line 491.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.10.0-24-generic /boot/vmlinuz-4.10.0-24-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.10.0-24-generic /boot/vmlinuz-4.10.0-24-generic
它在最后一行停了 1 小时,然后我不得不使用 Ctrl+c 退出。
我的系统有什么问题?
附言:有一次我在安装 wicd 时遇到了麻烦,从那时起 apt 就一直给我各种错误。如果这与此有关,有没有办法让 apt 检查以发现问题?或者我必须重新安装 ubuntu?
答案1
导致您出现问题的一个可能原因是 /boot 分区已满。在某些 Ubuntu 安装中,您会发现以下分区布局:
mount
/dev/sda2 on / type ext4 (rw)
/dev/sda1 on /boot type ext2 (rw)
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 200G 23G 172G 12% /
/dev/sda1 1G 1G 0G 100% /boot
在大多数情况下,/boot 分区中都挤满了内核更新。可以使用以下命令删除旧内核:
sudo apt-get --purge autoremove
但是如果 /boot 过于拥挤,则需要手动删除一些旧的内核包:
dpkg -l "*linux*" | grep ^ii | tr -s ' ' | cut -d' ' -f2
...
linux-image-4.4.0-79-generic
linux-image-4.4.0-81-generic
linux-image-extra-4.4.0-79-generic
linux-image-extra-4.4.0-81-generic
...
sudo dpkg -r linux-image-4.4.0-79-generic \
linux-image-extra-4.4.0-79-generic