AWS EC2实例安装Java时出现匹配错误
嘿,这个问题我之前帮朋友排查过,大概率是你的EC2实例操作系统版本或者yum仓库配置的问题,别着急,咱们一步步来解决:
第一步:确认你的EC2实例操作系统版本
先运行这条命令查看系统信息:cat /etc/os-release
根据输出的版本,对应下面的解决方案即可。如果是Amazon Linux 2023(AL2023)
AL2023默认采用Amazon Corretto作为官方OpenJDK发行版,旧的java-1.8.0-openjdk-devel包已经不在默认仓库中了。你需要安装Corretto版本的Java 8:sudo dnf install java-1.8.0-amazon-corretto-devel
(小贴士:AL2023推荐使用dnf代替yum,不过yum也能兼容使用)如果是Amazon Linux 2(AL2)
首先更新yum缓存,避免因缓存过期导致无法识别仓库中的包:sudo yum makecache fast
之后重新尝试安装(可以明确指定架构x86_64):sudo yum install java-1.8.0-openjdk-devel.x86_64
如果还是报错,可能是amazon-linux-extras仓库未启用,试试这条命令安装:sudo amazon-linux-extras install java-openjdk1.8通用排查小技巧
你可以先搜索系统仓库中可用的Java 8相关包,确认存在的正确包名:yum search java | grep 1.8
(如果是AL2023,替换成dnf search java | grep 1.8)
找到匹配的包名后,直接用该包名执行安装命令即可。
简单说下报错原因:出现No match for argument的错误,要么是你的系统版本已不再维护旧版OpenJDK包(比如AL2023),要么是yum缓存未更新导致无法识别最新仓库内容,还有可能是对应的软件仓库未启用。
备注:内容来源于stack exchange,提问作者user1803282

