[Emacs] 확장 관리 시스템 ELPA/MELPA/Marmalade
이전에 적었던 ELPA 관련 글들이 약간 부실하다는 느낌이 들었고 거기다 Marmalade 라는 또다른 패키지 저장소가 있기 때문에 추가로 정리글을 적어본다.
ELPA - Emacs Lisp Package Archive
이름만 봐도 알 수 있을 것 같지만, 간략하게 정리하자면 여기저기 산재해 있는 Emacs용 확장 모듈을 한 곳에서 관리하며 이를 손쉽게 설치하거나 업그레이드 하거나 삭제 할 수 있는 기능 제공을 목표로 하는 서비스이자 확장(Extension)이다.
Emacs 24 버전부터는 package.el 로 통합되었기 때문에 별도의 설치나 설정이 필요하지 않고 바로 이용이 가능하다. 하지만 등록된 패키지가 좀 적다는 것이 문제였기 때문에 개인적으론 별로 사용하지 않았다.
홈페이지에서 표기하기를 Experimental 한 패키지 들을 관리한다고 한다. 결국 ELPA에서 제공하지 않는 확장을 제공하겠다는 의미로 이해가 된다.
MELPA는 아래 저장소 주소를 ELPA에 추가해 주면 사용이 가능하다.
Marmalade 역시 ELPA에 호환되는 패키지 저장소이다. 아래 저장소 주소를 ELPA에 등록해 주면 사용 할 수 있다.
MELPA와 Marmalade는 ELPA에 호환되도록 만들어 졌고 특별한 확장을 제공하기 보단 패키지 목록 을 제공하는데 목적이 있다. 즉, Emacs24를 사용 중이라면 저장소 주소를 추가해 주는 것으로 준비는 끝이다. 만약 Emacs 23 이하의 버전을 사용한다면 ELPA를 설치하면 되지만 가급적 24 버전을 사용하는 것을 추천한다.
위 저장소들을 이용하기 위해선 Emacs 설정(초기화 스크립트)에 아래 몇 줄의 코드가 필요하다.
위 코드가 실행되고 나면
*Packages* 버퍼에서는 아래의 단축키를 사용 할 수 있다.
유명한 패키지 저장소는 ELPA 공식을 포함해서 이 3가지이다. 왜 이렇게 분리되어서 관리되느냐 하는 점이 의아하기도 한데, 각 저장소 프로젝트는 성격이 조금씩 다르리라 생각된다. 어차피 ELPA를 통해 하나로 집중관리 되기 때문에 분리되어 있어도 마치 하나인 것 처럼 느껴진다.
패키지 소스의 경우도 경로가 다양하다. 예를 들어 github에서 긁어 온다거나 혹은 wiki에서 다운로드 한다거나 등등 말이다. 소스 서비스가 틀려도 한 곳에서 관리가 가능하다니 당연히 좋은 세상이다.
위의 추가2곳의 저장소를 등록해 두면 별도로 확장을 다운로드 받아서 설치하는 번거로운 과정이 필요없다. load-path 등록도 필요없다. 그냥 *Packages*에서 설치해 두고 쓰고 싶을 때 require 혹은 load-library를 써서 사용하면 된다. 항상 새로운 확장을 시험해 볼 때 설치하는 과정이 제일 번거로웠던 나에겐 축복과도 같다.
이제 Vim의 Vundle 같은 뛰어난 패키지 관리 시스템을 부러워 하지 않아도 된다. 오히려 더 좋고 편하다. :-)
ELPA - Emacs Lisp Package Archive
이름만 봐도 알 수 있을 것 같지만, 간략하게 정리하자면 여기저기 산재해 있는 Emacs용 확장 모듈을 한 곳에서 관리하며 이를 손쉽게 설치하거나 업그레이드 하거나 삭제 할 수 있는 기능 제공을 목표로 하는 서비스이자 확장(Extension)이다.
Emacs 24 버전부터는 package.el 로 통합되었기 때문에 별도의 설치나 설정이 필요하지 않고 바로 이용이 가능하다. 하지만 등록된 패키지가 좀 적다는 것이 문제였기 때문에 개인적으론 별로 사용하지 않았다.
MELPA - Milkypostman's ELPA
홈페이지에서 표기하기를 Experimental 한 패키지 들을 관리한다고 한다. 결국 ELPA에서 제공하지 않는 확장을 제공하겠다는 의미로 이해가 된다.
MELPA는 아래 저장소 주소를 ELPA에 추가해 주면 사용이 가능하다.
http://melpa.milkbox.net/packages/
Marmalade
Marmalade 역시 ELPA에 호환되는 패키지 저장소이다. 아래 저장소 주소를 ELPA에 등록해 주면 사용 할 수 있다.
http://marmalade-repo.org/packages/
사용법
MELPA와 Marmalade는 ELPA에 호환되도록 만들어 졌고 특별한 확장을 제공하기 보단 패키지 목록 을 제공하는데 목적이 있다. 즉, Emacs24를 사용 중이라면 저장소 주소를 추가해 주는 것으로 준비는 끝이다. 만약 Emacs 23 이하의 버전을 사용한다면 ELPA를 설치하면 되지만 가급적 24 버전을 사용하는 것을 추천한다.
위 저장소들을 이용하기 위해선 Emacs 설정(초기화 스크립트)에 아래 몇 줄의 코드가 필요하다.
(require 'package) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize)
위 코드가 실행되고 나면
M-x package-list-packages
명령으로 ELPA를 기동시킬 수 있다. 이 명령을 입력하면 등록된 저장소 모두에서 패키지 리스트를 다운로드 받고 *Packages* 버퍼가 나타나면서 패키지 목록이 표시된다.*Packages* 버퍼에서는 아래의 단축키를 사용 할 수 있다.
n
혹은p
: 커서를 아래 혹은 위로 이동(C-n 및 C-p 와 동일)?
: 패키지 상세 설명 표시i
: 설치할 패키지로 선택d
: 삭제할 패키지로 선택u
: 선택된 패키지를 선택 해제U
: 설치된 확장 중 업그레이드 된 패키지 전부 선택(대문자 U 주의)r
: 리스트를 최신으로 갱신x
: 설택된 패키지를 설치하거나 업그레이드
사족
유명한 패키지 저장소는 ELPA 공식을 포함해서 이 3가지이다. 왜 이렇게 분리되어서 관리되느냐 하는 점이 의아하기도 한데, 각 저장소 프로젝트는 성격이 조금씩 다르리라 생각된다. 어차피 ELPA를 통해 하나로 집중관리 되기 때문에 분리되어 있어도 마치 하나인 것 처럼 느껴진다.
패키지 소스의 경우도 경로가 다양하다. 예를 들어 github에서 긁어 온다거나 혹은 wiki에서 다운로드 한다거나 등등 말이다. 소스 서비스가 틀려도 한 곳에서 관리가 가능하다니 당연히 좋은 세상이다.
위의 추가2곳의 저장소를 등록해 두면 별도로 확장을 다운로드 받아서 설치하는 번거로운 과정이 필요없다. load-path 등록도 필요없다. 그냥 *Packages*에서 설치해 두고 쓰고 싶을 때 require 혹은 load-library를 써서 사용하면 된다. 항상 새로운 확장을 시험해 볼 때 설치하는 과정이 제일 번거로웠던 나에겐 축복과도 같다.
이제 Vim의 Vundle 같은 뛰어난 패키지 관리 시스템을 부러워 하지 않아도 된다. 오히려 더 좋고 편하다. :-)
댓글