sea side she side

写真と山、資格が好きなアラフォーエンジニアのブログ

ATOK X3 for linux with IIIMECF on CentOS 5

      2011/03/15

CentOS5にATOK X3 for linuxを導入し、ターミナルウィンドウ内のEmacsにて利用するためのメモ。

まずATOKをインストールするのだけれど、JustSystemのサポートページにあるFedoracoreにインストールする方法をそのまま利用。

Fedora 8でのインストール方法(参考情報)より引用。

1. CD-ROMドライブに、ATOK X3 for LinuxのCD-ROMを入れます。
2. [Ctrl]+[Alt]+[F2]キーを押します。
  仮想端末に切り替わります。
3. rootユーザーでログインします。
4. 次のコマンドを実行して、CD-ROMをマウントします。

# mkdir /tmp/atokx3-cdrom
# mount -r -t iso9660 /dev/cdrom /tmp/atokx3-cdrom

5. 次のコマンドを実行して、ATOK X3 for Linuxをインストールします。

# cd /tmp/atokx3-cdrom
# sh setupatok.sh

6. ATOK X3 for Linuxの起動設定を行うため、次のスクリプトを実行します。

# /opt/atokx3/sample/setting_redhat5.sh

7. 次のコマンドを実行して、CD-ROMをアンマウントします。

# cd /
# umount /tmp/atokx3-cdrom
# rmdir /tmp/atokx3-cdrom

8. ログアウトします。

# exit

9. [Ctrl]+[Alt]+[F7]キーを押します。
  デスクトップログインの画面に戻ります。
10. 任意のユーザーで新しくログインします。
  ATOKが使えるようになります。

次にIIIMECFをインストール。

# cd /tmp
# wget http://www.meadowy.org/~kawabata/iiimecf/IIIMECF-0.75.tar.gz
# tar zxvf IIIMECF-0.75.tar.gz
# cd iiimecf
# emacs -q --no-site-file -batch -l iiimcf-comp.el
# sudo cp -rf lisp /usr/share/emacs/site-lisp/IIIMECF
# chmod 755 /usr/share/emacs/site-lisp/IIIMECF
# cd util
# make
# sudo make install

他のホストからも使用したいので接続にはTCPを使う。

# vi /etc/iiim/iiimd.xml.conf
-       <--
+       <listen type="tcp">
+           <hostname>foo.example.com</hostname>
+           <port>9010</port>
+       </listen>
<listen type="tcp">
<hostname>localhost</hostname>
<port>9010</port>
</listen>
-       -->
 :
 :
<acl type="permit">
<hostname>127.0.0.1</hostname>
</acl>
+           <acl type="permit">
+               <hostname>192.168.0.21</hostname>
+           </acl>
+           <acl type="permit">
+               <hostname>192.168.0.35</hostname>
+           </acl>

このままだと":: :辞書ファイルが設定されていません"なんてエラーがでる。X3がでてすぐだったため、Google様にも情報が少なくいったんあきらめていた。しかし時間もたったしと思って昨日探してみると、偉大なる先人がいらっしゃいました。

SVX日記さん

ここによるとどうやら必要なディレクトリがない様子。

# mkdir -p /var/lib/iiim/le/atokx3

これでiiimdをデーモン起動。

# iiimd

プロセスの生存と9010をlistenしているかどうか、念のため確認。

# ps auxw|grep iiimd
# netstat -an |grep 9010

あとは.emacs.elにATOK用の設定をいれれば完了。

;; ATOK
(setq emacs-ime "atokx")
(if (or (equal emacs-ime "atokx")
(equal emacs-ime "atok")
)
(progn
(require 'un-define)
(setq coding-category-utf-8 'utf-8)
(setq iiimcf-server-control-hostlist
'("tcp:foo.example.com:9010"))
(setq iiimcf-server-control-default-language "ja")
(setq default-input-method 'iiim-server-control)
(require 'iiimcf-sc)
(define-key global-map "\C-\\" 'toggle-input-method)
(setcar default-mode-line-format "")
)
)

ここまでの道のりは長かった。ATOKが出たてのIIIMECF-0.73、IIIMECF-0.74と公開されていった直後に試したとき、"Args out of range: 0, 9"とエラーがでてTCP接続ができなかった。

辞書がないって言われるわ、TCP接続できないわとあきらめていたのだけれど、上記先人を見つけたときにふとIIIMECFのページを見ると、こう書かれていた。

なお 0.74にて、IIIMFサーバとTCP経由でうまく接続できないバグを修正しました。また、0.75にて、Emacs 22では、Mule-UCSを不要にしています。

な、なんだってー(AA略

これで無事使えそう。

 - IT