나는 현재 리눅스를 2대 쓰고 있는데, 한대는 조금 깨끗한 우분투이고 한대는 두번째 리눅스를 써보면서 깐 것이라 조금 더러운 우분투이다. 그 조금 더러운 우분투가 얼마나 더럽냐면 svn 명령어를 써도 아래와 같은 오류가 날 정도로 더럽다.

svn: error while loading shared libraries: libneon-gnutls.so.27: cannot open shared object file: No such file or directory

아, 그렇다고 위의 오류가 나는 모든 리눅스가 더럽다는 뜻은 절대로 아니다. 아무튼 더러운 잡소리는 집어치우고 저 오류를 해결하는 방법을 찾아봤다.

libneon-gnutls.so.27 가 정말로 없을까?

가끔 저기 나오는 저 메시지가 구라틱할때가 있다. 메시지가 No such file or directory 가 나오더라도 10초정도 들여서 확인쯤은 해보자. 저 라이브러리 파일은 원래 /usr/lib 에 존재하므로 그 폴더로 가서 ls 를 해보자. 하면서 libneon 만 표시해주기 위해 grep 를 쓴다.

while@ubuntu:/usr/lib$ cd /usr/lib; ls -al | grep libneon
-rw-r--r--  1 root root   851362 2009-11-06 18:32 libneon-gnutls.a
lrwxrwxrwx  1 root root       24 2011-08-15 03:11 libneon-gnutls.so -> libneon-gnutls.so.27
lrwxrwxrwx  1 root root       17 2011-08-15 03:15 libneon-gnutls.so.27 -> libneon-gnutls.so.27.2.0

아마도 이렇게 되있을 것이다. 아닐수도 있다. 분명 아닐껀데, 그냥 대충 저런식으로 있다고 치고 지금 설명을 해줄 것이다. -> 로 표시된 부분은 심볼릭링크로 연결된 부분이다. 그냥 바로가기정도의 개념이라고 이해하면 된다. 우리가 필요로 하는 libneon-gnutls.so.27 이 저기 분명히 있다. 그런데 -> 로 되있다. 연결되있단 이야기이다. 결국 libneon-gnutls.so.27.2.0 을 가르키고 있는데 이 파일은 눈씻고 찾아봐도 없다. 그러기에 결국 libneon-gnutls.so.27 은 없는 파일이라고 경고가 출력 된 것이다.

libneon-gnutls 설치해보기

그래서 결국 궁극적인 목표는 저 파일을 되살리는 것이다. 기본적으로 저 파일명을 봤을때 저 패키지를 apt-get 으로 한번 설치 해보는게 보통의 순서일 것이고 그 방법은 아래와 같다.

apt-cache search libneon

을 해서 패키지들을 찾아본다. libneon25, libneon26, libneon27 등이 많이 나온다. 파일명이 so.27 이니까 27을 고르면 된다.

libneon27 - An HTTP and WebDAV client library
libneon27-dbg - Detached symbols for libneon27
libneon27-dev - Header and static library files for libneon27
libneon27-gnutls - An HTTP and WebDAV client library (GnuTLS enabled)
libneon27-gnutls-dbg - Detached symbols for libneon27 (GnuTLS enabled)
libneon27-gnutls-dev - Header and static library files for libneon27 (GnuTLS enabled)

여기서 컴파일용 패키지는 dev 이다. 그런데 2가지가 있다. 위에서 봤듯이 우리는 libneon27-gnutls-dev 가 필요하다.

apt-get install libneon27-gnutls-dev

로 설치한다.

그리고 이제 svn 을 쳐보자. svn help 를 입력하라고 경고메시지가 띄워지는가? 아직 끝이 아니다. 아무거나 svn co 한번 해보고 되는지 확인. 되면 성공. 여기서 끝.

아직 안되면 libneon27-dev 를 설치해보기

아직 똑같은 에러가 난다면 아마 /usr/lib 에 아직도 제대로된 그 .so.27 이 안깔렸을 것이다. 내가 그랬고 어찌저찌하다가 해결하기는 했다. 그래서 내가 한 해결 방법은 아래와 같다.

apt-get install libneon27-dev

위와 같이 설치하면, ls /usr/lib | grep libneon 를 해봤을때

lrwxrwxrwx  1 root root       16 2011-08-15 03:11 libneon.a -> libneon-gnutls.a
lrwxrwxrwx  1 root root       17 2011-08-15 03:11 libneon.so -> libneon-gnutls.so
lrwxrwxrwx  1 root root       17 2011-08-15 03:11 libneon.so.27 -> libneon.so.27.2.0
-rw-r--r--  1 root root   163768 2009-11-06 18:32 libneon.so.27.2.0

-gnutls 가 붙지 않은 파일들이 생긴다.
그럼 아래와 같이 해준다.

cd /usr/lib; ln -s libneon.so.27 libneon-gnutls.so.27

그리고 svn 을 작동시켜보면 될 것이다.

또 오류

포맷후 재설치를 하던가 svn 을 포기하길 바란다.