You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止dpkg安装软件包过程中自动升级至其他版本

解决dpkg安装VirtualBox指定版本后被apt替换的问题

别客气!刚接触Linux遇到这种版本匹配的问题太正常了,我来一步步帮你搞定:

为什么会出现这个情况?

你用sudo dpkg -i手动安装了VirtualBox 5.1.14,但这个命令不会自动处理依赖。当你运行sudo apt install -f时,apt会默认从系统配置的软件源里拉取最新兼容版本的VirtualBox来修复依赖,所以就把你要的5.1.14替换成了5.1.32。

解决步骤

1. 重新安装你需要的VirtualBox 5.1.14版本

先确保你手里的deb包还在,执行安装命令(注意替换成你实际的deb文件名):

sudo dpkg -i ./virtualbox-5.1_5.1.14-112924~Ubuntu~xenial_amd64.deb

这时候会弹出依赖未满足的错误,不用慌,这是正常的。

2. 修复依赖但保留指定版本

不要直接用sudo apt install -f,而是明确告诉apt要修复依赖但不替换主包,命令格式如下(版本号要和你安装的deb包完全一致,你可以从deb文件名里提取):

sudo apt install -f virtualbox-5.1=5.1.14-112924~Ubuntu~xenial

这条命令会只安装满足5.1.14版本所需的依赖,而不会把VirtualBox升级到新版本。

3. 锁定版本防止后续被升级

为了避免之后运行sudo apt upgrade时又被自动升级,锁定这个包的版本:

sudo apt-mark hold virtualbox-5.1

如果之后需要解锁升级,只需执行:

sudo apt-mark unhold virtualbox-5.1

额外建议:检查并禁用VirtualBox官方源(可选)

如果你的系统里添加了VirtualBox的官方软件源,apt会优先从这里拉取新版本。你可以:

  • 打开/etc/apt/sources.list或者/etc/apt/sources.list.d/目录下的virtualbox相关文件
  • 把包含VirtualBox源的行前面加上#注释掉
  • 执行sudo apt update更新源缓存,这样apt就不会再从官方源获取新版本了

内容的提问来源于stack exchange,提问作者Blackness

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:24:30