XEmacs を MacOS X上で使う

2002.1.1


 XEmacsをMacOSXで使うという記事を以前書いたのだが、とある事情で一からマシンをセットアップすることになり、いざXEmacsをインストールしようとしたとき、自分で書いた記事がほとんど全く役に立たず(具体的なことがなさ過ぎ)。改めて一から手順をまとめてみた。

2002.2.3追記:2002年1月以降出荷のMacOS Xブートモデルには、DevelopperToolが同梱されているため、200MB強のファイルをダウンロードする手間が省ける。また、XFree86 4.2.0 for Darwinが配付されている。これにはxemacsのビルドに必要なものが全て含まれているので、下記2および3のXDarwinのインストール行程を省略することができる。便利になったものだ。その一方で、EasyPackageが活動を停止したとのこと。cannaのインストール時にとても便利に使わせてもらっただけに非常に残念。手動インストールの手順は(自分のところでは)まだ確立できていない。


1.DevelopperToolインストール

 これがないとコンパイルができないので、一番最初にインストールする。最新版はADCのサイトにある2001年12月バージョン。ADCはオンライン会員については会費無料なので、登録しておいても損はないだろう。(登録フォームが英語だけなので、英語アレルギーがある人にはちょっと辛いかも)ここからインストーラーをダウンロードする。200MB以上あるので、心して落とすこと。ADSLでも数十分かかるので、ダイアルアップだと一晩がかりかも。


2.XFree86のインストール

 MacOSX上にUNIXのX-Windowシステムを構築するのがXFree86。(正確にはMacOSXだけじゃないけど)運営しているのはThe XFree86 Project, Inc.最近、Appleを含むいろんなところからバイナリーが配付されているが、XEmacsをビルドするために必要なライブラリが含まれない場合があるため、今回はcvsからソースコードをごっそりダウンロードして自分のところでビルドすることにする。cvsへのアクセスとビルドの方法は、次の通り。(ここから抜粋)

作業用ディレクトリの作成
mkdir /XFree86
cd /XFree86

環境変数の設定
setenv CVSROOT :pserver:anoncvs@anoncvs.xfree86.org:/cvs

ログイン
cvs login
(CVS password:に対し、anoncvsと入力)

最新版のソースコード全取得
cvs checkout xc
で、延々ダウンロードが行われる。えらい時間&データ量なので、常時接続環境を強く推奨。ちなみにADSL環境で1時間半ほどかかった。

ビルド&インストール
cd xc
make World
sudo make install

 ビルドの所要時間だが、G4/500DPで約1時間、iBook/600で2時間前後だった。

 なお、現在ディフォルトでX_LOCALEが有効になっているようなので、以前のようなパッチを当てる必要はなくなった。(すでにどういう手順を踏んだのか忘れてしまっている。)

 .cshrcに次の一文を追加。X関係のバイナリを実行するためのパスを追加する。

setenv PATH "${PATH}:/usr/X11R6/bin"

 インストール後、XDarwinもインストールされるが、バージョンが古いので削除し、最新版をダウンロードしてインストールし直す。root権限でインストールされたものなので、削除にもroot権限が必要。

sudo rm -r /Applications/XDarwin.app

 rm はファイルを消すコマンド。ファイルはゴミ箱を経由せずに直ちに消され、消されたファイルは二度と復活できない。(知る限り復活ユーティリティも存在しない。)さらに、-r (dir) をつけると、dir以下のディレクトリを再帰的に削除する、要するにそこから下を丸ごと消してしまうので、使い方を間違えるととんでもないことが起きる。
以前、バックアップファイルを消そうとして rm *.bakとするところを、rm * bakとして、ディレクトリ丸ごと消してしまったことがある。root権限だと、消せない設定のファイルでも問答無用で消しにいくので、なおさら注意が必要。システムを丸ごと消して再帰不能にすることもコマンド一つでできてしまったりする。rmの取り扱いはくれぐれも慎重に。


3.XDarwinのインストール

 The XonX Project からダウンロード、展開してApplicationsにあるファイルを自分のApplicationsに移動させておく。
 JISキーボードを使うため、キーマップの変更を行う。XDarwinの初期設定でもキーマップの変更が可能なのだが、Japaneseを選択しても思うように入力できないため、英語設定のままでXmodmapでキーマップの変更を行なう。
