Index > debian sarge に wnn7 をインストールする(wnn7,debian,colinux)
Tue, March 21, 2006

debian sarge に wnn7 をインストールする(wnn7,debian,colinux)

colinuxのdebianでは、apt get install anthy で即導入できるので、 anthyを日本語入力として使っていたのだが、 やはりしばらく使っていると、変換効率がよい日本語入力システムを使いたくなってきました。

手元にwnn7 Personalがあるので、これを使えないかと。 以前軽く試したところでは、 パッケージの依存関係でインストールがうまくいかないことがわかっていたのですが、 いまのわたしは、コンソールで使っているemacs上でwnn7が使用できさえすればいいので、 それならパッケージの依存の問題は回避できるのではないかと思い再挑戦することにした。

STEP0 事前調査

googleでwnn7とdebian sargeなどのキーワードで検索するとやはりパッケージ依存の 問題が指摘されている。 しかし、その問題になっているパッケージはどうもX関係のようです。 わたしはXを使っていないので本来関係ないはず。 この部分をうまく回避する方法がないかさらに調査してみると、 パッケージをつくりなおして、依存関係の記述行を自分で直した上で、再度パッケージすれば、 apt get install したときに問題が生じないことがわかりました。

早速インストールを開始することに・・・

STEP1 wnn7のCD-Rをcolinuxでマウントするには

わたしの使用している環境では、 colinuxからCD-ROMをマウントできなかったので、 いったん、cygwin上でCD-ROMの内容をisoイメージに変換したあと、 colinux上でそのisoイメージをマウントすることにしました。

wnn7.isoをCygwin上で作成

colinuxから、WindowsのCD-ROMドライブのマウント方法がわからなかったので、 以下の方法で回避。

e:ドライブにwnn7ディスクを入れている状態で、cygwin上で iso イメージを作成する。

$ cd /cygdrive/e/
$ mkisofs -r -J -o ~/wnn7.iso .

次に wnn7.iso をcolinuxにFTPでコピーした上で、以下のようにマウント

# mount -o loop -t iso9660 wnn7.iso /cdrom/

STEP2 wnn7-serverパッケージを作り直す

wnn7-serverはsargeなどの新しいdebianでは、 依存関係でインストールできないので、その対策を行う。

# dpkg-deb -x wnn7-server*.deb wnn7-server
# dpkg-deb -e wnn7-server*.deb wnn7-server/DEBIAN
# vi wnn7-server/DEBIAN/control 

ここで control の依存関係の行を書き直します。
具体的にはDependsの行は以下のようにします。

Depends: lib6(>=2.1.2),libglib1.2 (>=1.2.0)

書き直したら、あとは、.debパッケージし直す。

# dpkg-deb -b wnn7-server wnn7-server_1.01-2_i386.deb
# dpkg -i wnn7-server_1.01-2_i386.deb

これ(wnn7-server_1.01-2_i386.deb)をもとのファイルと差し替えて (といってもCD-R上では上書きできないので、CD-R全体を作業ディレクトリにコピーした上で 該当ファイルを差し替える必要がある) あとは通常の手順でインストールすればよい。

STEP3 wnn7をインストールする前の準備

wnn7のインストールを開始する前に、 不要なパッケージを削除し、 必要なパッケージをインストールしておく。

freewnnを削除

freewnn-jserverがインストールされている場合は、 事前にを削除しておく。

# apt-get remove freewnn-jserver

anthyを削除

anthyがインストールされている場合は、 事前にを削除しておく。

# apt-get remove anthy

debhelper をインストール

debhelperが必要なのでインストールしておく。

# apt-get install debhelper

libglib1.2をインストール

wnn7-serverが必要とするパッケージなので事前にインストールしておく。 (すでにインストールされていればこの作業は不要)

# apt-get install libglib1.2

STEP4 wnn7 を通常の手順でインストール

# cd /cdrom
# sh ./Install

カスタムインストールを選択し、 以下のパッケージのみインストールする。

すべてのインストール条件が整っていればこれだけでインストールは完了します。

インストール中のエラーについて

インストール中に依存関係の問題などでうまくインストールできない場合がある。 コンソールに出力されるメッセージを良く見て、インストール失敗しているパッケージについては、 手動で削除(apt-get remove)してから、再度インストールする必要がある。

わたしの場合、wnn7-server が必要なパッケージがインストールされていないために、 なんどかインストールしなおした。

その場合は、 まず、{marker:apt-get remove wnn7-server} して削除してから、 再び、sh ./Install でwnn7を入れ直すということを繰り返した。

dpkeyservが起動できない問題

libc6 のバージョンによっては、 dpkeyservが起動できない場合がある。

その場合は、以下のように問題を解決する。

この問題については、 以下のページを参考にさせていただきました。

chroot を使って解決する方法

