Qbilinux 日記

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

Ubuntu 15.10 に Wnn7 をインストール

以前,Debain Jessie の時に同じようなものを書いていますが,Ubuntu 用にアップデートしておきます.主には自分用のメモという目的ですけどね.

試してみたところ,Debian とほぼ同じ形で問題なくインストール&動作させる事が出来るみたいです.下記の内容は Debian Jessie の時とほとんど同じですけど,ちょっとだけ誤植などを修正しています.はい.

最初に wnn7 のパッケージを omronsoft のサイトからダウンロードします.ライセンスファイルは wnn7 を購入したときについてきたものを用意します.インストールするのは server と辞書のみ.xclient は個人的に使わないので入れない&動作確認していません.elisp に関しては後述します.xclient に関しては昔の日記では動作させるために少し作業していますね.必要な人はそっちを参考にしてみて下さい.

% wget http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/deb/wnn7-server_1.01-1_i386.deb
% wget http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/deb/wnn7-maindic_1.01-1_all.deb
% wget http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/deb/wnn7-optiondic_1.01-1_all.deb
% wget http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/deb/wnn7-utils_1.00-1_i386.deb
% wget http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/deb/dpkey7_1.01-1_i386.deb

今回は,x86_64 環境に i386 の wnn7 を入れたので Ubuntu 上で i386 アーキテクチャを追加.その後,i386 用のパッケージを入れるためにデータベースを update.もしかしたらデフォルトで追加されているかも知れないですけど,ちょっと確認してないです.i386 環境に入れる場合には当然必要ないです.

% dpkg --add-architecture i386
% dpkg --print-foreign-architectures
i386 (一応確認)
% apt-get update

必要なライブラリの取得.apt-get でとってこれないものがあるので,手作業でダウンロード.

% wget http://archive.debian.org/debian/pool/main/g/gtk+1.2/libgtk1.2-common_1.2.10-18.1_all.deb
% wget http://archive.debian.org/debian/pool/main/g/gtk+1.2/libgtk1.2_1.2.10-18.1_i386.deb
% wget http://archive.debian.org/debian/pool/main/g/glib1.2/libglib1.2ldbl_1.2.10-19_i386.deb

そのままインストールするとエラーになるので libgtk1.2-common をいったん展開して architecture を書き換える.その後,再パッケージング.ファイル名は common の個所を i386 に変更.

% dpkg-deb -x libgtk1.2-common_1.2.10-18.1_all.deb libgtk1.2-common_1.2.10-18.1_all
% dpkg-deb -e libgtk1.2-common_1.2.10-18.1_all.deb libgtk1.2-common_1.2.10-18.1_all/DEBIAN
% vi libgtk1.2-common_1.2.10-18.1_all/DEBIAN/control
Architecture: i386
% dpkg -b libgtk1.2-common_1.2.10-18.1_all libgtk1.2-common_1.2.10-18.1_i386.deb

再パッケージングしたライブラリと手作業でダウンロードしたライブラリをインストール.

% dpkg -i libgtk1.2-common_1.2.10-18.1_i386.deb
% dpkg -i libgtk1.2_1.2.10-18.1_i386.deb
% dpkg -i libglib1.2ldbl_1.2.10-19_i386.deb

一応,依存関係を解決するために apt-get を実行.

% apt-get -f install

次,wnn7 関係.

wnn7-server も依存関係でインストールに失敗するので,Depends を書き換える.方法は libgtk1.2-common と同じような感じ.ファイル名は一応 1.01-1 を 1.01-1p1 に変更しておく.

% dpkg-deb -x wnn7-server_1.01-1_i386.deb wnn7-server_1.01-1_i386
% dpkg-deb -e wnn7-server_1.01-1_i386.deb wnn7-server_1.01-1_i386/DEBIAN
% vi wnn7-server_1.01-3_i386/DEBIAN/control
Depends: libc6 (>= 2.1.2), libglib1.2ldbl (>= 1.2.0), libgtk1.2 (>= 1.2.7-1)
% dpkg -b wnn7-server_1.01-1_i386 wnn7-server_1.01-1p1_i386.deb

wnn7 の server, maindic, ooptndic, utils をインストール.

% dpkg -i wnn7-server_1.01-1p1_i386.deb
% dpkg -i wnn7-maindic_1.01-1_all.deb
% dpkg -i wnn7-optiondic_1.01-1_all.deb
% dpkg -i wnn7-utils_1.00-1_i386.deb

apt-get で依存パッケージをインストール.

% apt-get -f install

最後に,dpkeyserver 関係.

dpkeyserver をインストールする前に,購入した wnn7 の CDROM をあらかじめマウントしておきます,dpkeyserver インストール途中に,dpleylist の場所を聞かれるので,CDROM 中の dpkeylist などを指定します.dpkeylist ファイルをどこか HDD/SSD 上にコピーしておいて,その場所を指定しても良いです.

% dpkg -i dpkey7_1.01-1_i386.deb

apt-get で依存パッケージのインストール.

% apt-get -f install

shared lib の関係上,そのまま普通に動作させることができないので,sarge の libc をとってきて別ディレクトリに dpkeyserverの動作環境を構築します.スクリプト中から chroot でそのディレクトリを指定して dpkeyserver を動作させます.ちょっとセキュリティ上,大丈夫かなぁと思うところもあるけど....

% wget http://archive.debian.org/debian/pool/main/g/glibc/libc6_2.3.2.ds1-22sarge6_i386.deb
% mkdir /var/dpkey7root
% dpkg -x libc6_2.3.2.ds1-22sarge6_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/.
% vi /etc/init.d/dpkey7
DPKEY_ROOT=/var/dpkey7root
CMD_NAME=dpkeyserv
start-stop-daemon --start --quiet --chroot $DPKEY_ROOT --exec $DAEMON
start-stop-daemon --stop --oknodo --quiet --name $CMD_NAME

を適宜追加,修正.

その後,/etc/init.d/dpkey7, /etc/init.d/wnn7-server を実行すれば動作する感じですかね.

上記は普通にコマンドラインの羅列を書いていますが,一般ユーザーで作業する場合には,当然,先頭に sudo などをつける事は必要です.

dpkeyserver 用に sarge の libc6 を使う変わりに Ubuntu に libc6-i386 ってパッケージがあったので,それで代用できるかなと思って少しだけ試してみたら駄目そうだったので早々にあきらめて Debian と同じ形を使いました.libc6-i386 でも大丈夫な方法があったらそっちの方が良いかも知れないですね.

あと,emacs 上で wnn7 を使う場合には Ubuntu に含まれている wnn7egg パッケージは使えません.エラーになります.wnn7 と同時に配布されている elispdeb パッケージでも同様にエラーになります.

https://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/wnn7egg/wnn7-elisp-el-1.02-1.tgz にある elisp のソースファイルに http://www.jpl.org/ftp/pub/elisp/wnn7-elisp-el-1.02-1.patch.gz のパッチを当てたものを使う必要があります.また,64bit 環境の場合には timeout のエラーが発生するので,http://yanmoo.blogspot.jp の blog にある「64bit版emacsのwnn7eggがbackend timeoutになる件を調査してみた」で配布している http://blog.foobarhoge.com/src/wnn7-egg/wnn7-egg-backend-timeout.patch も当てる必要があります.

この辺りは Debain も同様なのでメンテナンスしてあげた方が良いんだろうなぁと思ってるけど....

以上,参考までに.