井上氏のサイトから入手したものをベースに、英数キーの定義とBack SpaceとDeleteをShiftで切り替えるための変更を施す。
 Finderからは.で始まるファイル名を扱えないので、Xmodmapとして保存し、Terminalで名前を変えておく。

mv Xmodmap .Xmodmap

 修正点は次の通り。
keycode 59 = BackSpace Delete
keycode 110 = F16
59はdeleteで、shift-deleteを有効にするもの。
110は英数キーをファンクションキーとして定義。

 X起動時にxtermやたxclockやらが起動するようになっているが、ウインドウサイズがめちゃめちゃなので、これも変更する。
 起動時に~/.xinitrcが実行されるが、これがない場合は、/usr/X11R6/lib/X11/xinit/xinitrcが実行されるようになっている。よって、これを.xinitrcとしてコピーし、編集を加えていく

cp /usr/X11R6/lib/X11/xinit/xinitrc ~/.xinitrc
vi ~/.xinitrc


4.日本語入力メソッドのインストール

 EasyPackageを使用した。バイナリーのダウンロードとインストールをまとめて面倒見てくれるツール。(同様のものにfinkがある。これは後で使うのでその時にまた詳しく述べる。)

 cannaをインストールすると、EasyPackageがなぜかハングアップする。仕方がないので強制終了させた。cannaは、システム起動時に自動的に立ち上がるように設定される。
 ktermをインストールすると、自動的にlibxpg4もインストールされる。


4.XEmacsのインストール

 オフィシャルサイトはhttp://xemacs.org/。インストールはここに従って行うが、MacOSXで動作させるためのパッチを当てる必要がある。

ソースダウンロード
ミラーサイトがいくつかあるので、近いところから落とす。今回使用したのはここ。
ftp://ftp.jp.xemacs.org/pub/GNU/xemacs/
xemacs-21.4.3.tar.gz、xemacs-21.4.3-elc.tar.gz、xemacs-21.4.3-info.tar.gzの3ファイル。
ここでは、/XEmacsというディレクトリを作り、そこにアーカイブを置いた。

mkdir /XEmacs

パッチのダウンロード
Greg Perker 氏のサイトからダウンロード。URLはhttp://www.sealiesoftware.com/xemacs/

展開
cd /XEmacs
gzip -dc xemacs-21.4.3.tar.gz | tar vxf -
gzip -dc xemacs-21.4.3-elc.tar.gz | tar vxf -
gzip -dc xemacs-21.4.3-info.tar.gz | tar vxf -

ディレクトリ移動
cd xemacs-21.4.3

パッチ
patch -p0 < ../xemacs-21.4.3-darwin.patch

コンフィグ
./configure --with-mule --with-canna --with-pop --with-xfs --cflags=-DX_LOCALE --pdump
なお、最近のバージョンでは主要な機能はディフォルトでオンになっているようで、後で試した時には次のオプションだけでもOKだった。
./configure --with-mule --cflags=-DX_LOCALE
2/3訂正:やっぱり -DX_LOCALEはつけないとだめみたい。

メイク
make

インストール
sudo make install

パッケージをインストール
xemacsの機能拡張のようなもの。
先のftpサーバーから、efs-*-pkg.tar.gz 、xemacs-base-*-pkg.tar.gz の二つをダウンロードしておく。
*の部分はバージョン。とりあえず最新のものを取得、/XEmacsというディレクトリに置いた。

インストールにはroot権限が必要なので、先にsuとでもしてrootになっておく。
cd /usr/local/lib/xemacs
mkdir packages
cd packages
gzip -dc /XEmacs/efs-1.26-pkg.tar.gz | tar xvf -
gzip -dc /XEmacs/xemacs-base-1.55-pkg.tar.gz | tar xvf -

続いて日本語関係のパッケージを展開。アーカイブファイルの関係で一つ上のディレクトリに移動して行う。
cd ..
gzip -dc /XEmacs/xemacs-sumo-2001-07-09.tar.gz | tar xvf -
gzip -dc /XEmacs/xemacs-mule-sumo-2001-07-09.tar.gz

