한번은 dpkg
다른 Debian 버전(Sid)의 일부 패키지(openjdk)를 현재 설치(Stretch)에 강제 설치했습니다. 작동하는 것 같습니다("hello world"를 컴파일할 수 있음).하지만그 이후에 무엇이든 설치하려고 하면 libc6
버전 불일치에 대한 불만이 표시됩니다.
이 문제를 어떻게 무시할 수 있습니까?
또는동일한 기본 설치에서 여러 openjdk 버전을 사용할 수 있는 다른 방법이 있습니까? 나는 Sid를 내 기반으로 사용하고 싶지 않습니다.
답변1
이 문제를 무시할 수는 없습니다...
그러나 이 문제를 해결하는 방법에는 여러 가지가 있습니다.
Debian 10으로 업그레이드할 수 있습니다. 현재 이 버전의 OpenJDK 버전은 stable 버전에 가깝고 곧 동일한 버전이 나올 예정입니다.
Stretch에서 백포트된 OpenJDK(11)를 설치할 수 있습니다. 이는 불안정한 버전과 동일하지만 Stretch 패키지에 대해 구축되었습니다.
후자가 아마도 더 간단할 것입니다.
echo deb http://deb.debian.org/debian stretch-backports main | sudo tee /etc/apt/sources.list.d/stretch-backports.list
sudo apt update
sudo apt install -t stretch-backports openjdk-11-jdk
당신은 또한 처리해야 할 수도 있습니다일부libc 차이점이 있지만 구체적인 내용은 OpenJDK로 업그레이드한 항목에 따라 다릅니다.
이런 방식으로 OpenJDK 8과 11을 나란히 설치하고 JAVA_HOME
적절하게 설정하여 적절한 버전을 사용할 수 있습니다. 시스템 전체의 기본 Java 버전은 를 실행하여 설정할 수 있습니다 update-java-alternatives
.
이전 버전의 Java를 설치하려면 Debian 스냅샷에서 패키지 세트를 설치해 보세요.오픈JDK 6그리고오픈JDK 7. 버전 9와 10은 안정 릴리스로 출시된 적이 없으므로 어쨌든 필요하지 않기 때문에 시도하지 않겠습니다.
무엇을 하든 최신 버전의 데비안에서 패키지를 설치하려고 하지 말고 dpkg
해당 --force
옵션을 사용하지 마세요.