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の登録・追加
(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
を実行する.