あとは.emacsファイルを好みに応じて編集する。オリジナルの追加項目はこんな感じ。
; 日本語入力メソッドとしてcannaを起動
( set-input-method 'japanese-canna)
( canna-toggle-japanese-mode)
; 起動後かな入力モードになるので、英数モードに戻す。
; この段階で、f1,f2,f3,help,insに関数が割り当てられるので、後で再定義する。

; MacOS-JISキーボード風にかなと英数に機能を割り振る
; .Xmodmapで英数キー(110)にはf16を設定しておく
(defun set-japanese-mode ()
"Set Japanese mode"
(interactive)
(if canna:*japanese-mode*
()(canna-toggle-japanese-mode )
))
(defun set-eisu-mode ()
"Set Eisu mode"
(interactive)
(if canna:*japanese-mode*
(canna-toggle-japanese-mode )()
))
(global-set-key [kanji] 'set-japanese-mode)
(global-set-key [f16] 'set-eisu-mode)

; Proキーボードにinsキーがないのでhelpで代用
(global-set-key [(help)] 'overwrite-mode )

; マウスのホイールにスクロールを割り当て
(global-set-key [button4] 'scroll-down)
(global-set-key [button5] 'scroll-up)


5.sawfish

 XFree86でのディフォルトのウインドウマネージャーはtwm。(XFree86というより、Xのディフォルトがこれなんだそうだ。)シンプルすぎてやや使いにくいので、代わりのウインドウマネージャーを導入する。
 MacOSではクリックしたウインドウがアクティブとなり、最前面に来るが、twmはカーソルが入ったウインドウがアクティブとなる。Xでは割と普通だったりするのだが、MacOSXとの同時使用ではかなり使いにくい。
 twmでも設定変更が可能なようなことをどこかで見た気もするが、ビルド時に設定しなければならないらしく、情報も見つからなかったためすっぱりあきらめた。
 代用として選んだのがsawfish。sawfishの導入にはFinkを用いた。FinkはFink projectからダウンロードできる。

 インストールしたら、~/.cshrcに次の一文を追加。
source /sw/bin/init.csh

 日本語環境ではEUCコード日本語メッセージが出力されるのだが、Terminalが表示できないため、軒並み文字化けする。環境変数を書き換えて英語メッセージで作業を行なう。実行名はなぜかfinkではなくdselect。

setenv LANG C
sudo dselect

 起動するとメニューが現れる。
1は接続方法の設定。必要がない限りそのままでOK。
2は情報の更新。ダウンロードの前に回やる必要がある。
3でパッケージの選択。依存関係のあるパッケージは自動的に選択される。
sawfishとxfree-systemを選ぶ。
xfree-systemは、xfree86を導入済み環境のためのダミーパッケージらしい。

 ~/.xinittcを書き換え、twmの代わりにsawfishが起動するように変更。

sawfishの設定

 XDarwin上で稼動するxtermから設定ツールを起動。これも日本語だと文字化けするので、英語にしておく。
setenv LANG C
sawfish-ui
それでも一部文字化けしてるが、強引に設定してしまう。変更したのは次の二つ。

 英語環境のままだと、xemacsの挙動がおかしくなる場合がある(特に日本語関係)ので、xtermを起動し直すなどして日本語環境に戻すなどして、xemacsを使う。


2002.2.3追記:

 xemacsがsjisでエンコードされたファイルを認識しない場合、原因として環境変数LANGが日本語になっていないことが考えられる。(sawfishインストール後に発症したので、sawfishと共にインストールされるライブラリが悪さをしているのかも知れない。).cshrcに次のようなエイリアスを定義しておけば、日本語モードで起動するようになる。

alias xemacs setenv LANG ja_JP.SJIS;/usr/local/bin/xemacs &


参考にしたサイト(有益な情報ありがとうございます。)

The XFree86 Project http://www.xfree86.org/
The XonX Project http://sourceforge.net/projects/xonx/
XEmacs http://xemacs.org/
Greg Perker氏のサイト http://www.sealiesoftware.com/xemacs/
komatyan氏のサイト http://member.nifty.ne.jp/komatyan/index.html
田中氏のサイト http://member.nifty.ne.jp/poseidon/index.html
井上氏のサイト http://www.ab.wakwak.com/~tino/darwin/


もどる