LinuxでEPWING電子辞書を使おう

LinuxでもEPWING形式の電子辞書を使用することができます。
EPWINGに対応している製品は
http://www.epwing.or.jp/lineup/lineup.htmlが参考になります。


1996年ごろLinuxを使い始めたころにVineにインストールしたのですが久しぶりにRedhat9にインストールしてみました。

NDTPDを導入するのですが
事前にEBというCD-ROM書籍にアクセスする為のC言語の関数ライブラリが必要です。

2004年2月時点でEBの最新版は4.0だったのですがうまく動作しなかったのでeb-3.3.3.tar.gzをhttp://www.sra.co.jp/people/m-kasahr/eb/index-ja.htmlからダウンロードしました。

eb-3.3.3.tar.gzを/usr/local/srcにコピーし
# tar xvfz eb-3.3.3.tar.gz を実行し、展開されたディレクトリに移動しコンパイルです。
# cd eb-3.3.3
# ./configure
# make
# make install
これでOKです。

更に ebnetd-1.0.tar.gzをダウンロードし同様にインストールします。
# tar xvfz ebnetd-1.0.tar.gz を実行し、展開されたディレクトリに移動しコンパイルです。
# cd ebnetd-1.0
# ./configure
# make
# make install


/usr/local/etc/ebnetd.conf.sampleができるのでコピーしてebnetd.confを作成します。

# cp /usr/local/etc/ebnetd.conf.sample /usr/local/etc/ebnetd.conf

/usr/local/sbin/ndtpcheck コマンドを実行してみる。
# /usr/local/sbin/ndtpcheck
次のようなエラーが発生。ndtpd用のユーザーを作成する。
ndtpcheck: /usr/local/etc/ebnetd.conf:20: unknown user: ndtpuser
ndtpcheck: configuration failure

# useradd ndtpuser
# passwd ndtpuser

起動グループをndtpuserに変更する。
# vi /usr/local/etc/ebnetd.conf でgroup変更
group		ndtpuser
更に begin bookから end までに参照するCDROM書籍を記載しておおきます。
一般的にはCDROMの参照となるがDISKに落しておけば複数の書籍を一括して検索できます。

例)
begin book
    name                readers
    title               リーダース英和辞典
    path                /mnt/cdrom
    max-clients         1
    hosts               127.0.0.1
end


次に/etc/service に次の行を追加します。
ndtp          2010/tcp


/etc/syslog.confに行を追加しsyslog経由でログ出力するようにします。
local0.info   /usr/local/var/ndtpd/log/ndtpd.log

空のログファイルを作成します。
% touch /usr/local/var/ndtpd/log/ndtpd.log
% chmod 644 /usr/local/var/ndtpd/log/ndtpd.log


ps aux | grep syslogd でsyslogのPID取得しsyslog.confを最読み込みさせ、設定を反映させます。

kill -HUP プロセスID

以下のコマンドでsyslogdにテストメッセージを送信します。
% logger -p local0.info "test message"
cat /usr/local/var/ndtpd/log/ndtpd.log で追記されていることを確認します


作成したndtpuserでndtpdを起動します。

su - ndtpuser

% /usr/local/sbin/ndtpd

すると /var/log/messagesにエラーが・・・

failed to open the file, Permission denied: /usr/local/var/ebnetd/ndtpd.loc

ということで以下のコマンド実行

chown ndtpuser /usr/local/var/ebnetd
chgrp ndtpuser /usr/local/var/ebnetd
再度
% /usr/local/sbin/ndtpd

これで起動しました。



次に実際に電子書籍を参照するクライアントプログラムを導入します。
今回はBookViewを使用しました。

bookview-3.2.tar.gzをダウンロードします
/usr/local/srcに保存し以下のコマンドを順次実行しコンパイルします。

# tar xvfz bookview-3.2.tar.gz
# cd bookview-3.2
# ./configure
# make
# make install

$ bookview  で起動します。

少し初期設定をしてやります。





これで検索可能ですね。こんな感じです。



CDをアンマウントして別のCDをマウントしても書籍情報は前のままです。 ndtpdを再起動します。
/usr/local/sbin/ndtpcontrol restart
又は
# ps aux | grep ndtpd
で ndtpd のpidを調べます。
そして
# kill -HUP ndtpd
で再度bookviewを起動すれば最新の情報になります。










       [へなちょこlinuxのコーナーへ]    [ホームへ]