2012년 7월 9일 월요일

Consed 23.0와 DISPLAY 문제

3개월만의 포스팅이다. 주로 네이버 블로그(http://jeong_0449.blog.me/)에 글을 올리고 있고, 최근에는 genoglobe.com 및 genoglobe.net이라는 도메인을 구입하여 여기에도 글을 쓰고 있으니 당연히 구글 블로거는 소홀해질 수 밖에...

올해에는 consed version 22.0과 23.0이 근소한 시간차를 두고 발표되었다. 대부분의 성능 개선은 version 22.0에서 이루어졌고, 사소한 bug의 수정과 BamView의 성능 개선이 있었다고 한다. 22.0부터는 installConsed.perl이라는 친절한 설치 스크립트까지 포함되었다. mktrace, phd2fasta 및 454 데이터 관련 바이너리를 알아서 컴파일하여 설치해 주는 것으로 보인다. Consed의 home은 여전히 /usr/local/genome이다.

만약 consed_linux64bit를 실행시키는데 libstdc++.so.5가 없다는 에러 메시지가 나오면, compat-libstdc++-33 패키지를 설치하면 된다.

consed 22.0 or later와는 직접 관계가 있는 일인지 혹은 아닌지 잘 모르겠지만, CentOS 6.2가 설치된 컴퓨터에 consed를 깔고 이를 다른 컴퓨터에서 접속하여 실행하려고 하면 꼭 다음과 같은 에러가 난다. 다른 리눅스 서버에서 ssh -X로 접속하든, 혹은 윈도우 컴퓨터에서 Xmanager로 접속하든 같은 문제가 발생한다.

 CentOS 5.x이나 우분투에서는 절대로 아무런 문제 없이 실행이 된다.


[hyjeong@proton edit_dir]$ consed
no ~/consedrc file so no user resources will be used--that's ok
no consedrc file so no project-specific resources--that's ok
couldn't open readOrder.txt--that's ok
_X11TransSocketINETConnect() can't get address for localhost:6015: Name or service not known
Error: Can't open display: localhost:15.0

처음에는 이것이 Xmanager의 문제인줄 알고 넷사랑 컴퓨터에 질문을 하기도 했었다. 오늘에서야 부분적인 답을 알게 되었다. 

export DISPLAY=127.0.0.1:15.0

이렇게 한 다음에 consed를 실행하면 된다. consed가 설치된 컴퓨터에서 localhost의 위치를 찾지 못해서 생기는 문제라고 하는데, 왜 이런 문제가 발생하는지는 도무지 알 길이 없다. 게다가 이래가지고는 consed를 한번 실행해서 접속시마다 바뀌는 스크린 번호를 에러 메시지와 함께 알기 전에는 DISPLAY 변수를 설정하지 못한다. 

/etc/hosts내에서 localhost가 잘못 정의된 것일까? CentOS 6.2를 설치한 직후의 상태는 다음과 같고, 다른 host를 추가한 것 이외에는 건드린 것이 없다.

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

어쩌면 consed 프로그램이 /etc/hosts 파일을 제대로 파악하지 못하는지도 모른다는 생각이 들었다. /etc/hosts를 다음과 같이 심플하게 변경해 보았다.

127.0.0.1   localhost

그랬더니... 잘 되네? 서버 컴퓨터의 OS를 CentOS 6.2로 업그레이드한 뒤 몇달간 골머리를 앓게 했던 문제를 이렇게 허무하게 해결하다니...

댓글 없음: