package.elから Caskに切り替えました
emacs の lisp 管理に cask つかいはじめた。これだよー
2014-04-24 11:55:48 via web
私もしばらく前に Caskに切り替えたのでそのメモ.
Caskを使う利点
- (あまりいないだろうけど)Emacsのバージョンごとにパッケージを管理できる
- Gitで管理されていれば, MELPAに登録されていなくてもインストールできる
- 0.6から Gitのタグ, コミット IDの指定ができるようになり, バージョンの固定化が可能に.
- 自分の環境をファイルに落とし込める
インストール
% curl -fsSkL https://raw.github.com/cask/cask/master/go | python
Macユーザの人は homebrewで入れれるみたいです.
% brew install cask
Caskのアップデート
まだ開発中で問題修正も稀にあるので, うまくいかないときなどあれば,
Caskをアップデートして再度試してみるとよいかと思います.
% cask upgrade # upgrade-caskでも可
Caskファイルを書く
http://cask.github.io/dsl.html
ファイル名は Cask となります.
depends-on
インストールするパッケージをつらつらと指定していく.
;; CoffeeScript (depends-on "coffee-mode") (depends-on "sourcemap") ;; Perl (depends-on "cperl-mode") (depends-on "xs-mode" :git "https://github.com/emacsmirror/xs-mode.git")
現状以下のような指定方法が可能です.
(depends-on "magit") (depends-on "magit" "0.8.1") (depends-on "magit" :git "https://github.com/magit/magit.git") (depends-on "magit" :git "https://github.com/magit/magit.git" :ref "7j3bj4d") (depends-on "magit" :git "https://github.com/magit/magit.git" :branch "next") (depends-on "magit" :git "https://github.com/magit/magit.git" :files ("*.el" (:exclude "magit-svn.el")))
その他にも(主にテスト向けの)コマンドがありますが, パッケージ管理では
この 2つで十分かと思います. 詳細はドキュメントを参照してください.
パッケージのインストール
パッケージのアップデート
たまにアップデートしたくなったら, cask updateを実行してください
% ~/.emacs.d % cask update
設定
cask.elをロードして, cask-initializeを呼べば, load-pathの設定,
autoloadに関する設定を読み込んでくれます. cask-initializeの
第一引数にはインストールパスを指定できるので, ~/.emacs.d以外に
インストールした人は明示的に指定する必要があります.
(require 'cask "~/.cask/cask.el") (cask-initialize)
おわりに
el-getほど細かいことができるわけではないですが, package.elを
そのまま使うよりかは管理しやすくなったのではないかと思います.
特に複数のマシンで同じ環境を構築したいという人には良いと思います.
https://github.com/rdallasgray/pallet
Palletという Caskベースのパッケージ管理ツールもあるので,
気になる方はそちらも参照してください.(プロジェクト名の重複ということで,
名前が変わってしまうかもしれないそうですが)