当 repo 有较新版本时是否安装特定版本?

当 repo 有较新版本时是否安装特定版本?

让我们有一个依赖于以下包的元包

Depends: A (=2),
 B (=2),
 C (=2)

注意‘=’——我想安装这些特定版本,而不是最新版本。

此外:

依赖于取决于A(>=1)

C依赖于取决于(>=1)和A(>=1)

如果存储库中 A、B、C 的最新版本是 2,那么此方法可行。

由于我已将 A 的版本 3 和 B 的版本 3 放入 repo 中,因此 sudo apt-get install my-meta-package 拒绝完成并显示以下信息:

The following packages have unmet dependencies:
  my-meta-package: Depends: B (= 2) but 3 is to be installed
                   Depends: A (= 2) but 3 is to be installed

如果我手动安装 A 和 B 的版本 2,那么元包就会正确安装,这强烈表明 A3 或 B3 上没有隐藏的依赖关系。这无法解决问题,因为元包在许多机器上都是自动安装的。

问题:如何让 sudo apt-get install my-meta-package 安装版本 2,2,2?

此外,有没有办法让我获得更多信息,真正了解为什么需要 A 版本 3 和 B 版本 3?

答案1

您必须选择要安装的特定版本,并在安装元包的同时安装它们所有。

sudo apt-get install meta-package package1=2 package2=2 package3=2

喜欢int_ua 的回答说,你可以用这个找出反向依赖关系:

apt-cache rdepends package

如果你想了解有关这些软件包的更多信息(可用版本、依赖项等等), 用这个:

apt-cache show package

安装完成后,如果想在系统升级时保留这些版本,则需要使用apt-pinning按照建议贝拉夸

APT 锁定

APT 固定功能允许管理员强制 APT 选择特定版本的软件包,这些软件包可能在不同存储库中提供不同的版本。这允许管理员确保软件包不会升级到可能与系统上的其他软件包冲突的版本,或者没有对不受欢迎的更改进行充分测试的版本。为了做到这一点,必须修改 APT 首选项文件 (/etc/apt/preferences) 中的固定。

答案2

您可以尝试先安装依赖项

sudo apt-get install package=2其中 2 是版本

你可以使用以下命令找出哪些软件包依赖于该软件包

apt-cache rdepends package

相关内容