如何让APT忽略未满足的依赖关系?

我的apt-get目前在抱怨未满足的依赖关系(并且拒绝执行任何操作,直到我解决它们):
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libavcodec53 : Depends: libva1 (> 1.0.12~) but 0.31.1-1+sds4 is installed
 libva-dev : Depends: libva1 (>= 1.0.12) but 0.31.1-1+sds4 is installed
 libva-glx1 : Depends: libva1 (> 1.0.12~) but 0.31.1-1+sds4 is installed
 libva-tpi1 : Depends: libva1 (> 1.0.12~) but 0.31.1-1+sds4 is installed
 vainfo : Depends: libva1 (> 1.0.12~) but 0.31.1-1+sds4 is installed
E: Unmet dependencies. Try using -f.

问题是,我绝对需要那个特定版本的libva1。任何更新的版本都无法与mplayer-vaapi兼容。所谓的未满足依赖关系似乎对我的系统没有任何负面影响(除了破坏APT),所以有没有办法让apt-get忽略它们,只做它被告知的事情?

好问题。它告诉你要使用“-f”,你试过了吗?如果你手动下载了一个软件包,你可以编辑它的“control”文件,去除你无法满足的依赖关系,但在这种情况下并不完全是你需要的(虽然相关)。 - Rafał Cieślak
@rafalcieslak 是的,运行 'sudo apt-get -f install' 可以解决依赖问题,但会导致 mplayer 出现故障。 - bessman
1个回答

如果您有一个特定的应用程序不想升级,那么可以使用Synaptic将其“固定”或“冻结”。
选择您的应用程序 > 转到“软件包” > 向下滚动至“锁定版本”并点击 enter image description here

谢谢!固定libva1并没有解决损坏的依赖关系,但是通过synaptic我成功移除了五个损坏的软件包,问题得到了解决! - bessman
好的,很高兴能帮上忙。 - Ringtail