由于 Java 25 LTS 即将推出(2025 年 9 月),而我还没有安装 Java JDK 21 LTS(2023 年 9 月),所以我尝试在sudo apt install openjdk-21-jdk
我的 Debian 12 上进行安装。但安装失败并显示一条package not found
消息。
其软件包在 Debian 12: openjdk-21上尚不可用(除 外sid
)。
我正在考虑从https://jdk.java.net/archive/下载它作为tar.gz
版本21.0.2 (build 21.0.2+13)
(代价是忘记apt
处理 Java 的命令,并在我的议程上写下手动检查那里的更新)
但我担心的是:
如果多年来无法创建 Debian 12 的
专用软件包,那么如果我尝试安装它,.deb
其中包含的内容会破坏我的系统吗?.tar.gz
openjdk-21-jdk
从 java.jdk.net 安装存档并不安全,但并非由于打包问题。那里的 Java 21 存档不会收到更新,而且 21.0.2 受到许多问题的影响,这些问题已在后续版本中得到修复。
由于 Debian 没有提供 Debian 12 的软件包(而且可能永远不会提供——你会在 Debian 13 中获得它,但我怀疑它是否会被反向移植),你需要从其他地方下载它。一个不错的选择是使用Adoptium提供的经过验证的版本之一。
/opt
只要您将 tarball 解压到、或甚至您的主目录下/usr/local
,它就不会破坏您的系统。您应该抵制使用update-alternatives
、 来提供它的诱惑,而是在必要时依靠适当的设置JAVA_HOME
和PATH
。值得牢记 Stéphane Chazelas 关于目标环境的评论——如果您的目标是开发在 Debian 12 上使用的应用程序,那么最好坚持使用 Java 17。在 Debian 13 上升级到 Java 21 会容易得多,Debian 13 预计将于今年晚些时候(可能是今年夏天)发布。否则,您需要在需要部署构建应用程序的任何地方管理运行时环境,或者使用 Quarkus 之类的工具来构建原生应用程序。
如果 tarball 包含一组文件,请将它们放在系统标准目录之外,并将它们放在
/opt
或 下/usr/local
。这样,当不再需要时,更容易手动删除。如果 tarball 包含,
deb
那么只要您知道要安装什么,包管理器就会处理依赖关系,并且您可以apt remove {package}
在不再需要时手动删除该包(