当我想安装一个软件包,但该软件包所依赖的软件包版本比我的系统上安装的软件包版本旧时,我如何确定降级该软件包是否会破坏可能依赖于更高版本的其他软件包?
我已经这样做了一段时间很多自从重新安装 Ubuntu 12.10 而不是 12.04 以来,软件包的数量是多少?这是一个相关的问题吗?
我尝试过的方法:-
- 搜索 Ubuntu 论坛和 AskUbuntu(不相关的问题)
- 谷歌搜索(同样,给出不相关的结果或没有结果)
- 亲自尝试一下(找不到合适的套装来试用)
如果该问题之前已经在这个网站上被问过,我深感抱歉,因为我可能没有用正确的术语来组织我的搜索。10x。
答案1
让我们以evince
和gedit
为例。打开终端并运行:
apt-cache show evince | grep Conflicts
apt-cache show evince | grep Breaks
这对命令会告诉你是否evince
中断或与其他命令发生冲突。在我的例子中,我得到了
$ apt-cache show evince | grep Conflicts
Conflicts: evince-gtk
$ apt-cache show evince | grep Breaks
<blank>
所以evince
冲突这意味着evince-gtk
它们不应该同时安装(如果发生这种情况,APT 会抱怨)。
在我的例子中,evince
没有声明破坏任何包,所以我们跳到gedit
。现在,运行
$ apt-cache show gedit | grep Conflicts
<blank>
$ apt-cache show gedit | grep Breaks
Breaks: gedit-plugins (<< 2.91)
正如你所看到的,gedit
这并不与任何人发生冲突。尽管如此,它确实休息该软件包gedit-plugins
要求的版本严格低于2.91
。这意味着gedit-plugins
大多数版本必须比此版本更新才能正常工作gedit
,特别是 APT 将拒绝安装,gedit
除非您gedit-plugins (<< 2.91)
先删除。
请注意,即使gedit-plugins
官方存储库中的版本足够新,你也可能想要下载(也许github
)某个较旧的 GEdit 插件,此行可提醒你注意这个较旧的版本应该不适用于当前的 GEdit 版本。
有关包关系(以及中断和冲突的官方定义)的更多详细信息,请参阅Debian 政策手册 - 第七章。