home «前の日記(2005-10-03) 最新 次の日記(2005-10-05)»

いろいろ
Seize the day.

2004|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|07|09|10|

2005-10-04 [長年日記]

[comp] 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)
(set-input-method "japanese-egg-canna")
(global-set-key "\C-o" 'toggle-input-method)
さて,/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 はいいや(激ぉ.
このエントリーをはてなブックマークに追加 はてなブックマーク数 はてなブックマークコメント   このエントリーを livedoor クリップに追加 livedoor クリップ数 このエントリーを del.ici.ous に追加 このエントリーを buzzurl に追加 buzzurl クリップ数

お名前:
E-mail:
コメント:
[TrackBack URL: http://nao.s164.xrea.com/td/tb.rb/20051004]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
本日のリンク元
検索

以下の広告はサーバによって自動的に挿入されています.


Copyright © 2004-2006, nao. All rights reserved.