apt를 통해 Java 버전을 전환하시겠습니까?

apt를 통해 Java 버전을 전환하시겠습니까?

(내 서식이 꺼져 있으면 미리 사과드립니다. 이것은 내 첫 번째 게시물이므로 언제든지 수정해 주시기 바랍니다.)

일반적으로 내가 사용하고 있는 Java 버전을 확인하려면 다음을 실행합니다.

java -version

자바 버전 "1.7.0_55"

Java 버전(Java 7에서 Java 6으로)을 변경하려면 해당 JRE Java 바이너리에 대한 심볼릭 링크(/usr/bin/java)를 가리키기만 하면 됩니다. (여기서는 javac 컴파일러나 java_ws에 대해 걱정할 필요가 없습니다. 이 경우 btw).

# readlink -f /usr/bin/java

/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java

# ln -s /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java /usr/bin/java

# java -version

자바 버전 "1.6.0_31"

이것은 괜찮습니다. 제가 보기에는 작동합니다.

Solaris에는 pkg 중재자 도구를 통해 이를 수행하는 좋은 방법이 있습니다:

myHost# pkg mediator -H java

자바 시스템 1.7 시스템

Java를 1.7에서 1.6으로 변경하려면:

pkg set-mediator -V 1.6 java

그런 다음 변경 사항을 확인하려면

myHost# pkg mediator -H java

자바 로컬 1.6 시스템

apt동등한 것이 있는지 궁금합니다 . 아니면 Java 버전 간에 전환하는 더 우아한 방법이 있습니까?

편집: 이것은 Python에도 적용될 수 있으므로 Java 관련 답변을 찾고 있지 않습니다.

답변1

설치된 소프트웨어의 여러 버전 간을 전환하는 올바른 방법은 다음을 사용하는 것입니다.

sudo update-alternatives --config <package>

따라서 Java의 경우 다음을 실행해야 합니다.

sudo update-alternatives --config java

그러면 설치된 버전이 반환됩니다. 제 경우에는 다음과 같습니다.

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      manual mode

버전 간에 전환하려면 selection전환하려는 버전에 따라 이 경우 0, 1, 2를 입력할 수 있습니다.

그러나 Python의 경우 python2 및 python3은 대안이 아니므로 이 옵션을 찾을 수 없으므로 이에 대한 별칭을 만들어야 합니다.

따라서 Python이 Python 버전 2.xx를 참조하고 python3이 Python 버전 3.xx를 참조하도록 하려면 ~/.bash_aliases파일을 열고 다음을 입력하면 됩니다.

alias python=`/usr/bin/python`
alias python3=`/usr/bin/python3`

이전에 별칭을 생성한 적이 없다면 이 파일은 비어 있을 수 있습니다. 그래도 괜찮습니다. 별칭을 반대 방향으로 원할 수도 있습니다. 예를 들어 python은 python3을 참조하고 python2는 python2를 참조합니다. 원하는 대로 별칭을 조정할 수 있습니다.

보시다시피 설치된 버전이 서로 대체 버전인지 여부에 따라 다릅니다. 대체 버전인 경우 를 사용할 수 있고, update-alternatives그렇지 않은 경우 별칭이나 소프트 링크를 사용하여 조정해야 합니다. 더 좋고 깨끗한 솔루션이 있을 수 있지만 저는 그런 솔루션을 알지 못합니다.

관련 정보