시스템을 업데이트하려고 하면 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
이런 사항은 꼭 확인해보세요아치 리눅스 뉴스. 이 경우 우리가 원하는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가 모두 있는 경우 서로 충돌하므로 하나를 선택하고 수동으로 설치해야 합니다. JDK/JRE/JRE-headless pacman 중 하나만 있는 경우 종속성은 별도의 조치 없이 정상적으로 해결되어야 합니다. 현재 이는 곧 출시될 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