我在旧系统上有一个旧软件包,我想升级我的操作系统。让特定的包在较新的系统上工作可能是可能的,但我现在不想弄乱它,我仍然想使用它。当我尝试使用 Ubuntu 23.04 时,我陷入了依赖噩梦。
无论如何,是否#apt-mark hold <package>
保留了包以及包的依赖关系?apt-mark Hold 是否可以采取任何措施来防止包损坏?或者它仅阻止对特定软件包的更新?
我在旧系统上有一个旧软件包,我想升级我的操作系统。让特定的包在较新的系统上工作可能是可能的,但我现在不想弄乱它,我仍然想使用它。当我尝试使用 Ubuntu 23.04 时,我陷入了依赖噩梦。
无论如何,是否#apt-mark hold <package>
保留了包以及包的依赖关系?apt-mark Hold 是否可以采取任何措施来防止包损坏?或者它仅阻止对特定软件包的更新?
apt-mark hold X
还持有依赖关系吗?有时,由于 apt 依赖逻辑的性质,确实如此:当包 X 依赖于 Y 和 Z 的特定版本时,Y 和 Z可能会被阻止升级。
这不是一个单独的“保留”。如果在 X 控制文件中指定了 Y 和 Z,则可用版本。您可以通过查看来看到它们
apt show X
。包示例
hello
:libc6
依赖项必须是版本 2.34 或更高版本。当其他也使用 Y 的软件需要更新版本时,通常会发生噩梦。
示例:W 还依赖于 Y。W 的新版本依赖于 Y > 2.0,以便使用 2.0 中引入的 Y 功能。Y 被限制在 2.0 以下意味着 W 也需要保留在 Y 1.8 可以接受的旧版本。
这让用户感到困惑:W 似乎与 X 无关。但它们是……通过共享依赖关系。