Translate

2013/10/25

Install Java for Debian system(or Ubuntu)


Java

  • JAVAand DEBIAN
$ apt-get install default-jre or $ apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts or $ ./jre-***.bin (설치 위치 : /usr/lib/jvm)
^이 방법 말고 deb파일 만드는 방법을 이용하자

java는 라이센스 문제로 인해서 데비안용으로 만들 open버전이 있다. 물론 데비안에서 제공하는 버전도 있지만 그건 버전이 낮기 때문에 java홈페이지에서 다운받은 파일을 사용한다.(jdk 다운로드)

1. java -package 설치

$ sudo apt-get install java -package

2. make-java를 이용해서 deb 파일 만들기
일단 java홈페이지에서 파일을 받는다.(jdk-7u3-linux-x64.tar.gz을 예제로 한다.)
파일은 .bin파일이던 .tgz이던 상관없다. make-java라는 명령어는 root로는 실행될 수 없기 때문에 일반 사용자로 실행을 해야한다.
fakeroot가 없다면 설치한다.($ sudo apt-get install fakeroot)
이제 deb 파일을 만들어 보자


$ fakeroot make-jpkg jdk-7u3-linux-x64.tar.gz
Creating temporary directory: /tmp/make-jpkg.o0KkIq2oQl
Loading plugins: /usr/share/ java -package/common.sh /usr/share/ java -package/j2re.sh /usr/share/ java -package/j2sdk-doc.sh /usr/share/ java -package/j2sdk.sh /usr/share/ java -package/j2se.sh /usr/share/ java -package/oracle-j2re.sh /usr/share/ java -package/oracle-j2sdk-doc.sh /usr/share/ java -package/oracle-j2sdk.sh

Detected Debian build architecture: amd64
Detected Debian GNU type: x86_64-linux-gnu

Detected product:
Java (TM) Development Kit (JDK)
    Standard Edition, Version 1.7.0+update3
    Oracle(TM), Inc.
Is this correct [Y/n]: Y

Checking free diskspace: done.

In the next step, the binary file will be extracted. Probably a
license agreement will be displayed. Please read this agreement
carefully. If you do not agree to the displayed license terms, the
package will not be built.

Press [Return] to continue:



Testing extracted archive... okay.

Create debian package:
    dh_testdir
...


이제 oracle-j2sdk1.7_1.7.0+update3_amd64.deb 파일이 만들어 졌다.(참고로 필자는 64bit 환경을 사용한다.) 설치를 한다.
아마도 default-jre나 openjdk가 설치되었을 것이다. 이 패키지를 지우지는 말고 그냥 놔둔다.(일부 패키지의 경우 의존성이 걸려있기 때문이다.)


3. jdk를 기본으로 설정
먼저 oracle-j2sdk1.7_1.7.0+update3_amd64.deb 파일을 실행하여 설치한다.
데비안에는 여러가지 버전이 설치되었을 경우 기본값을 설정할 수 있는 기능이 있다. 바로 update-alternatives이다.

아래와 같이 두 가지 방법으로 설정을 할 수 있지만 제대로 설정을 하기 위해서는 jinfo를 수정해야한다.
이 글 맨 아래를 참고한다.


$ sudo update-alternatives --config java
대체 항목 java에 대해 (/usr/bin/ java제공) 3개 선택이 있습니다.

  선택       경로                                          우선순  상태
------------------------------------------------------------
  0            /usr/lib/jvm/ java -6-openjdk-amd64/jre/bin/ java    1061      자동 모드
* 1            /usr/lib/jvm/j2sdk1.6-oracle/jre/bin/ java         315       수동 모드
  2            /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/ java         317       수동 모드
  3            /usr/lib/jvm/ java -6-openjdk-amd64/jre/bin/ java    1061      수동 모드