dpkey7 のルートを作成します。 そこに,以前の debian package である libc6_2.3.2.ds1-22_i386.deb を展開します。 また,必要となるファイルをコピーしてきます。

# mkdir /var/dpkey7root
# dpkg -x libc6_2.3.2.ds1-22_i386.deb /var/dpkey7root
# cd /var/dpkey7root
# cp /usr/sbin/dpkeyserv usr/sbin/.
# mkdir -p etc/dpkey
# cp /etc/{hosts,nsswitch.conf,protocols,services,resolv.conf} etc/.
# cp /etc/dpkey/dpkeylist etc/dpkey/.

ここで,/var/dpkey7root をルートとして /usr/sbin/dpkeyserv を動作させます。
具体的には,次のコマンドを実行します。

# chroot /var/dpkey7root /usr/sbin/dpkeyserv

dpkeyserv が動作し,Wnn7 が利用できました。
そして,マシン再起動時にも自動的に dpkeyserv が起動するように,/etc/init.d/dpkey7 を修正します。 次を追加します.

DPKEY_ROOT=/var/dpkey7root
CMD_NAME=dpkeyserv

start,restartのところの書き換え

#start-stop-daemon --start --quiet --exec $DAEMON > /dev/null 2> /dev/null
start-stop-daemon --start --quiet --chroot $DPKEY_ROOT --exec $DAEMON

stop,restartのところの書き換え

#start-stop-daemon --stop -o --quiet --exec $DAEMON > /dev/null
start-stop-daemon --stop --oknodo --quiet --name $CMD_NAME

最後にうまく起動できるかをテスト

# /etc/init.d/dpkey7 restart

STEP5 wnn7インストール後の処置

emacsから使う

aptでインストールした egg でwnn7 serverに接続できるようです。

# apt-get install egg

ちなみに、$HOME/.emacs.el は次の通り。

(setq quail-japanese-use-double-n t)
(normal-erase-is-backspace-mode 1)

(set-language-environment "Japanese")
(set-default-coding-systems 'euc-jp)
(set-buffer-file-coding-system 'euc-jp-unix)
(set-terminal-coding-system 'euc-jp)
(set-keyboard-coding-system 'euc-jp)

;;(set-input-method 'japanese-egg-anthy)

(setq make-backup-files nil)

wnn7 personal のパッケージにも wnn7egg として専用のクライアントが GPLで公開されているので組み込んでもいいとは思います。(まだテストしていない)

http://www.omronsoft.co.jp/SP/download/pcunix/wnn7/wnn7eggv102.html

computer.hが無いためクライアントが起動できない問題の回避

emacs+eggで日本語入力しようとすると、 computer.hがないといわれる。

そこで、 http://www1.accsnet.ne.jp/~gen/wnn6/setting.html, http://psux1.kek.jp/~thitoshi/install/pubdic.html

あたりから、 pubdic+ の辞書をダウンロードして展開。

makeする

$ cd pubdic+-wnn
$ make

しかし、atod がない、といわれるので、 Makefile の以下の行を以下のように直す。

ATOD=/usr/bin/wnnatod

これでmake すると、エラーは出るがこちらが目的の computer.dic は作成される。

これを以下の場所にコピー。

/var/lib/wnn7/dic/option/computer.dic

これでエラーは回避できる。

アンインストール

wnn7のCD-ROMをマウントして以下を実行

     # mount -o loop -t iso9660 wnn7.iso /cdrom/
     # cd /cdrom
     # sh ./Install -e

     # apt-get remove wnn7-server

導入後の感想

数ヵ月anthyを使っていたのだが、やはりwnn7は快適です。 anthyでは、Alt+sを使って候補から選択することが多かったのですが、 wnn7にしてからほとんど候補選択を呼び出す必要がない。
考えていることをすばやくメモしようとしたときに、意図通りの漢字が表示されずに そこで思考が止まってしまうことがあるので、やはりこれはありがたい。

もちろん、anthyも十分に辞書を鍛えるなど適切にカスタマイズすれば快適な可能性もありますが、 わたしのようにとりあえずライティングしたい(辞書の設定に時間を使いたくはない)という 人にとってはwnn7のデフォルトでの変換効率の高さは助かります。

一方、wnn7の問題としては、emacsで日本語入力を起動するごとに、ライセンスを消費してしまうため、 わたしのように、emacsを同時に複数動かしながら作業する場合、ライセンスが全部消費されて 日本語入力ができなくなってしまうケースがあるのが問題です。 ただライセンスは3つあるので、そんなにたびたび4つ以上のemacsを使うこともさすがにないので、 問題は少ないのではないかとは思います。

wnn7の利点

wnn7の欠点

これらの欠点は、emacsを起動したまま作業を続けるタイプの使い方をする人にはいずれも欠点にはならない。

 Twitter
follow me on Twitter
 Categories