我在使用 apt 安装软件包时遇到了一些问题。安装过程中终端挂断了,我别无选择,只能关闭终端。但问题是我似乎无法解决由此引起的问题。
通常情况下,我会得到:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
这让我一无所获,直到我运行 ,我才被锁定sudo dpkg --configure -a
。这很有道理。但是,此过程会吐出以下内容,然后在最后一行挂起:
Setting up virtualbox-dkms (5.2.10-dfsg-6) ...
Removing old virtualbox-5.2.10 DKMS files...
-------- Uninstall Beginning --------
Module: virtualbox
Version: 5.2.10
Kernel: 4.15.0-23-generic (x86_64)
-------------------------------------
Status: This module version was INACTIVE for this kernel.
depmod...
DKMS: uninstall completed.
------------------------------
Deleting module version: 5.2.10
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-5.2.10 DKMS files...
Building for 4.15.0-23-generic
Building initial module for 4.15.0-23-generic
我读到的一个典型解决方案是你需要修复损坏的软件包。当我尝试修复损坏的软件包(sudo apt install -f
)时,系统也挂在同一行,尽管输出不同:
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
3 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up virtualbox-dkms (5.2.10-dfsg-6) ...
Removing old virtualbox-5.2.1
0 DKMS files...
------------------------------
Deleting module version: 5.2.10
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-5.2.10 DKMS files...
Building for 4.15.0-23-generic
Building initial module for 4.15.0-23-generic
除非我终止进程,否则我无法退出。我通过检查当前正在运行的与 apt ( ps aux |grep apt
) 相关的进程来做到这一点,然后使用 终止相关进程sudo kill -9 process_number_here
。
如果我在此之后尝试运行某些程序,它会告诉我仍然需要重新配置 dpkg。
我尝试寻找 dpkg 的更多解决方案,而我真正看到的只是核选项:
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/apt/lists/lock
我还删除了 /var/lib/dpkg/updates 中的文件,因为当我进行一些挖掘时,发现里面的一个文件包含与上面的长输出完全相同的文本......但我完全承认这超出了我的能力范围,我不知道该怎么办。
查看错误消息后,我意识到它挂在了与内核相关的构建上。但我不知道从哪里开始解决这个问题。任何帮助都非常感谢。我的系统是 ubuntu 18.04
答案1
系统正在后台等待输入密码。
- 输入你的 root 密码并按回车键
- 输入新密码,该密码将用于为 vboxdrv 内核模块注册机器所有者密钥 (MOK)
- 重复您在 (2) 中输入的密码
- 等待过程完成并重新启动系统
- 启动时,按照说明注册 MOK
这对我来说很有帮助。
答案2
我刚刚通过以下步骤解决了该问题:
Ctrl按+ Alt+T并输入以下内容打开终端:
sudo dpkg --configure -a
- 看到后
Building inital module
立即按Ctrl+C取消该过程 - 对其他建筑模块重复此操作。
- 使用 synaptic 重新安装 VirtualBox 并重启
再次转到终端并输入命令:
sudo apt install --fix-missing
- 现在一切都可以恢复正常运行。
我认为 VirtualBox 目前存在一个主要问题,但是经过上述测试后,一切正常。
答案3
这表明你的包管理器正在运行:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
事实上,它似乎为你的内核构建了内核模块,这取决于你的硬件,可能需要一些时间 - 如果你不像你那样中断该过程的话。
只需重新开始sudo dpkg --configure -a
,再耐心一点。然后再做sudo apt install -f
一次。
答案4
修复这个问题的方法是,以图形模式运行 Ubuntu 的“软件更新程序”,然后按照提示重新启动。终端apt
恢复正常 :)