기본 사항[*]을 사용하려면 엔터, 다른 것을 사용하려면 번호를 입력하십시오: 2
update-alternatives: /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/ java사용해서 수동 모드에서 /usr/bin/ java java ) 제공.

필자의 경우에는 이전에도 이런 방법으로 설치했기 때문에 j2sdk1.6이 설치되어 있다...
선택하고자 하는 버전 번호를 선택하면 된다.

다음 명령어로 default-java에도 링크를 걸어준다.

          $ cd /usr/share/lib/jvm
$ sudo rm default- java
$ sudo ln -s j2sdk1.7-oracle/ default- java
$ ls -al
합계 104
drwxr-xr-x   7 root root  4096  7월 28 18:48 .
drwxr-xr-x 138 root root 69632  7월 26 21:30 ..
-rw-r--r--   1 root root  2162  7월 28 18:26 .j2sdk1.7-oracle.jinfo
-rw-r--r--   1 root root  2387  6월 26 22:24 . java -1.6.0-openjdk-amd64.jinfo
lrwxrwxrwx   1 root root    16  7월 28 18:48 default- java -> j2sdk1.7-oracle/
drwxr-xr-x   3 root root  4096  7월 28 18:46 j2sdk1.6-oracle
drwxr-xr-x   9 root root  4096  7월 28 18:48 j2sdk1.7-oracle
lrwxrwxrwx   1 root root    20  2월 27 20:05 java -1.6.0-openjdk-amd64 -> java -6-openjdk-amd64
drwxr-xr-x   5 root root  4096  3월 20 17:48 java -6-openjdk-amd64
drwxr-xr-x   3 root root  4096  3월 20 17:48 java -6-openjdk-common
drwxr-xr-x   5 root root  4096  7월  6 10:23 java -7-openjdk-amd64

설정이 잘 되었다는 걸 확인할 수 있다...

4. 브라우저 플러그인
※ java7은  브라우저에서 cpu 폭주를 이르키고 특히 크롬에서 작동을 멈추는 현상이 발생한다.  그래서 사용하지 않기로 했다. → 파폭에서만 사용을 한다. 그렇게 설정을 했다. 현재는 1.6 버전으로 돌아갔다.

설치만 해도 정상적으로 연결이 되는 듯하다.

일단 파폭이나 크롬에서도 설정이 잘 동작하는지 확인한다.(about:plugins)
잘 동작이 되면 상관 없으나 그렇지 못할 경우에는 플러그인을 연결 시켜주어야한다. 
주의 사항은 기존에 나와있는 libnpjpj.so를 링크시키는 방법은 사용하지 말자

$ sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/j2sdk1.6-oracle/jre/lib/amd64/libnpjp2.so 1
$ sudo update-alternatives --config mozilla-javaplugin.so


만약 크롬에서 설정이 안될 경우에는 /opt/google/chrome에 plugins 디렉토리를 만들어서 링크를 걸어준다.


다음 명령어로도 설정을 할 수 있다.
# update- java -alternatives -l : 설치된 java확인
# update- java -alternatives --set $ java -version : 해당 버전을 기본으로 설정

p.s. 
20121201
$ sudo update- java -alternatives --set j2sdk1.7-oracle
update-alternatives: 오류: no alternatives for jhat
update-alternatives: 오류: no alternatives for jrunscript
update-alternatives: 오류: no alternatives for schemagen
update-alternatives: 오류: no alternatives for wsgen
update-alternatives: 오류: no alternatives for wsimport
update-alternatives: 오류: no alternatives for xjc

이 오류 왜 나는지 모르겠다...

2013.10.07 
여전히 오류가 발생하고 있다...

→ 결과적으로 첫번째 방법을 사용한다.

아래 방법을 사용한다.
  • update-alternatives 사용 방법
$ sudo update-java-alternatives --set <alternative>
시에 오류가 나는데 이때는 jinfo를 수정해야 한다.

