Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

OMRON Wnn8 for Linux/BSD を Plamo Linux にインストールしてみた

Wnn8 を Plamo Linux にインストールしてみました.正確には Plamo じゃなくて,自分で作ってる Plamo ベースの野良ディストリビューション(64bit環境)になんだけどね.なので,Plamo で本当に動作するかは不明です.はい.

これまでは Wnn7 をメインに使っていましたが,そろそろ Wnn8 に移行した方が良いかなと思って,今回は Wnn8 を選んでみました.Wnn7 を動かすためにごにょごにょするのも割と面倒なんで.

普通に CentOS 用のパッケージを使ってインストール&実行してみたところ,普通に動作しました.CentOS 版は 64bit 版が用意されているので便利ですね.

手順は下記のような感じかな.

まず,Wnn8 の最新版をダウンロードして展開.

% wget http://www.omronsoft.co.jp/SP/pcunix/wnn8/support/modules/set/wnn8-rpm-fullset_160408-1.tgz
% tar xvf wnn8-rpm-fullset_160408-1.tgz

Plamo のパッケージ形式に変換.

% rpm2tar -O wnn8-rpm/pkg_rpm/dpkey8-1.01-3.x86_64.rpm | xz > dpkey8-1.01_3-x86_64-P0.txz
% rpm2tar -O wnn8-rpm/pkg_rpm/iiimf-wnn8-12.3.3519.2-1.x86_64.rpm | xz > iiimf_wnn8-12.3.3519.2_1-x86_64-P0.txz
% rpm2tar -O wnn8-rpm/pkg_rpm/wnn8-le-1.02-2.x86_64.rpm | xz > wnn8_le-1.02_2-x86_64-P0.txz
% rpm2tar -O wnn8-rpm/pkg_rpm/wnn8-maindic-1.02-1.noarch.rpm | xz > wnn8_maindic-1.02_1-noarch-P0.txz
% rpm2tar -O wnn8-rpm/pkg_rpm/wnn8-optiondic-1.02-1.noarch.rpm   | xz > wnn8_optiondic-1.02_1-noarch-P0.txz
% rpm2tar -O wnn8-rpm/pkg_rpm/wnn8-server-1.01-3.x86_64.rpm  | xz > wnn8_server-1.01_3-x86_64-P0.txz
% rpm2tar -O wnn8-rpm/pkg_rpm/wnn8-utils-1.02-1.x86_64.rpm | xz > wnn8_utils-1.02_1-x86_64-P0.txz

ライセンスファイルを Wnn8 の CD-ROM からコピー.

% cp /cdrom/passwd/dpkeylist /etc/dpkey/

ライセンスサーバーと Wnn8 サーバーを実行して動作することを確認.

% /usr/sbin/dpkeyserv
Key License Server started....
% /usr/bin/dpkeystat
localhost:WNN8:2:----/--/--
% /etc/rc.d/init.d/wnn.r stop
% /usr/sbin/jserver

この状態でサーバーは動作して居るみたい.% wnn.r stop を実行しているのは,デフォルトで入っている FreeWnn が動いていたら止めるためです.

で,Emacs で実際の漢字変換の動作確認,wnn7egg を入れて確認します.wnn7egg のソースを https://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/wnn7egg/wnn7-elisp-el-1.02-1.tgz からダウンロードして,展開した wnn7/elisp/emacs20 を /usr/share/emacs/site-lisp/wnn7egg 以下にコピーしました.あとは wnn8 用に対応させるために eggrc-wnn7 ファイルを http://www.omronsoft.co.jp/SP/pcunix/wnn8/support/modules/eggrc-wnn7 に入れ替える必要がありますね.他に,ftp://ftp.jpl.org/pub/elisp/wnn7-elisp-el-1.02-1.patch.gz と http://blog.foobarhoge.com/src/wnn7-egg/wnn7-egg-backend-timeout.patch あたりのパッチも当てておくことをおすすめします.というか,これらを当てないと 64bit 環境ではまともに動作しないかと思います.

で,Emacs 上で

(setq load-path (append '("/usr/share/emacs/site-lisp/wnn7egg") load-path))
(load "wnn7egg-leim")
(set-input-method "japanese-egg-wnn7")

な感じで設定して変換できることを確認.

CentOS 用パッケージを txz に変換してインストールしているだけなので,上記以外に rc.d 用のスクリプトとかを自作する必要はあります.systemd 用のスクリプトは同梱されているんだけどね.

細かい動作確認はしてないけど,rc スクリプトはこんな感じで良いのかな?と思っていたり.

wnn8 server 用 (/etc/rc.d/init.d/wnn8.r)

#!/bin/sh                                                                                                                

SERVER=/usr/sbin/jserver
LOCKD=/var/lock/subsys

[ -f $SERVER ] || exit 0
case "$1" in
start)
  echo "Starting Wnn server:"
  $SERVER
  /bin/rm -f /tmp/jd_sockV8
  [ -d $LOCKD ] && touch $LOCKD/wnn8
  ;;
stop)
  echo "Shutting down Wnn server:"
  killall jserver
  [ -d $LOCKD ] && rm -f $LOCKD/wnn8
  ;;
install)
  echo wnn8 network
  ;;
*)
  echo "Usage: wnn8 {start|stop}"
  exit 1
  ;;
esac
exit 0

dpkey server 用 (/etc/rc.d/init.d/dpkey.r)

#!/bin/sh                                                                                                                

SERVER=/usr/sbin/dpkeyserv
LOCKD=/var/lock/subsys

[ -f $SERVER ] || exit 0
case "$1" in
start)
  echo "Starting dpkey server:"
  $SERVER
  [ -d $LOCKD ] && touch $LOCKD/dpkey
  ;;
stop)
  echo "Shutting down dpkey server:"
  killall dpkeyserv
  [ -d $LOCKD ] && rm -f $LOCKD/dpkey
  ;;
install)
  echo dpkey server network
  ;;
*)
  echo "Usage: dpkey {start|stop}"
  exit 1
  ;;
esac
exit 0

見て判るように,元々,同梱している FreeWnn 用のスクリプトをちょこっと修正した程度の物です.はい.

あとは,予測変換が動かないのがちょっと悲しいので.オムロンソフトさんが elisp を正式に wnn8 に対応してくれるとうれしいなと思ってたり.以前,「OMRON Wnn8 for Linux/BSDEmacs client の要望」に書いたように,オムロンソフトへは Wnn8 の Emacs 対応への要望がほとんど来てないとのことなので,いまからでも Wnn8 の Emacs lisp が欲しいと思っている方は,直接,オムロンソフトに要望を出しましょう.

あ,書き忘れてましたが,iiimf は動作確認してないです.はい.

ざっとこんな感じですけど,まぁ,参考まで.

Wnn8 for Linux/BSD
オムロンソフトウェア
オムロンソフトウェア