Emacs21 インストール (FreeBSD 編)

(注: 最初の記事ポスト後,かなり書き直しました.)



ふと Emacs21 を FreeBSD にインストールしてみた.



現在メインで使っているのは Emacs19 で(ぉ,今後もメインとするつもりなので,上書きを避けるために ports/packages からではなく手動で入れることにする.

以下を参考に (OpenBSD 用だけどだいたい同じ) インストール.

% tar xzvf emacs-21.4a.tar.gz
% tar xzvf leim-21.4.tar.gz
% cd emacs-21.4

ここで emcws パッチを当てる.

% zcat ../emcws-21.3-20031213.gz | patch -p1

Emacs21 のディレクトリ構成が不明なので,prefix は適当に当たり障りのないところにして,後で手動で symlink でもするかーと非常にいい加減なことを考える.

% ./configure --prefix=/usr/local/emacs21 --with-canna
% gmake

すると,うわあぁぁ (AA 略),canna.c でエラー出まくり!

canna.c:1552: redefinition of `rcs_id'
canna.c:144: `rcs_id' previously defined here
(以下大量のエラー.略)

で,よく良くsrc/canna.c をみると,なぜか同じコードが 2 回繰り返されているようにみえて仕方がない.1408 行目のところでファイルを 2 分して diff 取ってみたら,全く同じだし….謎すぎる.みんな普通にコンパイルできてるんだよな? もしかしてこれってなんかハズレとかそういうものですか? なんかよっぽど普段の行いが悪いんですかね?? _| ̄|○

ともかく,canna.c を半分に切ってやり直す.make は通った.


(追記 [2005-10-05]: 再インストールしたらこのような現象はなかったので,恐らくパッチを 2 重に当ててしまったとかそういうことかと思われ.)


この後,出来上がったバイナリをテストしてみると,こんどは core 吐いて落ちる….

% src/emacs -q
Fatal error (11).セグメントエラー (coreを出力しました)
  • nw オプションだと立ち上がったり,試しに他のユーザとして起動したりするとうまくいくので,環境変数をあたってみたところ,
setenv XMODIFIERS @im=kinput2

が悪さをしていたことが判明.以前 Firefox + kinput2 かなんかを試した時に仮に設定しただけで,使ってなかった環境変数なので,早速 unsetenv.どうも,XFree86 4.2 と相性悪いようだ.

とりあえずこれで普通に起動するようになったので,

# make install

する.



日本語変換については,途中いろいろ試行錯誤して,Tamago をうっかり入れて泥沼に陥ったりもしたが,基本的には emcws のデフォルト設定のままでよい.単に .emacs

(canna)

とでもしてやれば起動する.



追記 [2005-10-05]: 以下のコードは最初のポスト記事に書いていたのだけど,必要ないことがわかった.1 行目はなくても canna は動作するが,ある種のモードはこの変数を見るようなので,設定しておくとよいのかも知れない.

(set-language-environment 'Japanese)
<s>(set-input-method "japanese-egg-canna")</s>
<s>(global-set-key "\C-o" 'toggle-input-method)</s>

さて,/usr/local/emacs21/bin には

b2m             ebrowse         emcws-21.4      grep-changelog
ctags           emcws           etags           rcs-checkin

の 8 個のバイナリが出来ていたが,/usr/local/bin に競合する名前のファイルはなかったので,そのまま symlink とする.libexec と share もちゃんとバージョン別のディレクトリになっていたので,/usr/local 以下に symlink を作る.man と info はいいや(激ぉ.