ArchLinux下JRE11降级失败求助:依赖问题解决方法
解决ArchLinux下JRE11降级失败及Tomcat兼容问题
问题原因
单独降级jre11-openjdk失败,是因为该包依赖同版本的jre11-openjdk-headless,当前系统中jre11-openjdk-headless仍为11.0.17.u1版本,与目标降级版本不匹配,导致依赖解析失败。Tomcat出现的ClassCastException则是新JRE内部类结构变更后,旧版本Tomcat不兼容引发的。
解决方案步骤
同时降级关联包:在
pacman -U命令中同时指定两个旧版本包的完整路径,确保版本一致:sudo pacman -U /var/cache/pacman/pkg/jre11-openjdk-11.0.13.u8-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/jre11-openjdk-headless-11.0.13.u8-1-x86_64.pkg.tar.zst强制覆盖(处理依赖冲突):若上述命令因文件冲突失败,可添加
--overwrite '*'参数强制覆盖(紧急场景下使用,注意可能影响其他依赖):sudo pacman -U --overwrite '*' /var/cache/pacman/pkg/jre11-openjdk-11.0.13.u8-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/jre11-openjdk-headless-11.0.13.u8-1-x86_64.pkg.tar.zst重启Tomcat切换JRE:降级完成后,必须重启Tomcat以加载旧版本JRE:
sudo systemctl restart tomcat临时锁定版本防自动更新:为避免后续
pacman -Syu再次升级JRE,可临时忽略这两个包:sudo pacman -Syu --ignore jre11-openjdk,jre11-openjdk-headless或编辑
/etc/pacman.conf,在IgnorePkg行添加包名:IgnorePkg = jre11-openjdk jre11-openjdk-headless后续完成Tomcat升级兼容新JRE后,再移除该配置。
内容的提问来源于stack exchange,提问作者rilent
相关产品推荐
相关产品推荐

