Gentoo에서 이클립스 사용하기(MOZILLA_FIVE_HOME not set 에러 대처) JAVA

WTP같은 것으로 프로젝트를 빌드하면 기본 테스트를 위해 내장 웹 브라우저를 띄운다. 그것 외에도 여러 가지 플러그인에서 내장 웹 브라우저를 활용한다.
checkstyle이라는 코드 분석도구용 이클립스 플러그인인 eclipse-cs도 그 중 하나이다. 특이하게 이건 환경설정에서 검사셋을 설정하는 화면에서 웹 브라우저를 사용한다. 이야기가 옆으로 샜는데, 어쨌든 그런 웹 화면을 띄우려고 할 때 아래와 같은 에러가 나면서 동작을 안 하는 경우가 있다.

Internal browser is not available: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]

일단 직접적인 해결책은 net-libs/webkit-gtk-1.8.3-r200 를 설치하는 것이다. 이미 이 패키지가 있는데도 저 에러가 나고 있다면 패키지를 다시 설치한다. (glibc등의 시스템 기본 패키지가 업데이트되면서 라이브러리 위치가 /usr/lib과 /lib을 왔다갔다 해서 문제가 생기는 경우도 있기 때문이다. 이 때는 재설치하면 바뀐 라이브러리 위치에 맞게 재컴파일을 하기 때문에 문제가 없어진다)

먼저 실행 환경을 설명하자면 이클립스는 젠투에서 패키지 관리를 안 하기 때문에 홈페이지의 이클립스 4.2.2를 직접 다운받아 설치했다. (jdk나 기타 다른 것들은 모두 패키지로 설치했다)
이클립스에서 웹 브라우저는 내장 브라우저라고 이름은 붙어 있어도 실제로는 SWT라는 GUI레이어가 외부 웹 브라우저를 끌어다 쓰는 형태로 동작한다. 파이어폭스 같은 모질라 계열 브라우저는  XULRunner라는 놈이 중개 역할을 하는 식으로 SWT와 연동을 했는데, 이 XULRunner라는 놈이 만악의 근원처럼 여러가지 문제를 일으켜서 최신 버전 SWT는 기본 설정이 webkitGTK라는 것을 바로 연결하는 것이다. 젠투 패키지에서는 이것이 webkit-gtk로 패키지가 등록이 되어 있다. 물론 이전처럼 XULRunner를 쓰는 것도 아직은 가능하긴 하다. 조만간 지원을 끊을 것이라는 말은 있지만 말이다

젠투는 2012년에 XULRunner를 포티지에서 퇴출시켰다. 파이어폭스는 여전히 설치는 되지만 XULRunner 연동은 제외한 채로 컴파일을 하기 때문에 이클립스에서 부르지를 못 한다. 게다가 다른 연동 가능한 웹 브라우저도 없기 때문에 저런 에러가 나는 것이다.

이것 때문에 이틀을 삽질했는데, 삽질이 길어진 이유가 내 젠투에 webkit-gtk가 이미 설치가 되어 있었기 때문이었다. 설치는 되 있되 버전이! 슬롯이! 달랐던 것이다. 1.10.2-r300버전은 GTK+ 3용이고, 1.8.3-r200은 GTK+2용이다. (각각 슬롯 이름이 3과 2로 나뉘어져 있다) 에러로 미루어보건에 이클립스에서 배포하는 리눅스 버전은 GTK+2기반으로 추측이 된다. 추후 SWT가 버전업을 하면 아마도 ᅟGTK+3용 웹킷이 필요할 것으로 예상이 된다.


덧글

댓글 입력 영역



메모장

W 위젯