【Emacs】Elispパッケージマネージャ package.elの使い方まとめ


EmacsのElispパッケージ管理

EmacsはElispを使って機能を自由自在位に拡張できる.Emacs 24以降からは標準搭載されているpackage.elを使って,Elispを管理するようになっている.この記事ではpackage.elの使い方をまとめる.

package.elの使い方

package.elを使ってElispをインストールするには,ELPA(Emacs Lisp Package Archive)というElisp専用のパッケージリポジトリを通してインストールを行う.利用できる代表的なリポジトリは以下の通り(package.elのWebサイト引用).

ELPA一覧

GNU ELPA

公式のリポジトリ. デフォルトの設定では, このリポジトリしか利用することはできない. 登録に手間がかかるためか, 登録されているパッケージ数は少なめであるが, 他の リポジトリに比べると登録されているパッケージの信頼度は高い.

Marmalade

非公式のリポジトリ. アカウントを作れば誰でもパッケージを登録することが可能. MELPAにも登録されているパッケージの場合, 安定版のパッケージを Marmaladeにアップロードすると いう使われ方が多い.

MELPA

非公式のリポジトリ. githubのリポジトリに pull requestを 送ることで, パッケージを登録することができる. リポジトリに変更がある度に更新されるので, 登録されて いるパッケージの最新版をインストールすることができる(stable版もインストールできるようにする流れが あるが 2013年 9月 24日時点で未実装).

MELPA-stable

安定版 MELPA. 最新のリビジョンでなく, 最新のタグのバージョンが取得できる.

ELPAの登録・追加

init.el
(require 'package)

;; HTTP 系のリポジトリ
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t)

(package-initialize) ; インストール済みのElispを読み込む

package-initialize関数によって,インストールされたElispが読み込まれるようになる.

パッケージ一覧の取得

M-x list-packagesで登録したリポジトリのパッケージ一覧を取得できる.

この画面ではpackage-menu-modeというメジャーモードになる.操作は以下の通り.

キー 説明
h 操作ヘルプを表示
p 前の行へ
n 次の行へ
?, RET パッケージの説明を取得
i インストール候補としてマーク
U アップデート可能なパッケージを全てマーク
d 削除候補としてマーク
DEL 1行上のマークを外す
u 現在行のマークを外す
x マークしたパッケージをインストール / 削除
r パッケージ一覧をリフレッシュ
q ウィンドウを閉じる
f フィルターで絞り込む (g or q で解除)

パッケージをインストールすると~/.emacs.d/elpa以下に保存され,自動でバイトコンパルされる.
インストールされたパッケージを利用するために,M-x package-initializeを実行する.

コマンドから直接インストールするには,M-x package-install RET XXXX RETを実行する.