$ cd /usr/lib/jvm
$ ls -a
.jdk-7-oracle-x64.jinfo
.java-1.6.0-openjdk-amd64.jinfo

이 파일을 열고 오류가 나는 항목을 추가해 준다.

$ sudo vi .jdk-7-oracle-x64.jinfo
...
jdk xjc /usr/lib/jvm/jdk-7-oracle-x64/bin/xjc
jdk wsimport /usr/lib/jvm/jdk-7-oracle-x64/bin/wsimport
jdk wsgen /usr/lib/jvm/jdk-7-oracle-x64/bin/wsgen
jdk schemagen /usr/lib/jvm/jdk-7-oracle-x64/bin/schemagen
jdk jrunscript /usr/lib/jvm/jdk-7-oracle-x64/bin/jrunscript
jdk jhat /usr/lib/jvm/jdk-7-oracle-x64/bin/jhat
...

그리고 나서 

$ cat .jdk-7-oracle-x64.jinfo | grep -E '^(jre|jdk)' | awk '{print "/usr/bin/" $2 " " $2 " " $3 " 30 \n"}' | xargs -t -n4 sudo update-alternatives --verbose --install
$ sudo update-java-alternatives --set jdk-7-oracle-x64

이제 오류가 나지 않을 것이다. 

※ 브라우저 플러긴의 경우 계속 오류가 나는데
$ sudo update-alternatives --verbose --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/jdk-7-oracle-x64/jre/lib/amd64/libnpjp2.so 30

물론 이렇게 추가하면 추가는 되지만 이상하게 오류는 계속 발생한다.



※ 최신 버전(1.7)에는 fontconfig할 필요없이 바로 한글이 잘 나오는 거 같다. ControlPanel로 확인.
TIP. ControlPanel시에 캐쉬 디렉토리 설정할 수 있음


Ref.


  • jnlp 실행
$ sudo apt-get install icedtea-netx 
$ sudo javaws ./<파일명>.jnlp



Related Posts

  • Install Java for Debian system(or Ubuntu) Java JAVAand DEBIAN $ apt-get install default-jre or $ apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts or $ ./jre-***.bin (설치 위치 : /usr… Read More
  • NixnoteEvernote를 사용해서 관련 내용을 정리하는 편이다. 상당히 좋은 편이다. 하지만 리눅스를 사용하는 입장에 전용 풀그림이 없기 때문에 불편한 점이 많았었다. 특히 글꼴 문제와 자잘한 문제... 그래서 crossover로 윈도우용 evernote를 사용했는데 wine의 특성상 컴이 … Read More
  • 오픈뱅킹에 대한 생각... 스마트폰이 등장하면서 우리 생활이 많이 바뀌었다. 전세계적으로 ios와 android의 성장을 꼽을 수 있는데 그에 따라 윈도우의 하락세가 여전하다. 뭐 윈도우8은 새로운 비스타라는 말이 나올정도이다. 개인적으로 아이폰 덕분에 우리나라에서도 긍정적으로 변화했다고 본다. 맥을 사용… Read More
  • ruby-hwp아래아 한글과 관련된 문제는 맥 뿐만 아니라(어쩌면 맥에서는 별 문제 없을지도 모른다.) 리눅스에서 가장 큰 문제이다. 얼마 전 한컴에서 hwp를 공개했지만 이 문서에는 많은 문제점이 있다고 한다. (hwp 스펙 문서 문제점) 공개를 했을 때 제대로 해 줬으면 이런 문제 없이 잘 사… Read More
  • VirtualBox를 이용해서 물리적 하드 사용하는 방법 $ sudo adduser $사용자 disk 로그아웃하고 다시 들어온다.(생략해서는 안된다.) 먼저 윈도우가 설치된 파티션이 어딘지 확인을 한다. $ sudo fdisk -l /dev/sda Disk /dev/sda: 128.0 GB, 1280356761… Read More

댓글 없음:

댓글 쓰기

Template by Aliya H.