· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Emacs Install Script

Emacs 패키지 설치하기

Internet을 뒤지다 보면, Emacs에서 쓸 수 있는 여러 Elisp package (.el)들이 존재합니다. 가장 좋은 곳은 [http]EmacsWiki이며, 이 글에서는 이런 package들을 받아서 설치하고 쓰는 방법을 설명합니다.

일단 xxx.el이라는 package를 받았다고 가정합시다. 속도를 빠르게 하기 위해, 이 파일을 먼저 컴파일하는 과정이 필요합니다. xxx.el을 컴파일하면 xxx.elc라는 파일이 생깁니다.

가장 쉬운 방법은 Emacs를 실행시킨 다음 M-x byte-compile-file<RET> xxx.el<RET> 명령을 쓰는 것이지만, shell prompt에서 다음과 같이 실행하는 것이 더 편합니다:

$ emacs -q --batch --eval '(byte-compile-file "xxx.el")'

이제 설치해야 하는데, 설치 방법은 다음과 같이 나눌 수 있습니다:
  • 나만 쓰며 이 package를 자동으로 로드한다.
  • 이 시스템 모든 사용자가 쓸 수 있도록 한다 (root 권한 필요).

(물론 다른 경우도 있겠습니다만, 이 글에서는 위 세 가지만 설명하도록 하겠습니다)

한 사용자용으로 설치

나만 쓰기 위해서는 먼저 특정한 디렉토리에 (필자는 $HOME/.emacs.d/를 사용합니다.) xxx.el을 저장합니다:

$ mkdir $HOME/.emacs.d
$ cp xxx.el $HOME/.emacs.d/
$ cp xxx.elc $HOME/.emacs.d/

Emacs에서 package를 불러 오는데 (load-library "xxx")를 씁니다. 이 함수는 load-path 변수에 저장되어 있는 경로들을 뒤져 xxx.elc 또는 xxx.el을 찾아서 불러옵니다. 위에서 우리가 만든 $HOME/.emacs.d는 이 load-path에 없기 때문에 다음과 같이 $HOME/.emacs에 추가하여, load-path에 우리가 만든 디렉토리를 추가하도록 합니다:

(setq load-path (cons (expand-file-name "~/.emacs.d/") load-path))

이제 Emacs를 시작하면 M-x load-library<RET> xxx<RET>으로 이 package를 불러올 수 있습니다. 만약 Emacs를 시작할 때, 이 package가 자동으로 로드되기 원한다면 $HOME/.emacs에 다음을 추가합니다 (위 load-path에 관한 코드 아랫쪽에):

(load-library "xxx")

만약 package가 매우 큰 파일일 경우, 자동으로 불러오도록 했다면, Emacs를 처음 시작할 때 조금 시간이 걸립니다.

모든 사용자용으로 설치


먼저 root 권한이 있어야 합니다.

다음으로 Emacs lisp 파일들이 설치된 곳을 알아야 합니다. 대개 /usr/share/emacs 또는 /usr/local/share/emacs가 그 곳입니다. 만약 이런 디렉토리가 없다면 다음과 같이 Emacs를 실행해서 그 위치를 추측할 수 있습니다:

$ emacs --batch
Loading /usr/share/emacs/site-lisp/site-start.d/lang-coding-systems-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/php-mode-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/po-mode-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/psgml-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/python-mode-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/rpm-spec-mode-init.el (source)...
$ _

앞으로 이 글에서 이 설치 디렉토리를 EMACS_PREFIX로 부르기로 합니다. 이 디렉토리를 보면 site-lisp이라는 디렉토리가 있습니다. 바로 이 곳이, 새로 가져온 package들을 설치하는 곳입니다. 따라서 앞에서 만든 xxx.el과 xxx.elc를 이 곳에 복사합니다:

# cp xxx.el EMACS_PREFIX/site-lisp/
# cp xxx.elc EMACS_PREFIX/site-lisp/

Emacs는 처음 실행될 때, $HOME/.emacs를 읽기 전에 EMACS_PREFIX/site-lisp/site-start.el을 읽어들입니다. 따라서 모든 사용자가 emacs를 실행할 때 자동으로 이 package를 불러오게 하려면 이 파일에 다음을 추가합니다:

(load-library "xxx")

앞에서도 말했지만, package가 클 경우, emacs 시작이 상당히 느릴 수 있습니다.

Gentoo에서는 EMACS_PREFIX/site-lisp/site-start.el이 EMACS_PREFIX/site-lisp/site-gentoo.el를 불러오도록 되어 있습니다. 그리고 emerge로 Emacs package를 설치한 경우, 이 site-gentoo.el이 자동으로 그 패키지 파일을 불러오도록 되어 있습니다. (결국 이 글의 모든 내용을 신경쓸 필요가 전혀 없습니다. :-) )

끝. B) -- [http]신성국

여러 개의 .el 파일들을 컴파일할 때에는 다음 명령을 쓰는 것이 편리합니다:
$ emacs -batch -f batch-byte-compile *.el
-- [http]신성국





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-11-08 23:37:17
Processing time 0.0085 sec