2011년 3월 3일 목요일

[Emacs] ELPA - Emacs Lisp Package Archive

auto-install 과는 다른 또 다른 패키지 매니저 ELPA 소개글. ELPA는 Emacs Lisp Package를 손쉽게 설치할 수 있도록 도와주는 스크립트이다.

http://tromey.com/elpa/

auto-install 과는 다르게 특정 패키지 리스트를 서버에 보유하고 있고 이를 이용해 패키지 이름과 버전 정보를 알려주고 설치할 수 있도록 도와준다.

설치 방법은 http://tromey.com/elpa/install.html 의 내용을 보면 되지만 단순하게 설명하자면, 우선 다음 코드를 아무 버퍼(*scratch*도 좋고 빈 파일을 열어도 좋고)에 쓰고 실행(M-x eval-buffer) 하면 된다.

(let ((buffer (url-retrieve-synchronously
             "http://tromey.com/elpa/package-install.el")))
(save-excursion
    (set-buffer buffer)
    (goto-char (point-min))
    (re-search-forward "^$" nil 'move)
    (eval-region (point) (point-max))
    (kill-buffer (current-buffer))))


설치는 자동으로 진행되어서 emacs 설정 파일에도 필요한 내용을 알아서 붙여준다.

사용방법도 단순하다. 다음 커맨드를 입력하면 패키지 리스트와 버전, 설치 여부를 알려준다.

M-x package-list-packages


패키지를 확인하고 다음 커맨드를 실행하면 패키지 이름을 물어오니 원하는 패키지 이름을 입력해 주면 된다.

M-x package-install

패키지리스트 화면에서 Installed라 표시된 것은 이미 설치되어 있는 것이니 무시. 설치할 패키지 위에서 I를 누르면 마크가 표시되고 x를 누르면 마크된 패키지의 설치가 진행된다. 기본적으로 경로를 잡지 않았다면 elpa 디렉토리 아래에 각 패키지 이름의 디렉토리가 생성되어 거기에 설치된다. 따라서 이 부분을 load-path로 잡아주는 설정은 필요할 것이다.
(add-to-list 'load-path "~/.emacs.d/elpa")
(progn (cd "~/.emacs.d/elpa")
       (normal-top-level-add-subdirs-to-load-path))
이건 예제 설정.

ELPA의 패키지 리스트는 순전히 contribute로 이루어진 것 같다. 따라서 emacswiki에 존재하는 스크립트가 없을 수도 있다. 하지만 제법 유용한 패키지들을 자동으로 설치할 수 있고 업그레이드 하도록 도와주니 없는 것 보다는 낫다는 느낌이다.

댓글 없음 :