[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/