· 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]신성국



ID
Password
Join
Your lover will never wish to leave you.


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.0053 sec