[emacs][vine] emacsを22.3.1にバージョンアップ
ここのところ、EmacsWikiで見つけた lisp を試そうとすると、関数が無かったり、挙動が違ったりで何かとトラブルが続いていた(最近ではlinkd.el)。
そのトライアンドエラーの時間が勿体ないので、emacsのバージョンを 22.0.50.1 から 22.3.1 に上げてみた。
以下、その時の手順メモ。
ディストリビューションは、今や少数派と思われる Vine Linux 4.2
- VineSeed から emacs-22.3-1vl5.src.rpmを取得。
- リビルドしようとすると、依存関係でエラーになる(が、想定内なのでムシ)。
- ソースが展開された場所(~/rpm/SOURCES 等)に移動して、下記の作業を行う
※画像系のlibは予め apt-get install しておくこと(seedバージョンではなく、通常のもの)。
% tar xvzf emacs-22.3.tar.gz % cd emacs-22.3 % ./configure --with-gcc --with-pop --with-sound --disable-rename --with-gtk --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-x --with-xim --prefix=$HOME/emacs22.3 % make % src/emacs -q ... 動作確認 % make install
念のためインストールディレクトリを ~/emacs22.3 に設定。
これは後々vineで正式リリースがあった場合に、簡単に乗り移れるようにするためと、万が一インストールに失敗しても被害を最小限にするため。
ln -s /usr/share/emacs/site-lisp ~/emacs22.3/share/emacs/site-lisp ln -s /usr/share/emacs-22.0.50/site-lisp ~/emacs22.3/share/emacs/22.3/site-lisp
今のところ問題なく動いている。ヤッターヽ(´ー`)ノ
※ホントは欲張って emacs23 を入れようとしたが、どうにも存関係が(安全に)解決できず諦めたというのはここだけの話。。。
※ 2009/7/30追記
list-load-path-shadows でチェックしたところ、膨大な量のlispの重複が見つかった。
面倒臭がって、リンクを張って済ませた site-lisp が原因。
ln -s /usr/share/emacs-22.0.50/site-lisp ~/emacs22.3/share/emacs/22.3/site-lisp
の部分を下記に修正
% mkdir ~/emacs22.3/share/emacs/22.3/site-lisp % cd ~/emacs22.3/share/emacs/22.3/site-lisp % ln -s /usr/share/emacs-22.0.50/site-lisp/tamago/ egg % lr -s /usr/share/emacs-22.0.50/site-lisp/menu-tree.el menu-tree.el % ln -s /usr/share/emacs-22.0.50/site-lisp/site-start.el site-start.el % ln -s /usr/share/emacs-22.0.50/site-lisp/subdirs.el subdirs.el % ln -s /usr/share/emacs-22.0.50/site-lisp/tamago/ tamago % ln -s /usr/share/emacs-22.0.50/site-lisp/w3m/ w3m % ls lrwxrwxrwx egg -> /usr/share/emacs-22.0.50/site-lisp/tamago/ lrwxrwxrwx menu-tree.el -> /usr/share/emacs-22.0.50/site-lisp/menu-tree.el lrwxrwxrwx site-start.el -> /usr/share/emacs-22.0.50/site-lisp/site-start.el lrwxrwxrwx subdirs.el -> /usr/share/emacs-22.0.50/site-lisp/subdirs.el lrwxrwxrwx tamago -> /usr/share/emacs-22.0.50/site-lisp/tamago/ lrwxrwxrwx w3m -> /usr/share/emacs-22.0.50/site-lisp/w3m/