如何让 Debian 中的 apt 不关心版本不匹配?

如何让 Debian 中的 apt 不关心版本不匹配?

我曾经dpkg将不同 Debian 版本 (Sid) 中的一些软件包 (openjdk) 强制安装到我当前的安装 (Stretch) 上。它似乎有效(可以编译“hello world”)之后尝试安装任何东西都会抱怨libc6版本不匹配。

我怎样才能忽略这个问题?

或者是否有另一种方法可以让同一基本安装提供多种 openjdk 版本?我不愿意用希德作为我的根据地。

答案1

你不能忽视这个问题...

然而,有几种方法可以解决这个问题。

  1. 您可以升级到 Debian 10:目前该版本的 OpenJDK 版本与 stable 中的版本接近,并且很快就会有完全相同的版本。

  2. 您可以从 Stretch 向后移植安装 OpenJDK (11);这与不稳定的版本相同,但是是针对 Stretch 的软件包构建的。

后者可能更简单:

echo deb http://deb.debian.org/debian stretch-backports main | sudo tee /etc/apt/sources.list.d/stretch-backports.list
sudo apt update
sudo apt install -t stretch-backports openjdk-11-jdk

你可能还需要处理一些libc 差异的影响,但具体细节取决于您随 OpenJDK 一起升级的内容。

您可以以这种方式并行安装 OpenJDK 8 和 11,并通过JAVA_HOME相应设置来使用合适的版本。系统范围内的默认 Java 版本可以通过运行来设置update-java-alternatives

要安装旧版本的 Java,您可以尝试从 Debian 快照安装软件包集;你会找到OpenJDK 6OpenJDK 7。我不会尝试版本 9 和 10,因为它们从未以稳定的发行版发布;无论如何,他们不应该被需要。

无论您做什么,都不要尝试从较新版本的 Debian 安装软件包,也不要使用dpkg--force选项。

相关内容