Emacs 를 24.50 으로 업그레이드 했더니 , 잘 쓰던 org-mode 에서 에러가 발생합니다. 


org-overview: `recenter'ing a window that does not display current-buffer


이런 형식으로 에러가 발생하더군요. org-overview 가 문제라는 것을 알았으면 문제는 고치기 쉽습니다. 


C-h f  를 입력해서 describe-function 함수를 불러냅니다.  이때 함수명을 입력하는 곳에다가 org-overview 라고 입력하면 org-overview 에 대한 가벼운 설명과 그 함수가 포함된 org.el 파일이 하이퍼 링크로 나타납니다. 이때 org.el 을 클릭하면 org.el 파일이 열리는데. 이게 실은 org.el.gz 파일을 압축을 풀고 보여주는 것입니다. 



가볍게 recenter 함수를 호출하는 부분을 막아줍니다. 그리고 나서 이 내용을 저장하면 org.el.gz 파일로 저장되는데 이를 압축을 풀어주던지 아니면 새로 org.el 파일을 만들어서 같은 내용을 복사해줍니다. 그리고 byte-compile 을 해야 하지만 저는 귀찮은 관계로 그냥 org.el 파일로 뒀습니다. 


그리고 기존 소스로 만들어진 org.elc 파일을 지워주시고 emacs 를 다시 띄워주시면 됩니다. 

저번 포스트 에서 빌드가 끝나서 설치를 한 emacs 를 실행해 보면 아마도 에러가 발생할 것입니다. (죄송합니다..)

emacs: Cannot open termcap database file

구글신에게 신탁을 부탁하니 다음과 같은 라이브러리가 없어서 에러가 난다 하시더군요

libncurses5-dev

그래서 아래의 url 로 이동하여

https://launchpad.net/ubuntu/+source/ncurses/5.9-1ubuntu5/+build/2789460
( 5.9-1ubuntu5 버젼으로 맞춰줘야 하기 때문에 위 url 로 이동해야 합니다. )

libncurses5-dev_5.9-1ubuntu5_i386.deb (233.6 KiB) 

이 버젼을 받아서 설치해 줍니다. 설치 방법은 우분투의 적당한 곳에 옮기고

$ sudo dpkg -i libncurses5-dev_5.9-1ubuntu5_i386.deb

로 설치해 줍니다. (dpkg -r 하면 제거 합니다. install/remove )
아마 저와 같은 환경이라면 설치가 안 될것입니다. 의존성 에러가 발생하는데

libtinfo-dev (= 5.9-1ubuntu5)

위의 패키지를 설치해 줘야 합니다. 아래 보이는 url 로 이동하여

https://launchpad.net/ubuntu/+source/ncurses/5.9-1ubuntu5/+build/2789460

libtinfo-dev_5.9-1ubuntu5_i386.deb (62.9 KiB)

위 버젼을 다운로드 받아서 우분투의 적당한 곳에 옮기고 다음과 같이 명령을 실행합니다.

$ sudo dpkg -i libtinfo-dev_5.9-1ubuntu5_i386.deb

설치가 되면 다시 설치 실패했던 libncurses5-dev_5.9-1ubuntu5_i386.deb 를 설치해줍니다. 다음과 같은 명령을 실행

$ sudo dpkg -i libncurses5-dev_5.9-1ubuntu5_i386.deb


configure 를 다시 실행해주고 make 를 실행해서 설치해 줍니다.

$ ./configure --without-x --with-crt-dir=/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/

$ make
$ sudo make install

여기까지 따라해 주시면 드디어 콘솔상에서 이맥스가 실행되는 것을 구경하실 수 있습니다.


지금 일하는 곳이 버추얼박스 (VirtualBox) 에서 네트워크 드라이버가 안잡히게 하는 멋진 보안 환경 때문에 공유폴더를 이용해서 파일을 복사하여 수동으로 설치하게 되어 있습니다. 따라서 GTK 를 써야만 하는 X 를 지원하는 Emacs 는 엄두도 못 내고 , Console 모드로 컴파일 해서 사용할려고 하다가 에러가 발생해서 해결하는 방법을 알아보겠습니다.

Emacs (23.4) 를 우분투 (11.10) 에서 수동으로 컴파일 할때 발생하는 문제입니다.

make[1]: *** No rule to make target `/usr/lib/crt1.o', needed by `temacs'.  Stop.


crt1.o 때문에 에러가 발생한 것임을 알 수가 있습니다.

$ gcc -print-file-name=crt1.o
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o

이렇게 위치 확인을 해주고

$ ./configure --without-x --with-crt-dir=/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/


이런식으로 crt 가 위치하는 디렉토리를 포함시켜서 configure 를 다시 실행해주고

$ make
$ sudo make install

하면 됩니다. 열악한 환경에서 서버 개발을 하는 모든 개발자들 분 파이팅!!




+ Recent posts