[Emacs] ELPA/MELPA를 통한 확장 패키지 관리

이 글은 Emacs 24에서 ELPA/MELPA를 통해 패키지를 관리하는 가장 기본적인 방법에 대한 것이다. 이미 이 블로그에도 ELPA에 관한 글을 썼던 적도 있고 Emacs24에 관한 글에서도 언급한 적이 있지만 한번 더 소개해 볼까 한다.

Emacs 24에 들어서부터 기존 ELPA에 해당하던 기능이 기본으로 포함(built-in)되었다. 따라서 기본적으로 package-list-packages 같은 명령을 그대로 이용 가능하다.

MELPA는 일종의 제3자가 관리하는 확장 패키지 저장소라고 볼 수 있다. 설정 없이는 이용 할 수 없기 때문에 몇 가지 초기화 스크립트가 필요하다. 아래와 같은 스크립트를 .emacs 혹은 사용하는 초기화 스크립트 파일에 넣어보자.
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(setq url-http-attempt-keepalives nil)
이 스크립트가 실행시킨다. eval-buffer를 사용하던 eval-region을 사용하던 혹은 Emacs를 재가동시키던 편한 방법을 이용하자.

다음으로 패키지 관리자를 실행시켜볼 차례이다. M-x package-list-packages 를 입력하자.
MELPA 저장소가 추가되어 있기 때문에 약간의 다운로드 과정을 거친 뒤 위와 같은 형식의 화면이 나타난다.
  • 설치할 패키지를 검색 할 때는 기본적인 Emacs 검색 방식을 이용하면 된다. C-s 키워드 명령으로 검색 할 수 있다.
  • 원하는 패키지가 발견되면 해당 패키지 이름의 라인에 커서를 이동시켜서 i 키를 누른다. 그러면 왼쪽편에 I라고 표시되면서 설치 예정이라는 표식이 뜬다.
  • 설치할 패키지를 모두 골랐으면 x를 누른다. 그러면 실제로 설치가 이루어지고 빌드가 필요한 스크립트들은 자동으로 바이너리 컴파일 된다.
개인적으로 각 확장 상당수를 github에서 submodule로 등록해서 수동으로 업그레이드를 하도록 해서 쓰고 있었는데 가끔 불편하거나 문제가 있는 버전이 내려오거나 등등 쓰기가 좀 힘들었다. 그래서 MELPA를 뒤져보니 사용하던 확장 중 Pymacs를 제외하고 모두 등록되어 있었다. 왠지 지금까지 삽질한 기분이 들었다.

댓글

이 블로그의 인기 게시물

소수점 제거 함수 삼총사 ceil(), floor(), round()

버전(Version)을 제대로 이해하기