雨翔河
首页
列表
关于
docker使用AlpineLinux安装openjdk21问题
2023-11-29 05:39
> 近期发布了openjdk21,JDK21也将成为大多数供应商的长期支持 (LTS) 版本,截止到2023年11月29号,镜像:arm64v8/alpine:latest,目前处于Alpine 3.18,包管理库里是没有openjdk21,因为Alpine 3.19.0才有openjdk21的正式支持。详情可以看: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.19.0 ``` fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/APKINDEX.tar.gz fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/aarch64/APKINDEX.tar.gz ERROR: unable to select packages: openjdk21 (no such package): required by: world[openjdk21] ``` 通过 https://pkgs.alpinelinux.org/packages 可以查询到AlpineLinux支持的所有的包。 ![](https://cdn.yuxianghe.net/image/blog/92-1.png) 在Alpine Linux中,软件包被分为不同的仓库,以便于区分它们的稳定性和支持程度。主要有以下几个仓库: 1. main:这个仓库包含了Alpine Linux的核心软件包,这些包在功能和安全性方面得到了很好的支持和维护。 2. community:这个仓库包含了一些额外的软件包,这些包可能没有得到和main仓库相同程度的支持和维护。它们可能是由Alpine Linux社区成员维护的,但并不是Alpine Linux核心开发团队的重点。通常,这些包的稳定性和安全性较低,但可以为用户提供更多的软件选择。 3. edge:这个仓库包含了Alpine Linux的开发版本软件包,这些包可能是不稳定的或者正在开发中的。edge仓库的软件包可能包含错误或者尚未经过充分测试。因此,它们主要用于测试和开发目的,不推荐在生产环境中使用。 总结一下就是edge仓库是Alpine Linux的开发版本仓库,包含了可能不稳定的软件包;而community仓库则包含了由社区成员维护的软件包,可能没有得到核心开发团队的充分支持和维护。 所以需要在AlpineLinux里用包管理器安装openjdk21需要增加另外的仓库。将 http://dl-cdn.alpinelinux.org/alpine/edge/community 加入到包仓库中,/etc/apk/repositories 是设置仓库地址的配置。 如下所示: ``` FROM arm64v8/alpine:latest RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories RUN apk update \ && apk add openjdk21 ```
类型:工作
标签:openjdk21,Alpine,linux,jdk21
Copyright © 雨翔河
我与我周旋久
独孤影
开源实验室