Debian 的 Depend:标签不适用于 apt-get

Debian 的 Depend:标签不适用于 apt-get

软件包 A_0.0_all.deb 的控制文件包含对软件包 B 0.0 的依赖:

Depends: B (= 0.0)

软件包 B_0.0_all.deb 的控制文件的版本为 0.0:

Version: 0.0

位于同一个 Debian 存储库中的是软件包 B_1.0_all.deb。当我尝试安装软件包 A 时,出现以下错误:

[...]
The following packages have unmet dependencies:
 A : Depends: B (= 0.0) but 1.0 is to be installed.
E: Unable to correct problems, you have held broken packages.

“apt-cache madison B” 显示存储库中的两个版本。为什么 apt-get 不会安装 A 所依赖的版本?控制文件有误吗?如何编写 Depends: 以便 apt-get 安装包 A 的控制文件中指定的确切版本?

我正在构建、创建 repo 并使用以下命令进行安装:

  • Ubuntu 13.04
  • apt 0.9.7.7ubuntu4 for amd64 编译于 2013 年 4 月 12 日 23:49:05

答案1

Apt 不会考虑同一软件包的多个版本。它会选择一个版本(基于版本号、固定等的组合),然后安装该版本或根本不安装该软件包。

Aptitude 会考虑软件包的较低版本,但以后的升级会尝试升级那些较低版本,这可能会导致您的软件被无意中删除。

因此据我所知,没有真正的方法可以实现您的愿望。您可以使软件包的版本号高于发行版中的版本号(可能使用纪元),使用不同的软件包名称,或者告诉您的用户设置固定。

相关内容