システムを更新しようとすると、jdk-openjdk and jre-openjdk are in conflict
次のエラーが発生します。
更新試行ログは次のとおりです。
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
multilib is up to date
:: Searching AUR for updates...
:: Searching databases for updates...
-> Packages not in AUR: bunjs-bin flite1-patched jellyfin-server-bin jellyfin-web-bin js78 libgweather libopenaptx libvterm01 nodejs-lts-gallium progsreiserfs python-backcall
-> Orphan (unmaintained) AUR Packages: anki-official-binary-bundle jdk-jetbrains jetbrains-clion-pj python-gymnasium-notices python-hijri-converter python-jax-jumpy python-pep517
-> Flagged Out Of Date AUR Packages: anki-official-binary-bundle blades-bin logseq-desktop-wayland-bin marp-cli python-mypy-protobuf steamcmd vrms-arch
-> gcc10: local (1:10.3.0-2) is newer than AUR (10.5.0-1)
-> gcc10-libs: local (1:10.3.0-2) is newer than AUR (10.5.0-1)
:: 8 packages to upgrade/install.
8 extra/jdk-openjdk 21.u35-3 -> 21.u35-7
7 extra/jdk11-openjdk 11.0.21.u9-2 -> 11.0.21.u9-3
6 extra/jre-openjdk 21.u35-3 -> 21.u35-7
5 extra/jre-openjdk-headless 21.u35-3 -> 21.u35-7
4 extra/jre11-openjdk 11.0.21.u9-2 -> 11.0.21.u9-3
3 extra/jre11-openjdk-headless 11.0.21.u9-2 -> 11.0.21.u9-3
2 extra/jre17-openjdk 17.0.9.u8-1 -> 17.0.9.u8-2
1 extra/jre17-openjdk-headless 17.0.9.u8-1 -> 17.0.9.u8-2
==> Packages to exclude: (eg: "1 2 3", "1-3", "^4" or repo name)
-> Excluding packages may cause partial upgrades and break systems
==>
Sync Dependency (4): jre11-openjdk-headless-11.0.21.u9-3, jre17-openjdk-headless-17.0.9.u8-2, jre-openjdk-headless-21.u35-7, jre11-openjdk-11.0.21.u9-3
Sync Explicit (4): jre17-openjdk-17.0.9.u8-2, jdk-openjdk-21.u35-7, jdk11-openjdk-11.0.21.u9-3, jre-openjdk-21.u35-7
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
multilib is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: jdk-openjdk and jre-openjdk are in conflict
-> error installing repo packages
この紛争を解決するための最良の方法は何ですか?
ご協力ありがとうございます
編集:
試してみましたが、sudo pacman -R jre-openjdk
次のエラーが発生しました。
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing jre-openjdk breaks dependency 'jre21-openjdk=21.u35-3' required by jdk-openjdk
答え1
こんなことはぜひご確認くださいArch Linuxニュース。この場合、私たちが望むJDK/JRE 21 パッケージに入る変更には手動介入が必要な場合があります。:
JDK/JRE 21 パッケージに入る変更には手動介入が必要な場合があります。
2023-11-02 - フレデリック・シュワン
ディストリビューションのJDK/JREパッケージを変更しています。これは、最新バージョンのJava(> 9)でJREを構築する方法によって発生します。私たちはJava 21でこれらの変更を導入しました。
要約すると、JDKとJREパッケージは同じシステムに共存することはできませんが、競合が発生します。 JDKバリアントパッケージにはJavaアプリケーションを実行するためのランタイム環境が含まれているため、将来のJavaコンパイルとランタイムが必要な場合はJDKパッケージのみが必要です。一方、Javaランタイムのみが必要な場合は、JRE(またはjre-headless)が機能します。
アップグレード中に手動ユーザー操作が必要な場合があります。
JDK と JRE の両方がインストールされている場合、JDK を手動でインストールすると、
pacman -Syu jdk-openjdk
JRE 関連パッケージが削除されます。 JREとJRE-headlessの両方がある場合は互いに競合するため、1つを選択して手動でインストールする必要があります。 JDK/JRE/JRE-headless pacman の 1 つだけがある場合、依存関係は別途の処置なしに正常に解決する必要があります。現在、これはすぐにリリースされるJDK 21リリースでのみ機能します。
私の場合、昨日この問題を解決しました。
sudo pacman -R jre-openjdk
sudo pacman -Suy
ただし、参考資料に記載されているように、詳細はインストールする項目と必要な項目によって異なります。
答え2
最初のアップデートでは、次の説明に従って削除をjdk-openjdk
提案します。jre-openjdk
JDK/JRE 21 パッケージに入る変更には手動介入が必要な場合があります。。
JDKを手動でインストールすると、JRE関連パッケージが削除されます。
その後、フルアップグレードを実行します。
sudo pacman -S jdk-openjdk
sudo pacman -Syu