update-alternatives 로 java version을 바꿀 수 있다

오픈소스 진영에서 벌어지는 일들을 보면 정말 놀라운 일들이 많다. 조금이라도 기업이 사유화하려고 하면 그것을 forking 해서 새로운 오픈소스 프로젝트로 만들어버린다. Linux가 불을 지폈고, OpenOffice가 LibreOffice로, Sun Java가 OpenJDK로...
그럼 어디서 돈을 벌어야 하냐고 하겠지만 수많은 기업들이 그럼에도 불구하고 엄청난 돈을 벌고 있다.

어쨌든 나는 업무상 Sun Java를 사용해야 하는 관계로 java의 버전을 변경해야 했다. OpenJDK가 나온탓인지 Sun을 인수한 Oracle에서는 더이상 Linux에 자동 업데이트를 제공하지 않고 있다. 물론 자동 업데이트만 제공하지 않는 것이지 다운로드 받을 수는 있다. 그러면 또 누군가가 launchpad.net을 통해서 자동업데이트를 제공한다. 그걸 써도 되겠지만 소스리스트가 너무 지저분해지는 것 같아 그냥 다운로드 받아서 설치했다.

다운로드 받아서 /usr/lib/jvm 아래에다 넣어두고 path 걸어주면 끝! 이면 좋겠는데 OpenJDK 의 path가 무려 /usr/bin/java 로 걸려있어서 약간 귀찮게 되었다. 대체 어떻게 설치했길래 /usr/bin/java 에 넣었지 하며 살펴보았는데

$ whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/bin/X11/java /usr/share/java
$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22  4월  7 03:03 /usr/bin/java -> /etc/alternatives/java
$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 37  4월  7 17:53 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java

중간에 alternatives 라는 것이 끼어있다. 아! 뭔가 이걸로 버전을 관리하고 있구나하는 느낌이 왔다.
찾아보니 역시 update-alternatives라는 녀석이었다.

사용방법은 생각보다 간단하다. java 라는 name으로 실행파일 리스트를 만들어준 후 기본 값을 선택해주면 된다. 지금은 java 라는 이름에 openjdk 만 들어가있는 상태이니까 다운로드 받은 jdk를 리스트에 추가해준 후 기본값으로 선택한다.

$ update-alternatives --install /usr/bin/java java /usr/lib/jvm/usr/lib/jvm/jdk1.7.0_03/jre/bin/java/jre/bin/java 1
$ update-alternatives --config java

가만보니 소스리스트 넣는 것보다 더 간단하게 느껴지기도 한다.

반응형