「Portable Wikipedia への長い道のり」
……大変だった!
なにがって Wikipedia を EPWING 形式に変換するのが。
なんどか挑戦してきて、なんども挫折を味わったこの難行。今日はけっこう頑張りました(手に入るデータが随分と古いことに背を押されました)。
それにしても、初っぱなから 64bitint の有効な Perl をコンパイルする方法が分からず諦めかけたり(UNIX界隈はソースを自分でコンパイルする文化圏!)。Cygwin のインストールすらままならなかったり。意味不明のエラーに「ash で rebaseall」という意味不明の対処法でどうにかしたり。山あり谷ありでしたとも!
BitTorrent: WIkipedia 日本語版 (2010/07/31)
おお、我が子が拡散していく様が愛おしい……。手近な友人の iPhone や Xperia に放り込んだりもして。
以下、今回やった手順です。しかし……望みの Perl が Cygwin に始めから入っているとはね(ActivePerl よ、さようなら)。
基本的には ■[PC関連][備忘録]0から始めるwikipediaのローカル用変換:数式対応 の通りですが、多少の違いはあったので書いておきます。
Cygwin のインストール
まずはそこからかよ! と言いたくなりますね。でも変換スクリプトは UNIX 用なんだから仕方ない(Cygwin は Windows 環境で動かせる UNIX 環境だと思いねえ)。
Cygwin Information and Installation から Setup.exe を落としてきて実行。必要なファイルをネットからダウンロードする形式なので軽いです。必要なのは Archive、Base、Devel、Graphics、Perl、Libs なので、それだけをインストールすることをお勧めします。
インストール中に固まったらそのパッケージをインストールしないようにして再チャレンジ! 私は Inetutils.sh と xinet.d で2回もありました……。
Cygwin の環境変数
さあ、これで bash を始めとした UNIX の便利ツールを使えるぞ。……と、その前に。環境変数の設定です。以下の通りに設定いたしましょう(もちろん bash の代わりに ash を使うとかはご自由に)。ちなみに、全て「ユーザー変数」です。
変数名 | 値 |
---|---|
CYGWIN | ntsec |
HOME | /home/ユーザー名 |
MAKE_MODE | UNIX |
SHELL | /bin/bash |
ユーザー名は、Cygwin を起動したときにでるプロンプトから分かります。私の場合は firedfly ですね。
FreePWING のインストール
お次は、色んなデータを EPWING 形式に変換してくれる優れもの。FreePWING のインストールです。FreePWING から freepwing-1.6.1.tar.bz2 を落としてきて
wget ftp://ftp.sra.co.jp/pub/misc/freepwing/freepwing-1.6.1.tar.bz2
bzip2 -dc freepwing-1.6.1.tar.bz2 | tar xvf -
cd freepwing-1.6.1
./configure
make
make install
つまりは bz2 形式の圧縮ファイルを解凍し、さらに tar 形式でまとめられたファイル群をバラして……それらをコンパイルしたものを、Cygwin 環境にインストールしている訳です。……クリックしてればインストールできちゃう Windows 文化圏の人からすると、これだけで心が折れそうですよね。ちなみに、これを実行することで /usr/local/bin に fpwmake というコマンドが用意されます。
mimeTeXをインストール(数式を使いたい人だけ)
言わずと知れた数式組版ソフト TeX です。記事中の数式をインライン画像にしたい人は入れましょう(其の分、あとで変換に時間がかかりますけども)。mimetex から mimtex.zip を落としてきてもいいですが、wget というコマンドで Cygwin からダウンロードしちゃうこともできます。
wget http://www.forkosh.com/mimetex.zip
unzip mimetex.zip
gcc -DAA -DAA mimetex.c gifsave.c -lm -o mimetex.exe
cp -p ./mimetex.exe /usr/local/bin/
ダウンロード、解凍、コンパイル、インストール、と言う手順ですね。
PerlMagick をインストール(数式を使いたい人だけ)
画像処理ソフト。これも mimxtex と同様にコンパイルする……と書いてあるサイトがありましたが、最近の Cygwin は、Setup 時にチェックを付けるだけでインストールされるようです。楽ちん楽ちん。
perl -MImage::Magick -e 'print $Image::Magick::VERSION . "\n"'
このコマンドを打てば、PerlMagick が入っているかどうか確認できます。
Wikipedia-fpw のインストール
FreePWING を使って辞書データを変換するにしても、Wikipedia に対応するためには いろいろと細かいルールを決めなきゃいけませんよね。その処理を Perl で書いてあるのが、この Wikipedia-fpw です。
wget http://ikazuhiro.g.ribbon.to/dic/files/wikipedia-fpw-20090126-src.tar.gz
tar zxvf wikipedia-fpw-20090126-src.tar.gz
普通に落としても wget を使ってもなんでもいいので、どっかに解凍してください。ちなみにフォルダの中の wikipedia-fpw.conf が設定ファイルです。数式の有無とか、数式画像の背景色とか(標準だと黒背景!)、mimtex のフルパスを指定したりします。見ておきましょう。
たとえばこんな感じに書き直す訳です。
Wikipedia 日本語版の最新版をダウンロード
jawiki の latest に入って「jawiki-latest-pages-articles.xml.bz2」をダウンロードします。
wget http://download.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
bunzip2 -v jawiki-latest-pages-articles.xml.bz2
mv jawiki-latest-pages-articles.xml wikipedia.xml
回線に自信があるなら、こんな風に wget でどうぞ。落としたら解凍し、wikipedia.xml と改名します。でもって Wikipedia-fpw のフォルダに。
Wikipedia 記事データのダウンロードと変換
ここまで来ればあとは簡単。
fpwmake
fpwmake catalogs
fpwmake package
この三つのコマンドを打つだけで(まあ数時間はかかる訳ですが)、圧縮された EPWING データができあがります。
一行ずつ実行するのが嫌なら簡単なシェルスクリプトをどうぞ(Windows でいうバッチファイルです)。
sh wikipedia.sh
使いたいフォルダに入れて、このコマンドを打つだけで、そのうち Wikipedia has become a EPWING format! なんて表示されるはずです。
あとは解凍して、EBWin なり Jamming なり EBPocekt なりに放り込むだけ。
……あ、できたファイルは 2.6G と大変にビッグですが、所詮はテキストファイルなので圧縮すると 1/3 ほどに縮まります。EBShrink というソフトを使って圧縮し、(対応してれば)そのまま検索できて便利です。当然ですが、 EBWin や EBPocekt は対応してます。
おまけ……fpwmake で error
C:\cygwin\bin\perl.exe (268): *** unable to remap C:\cygwin\bin\cygfreetype-6.dll to same address as parent(0xE00000) != 0xE90000
なんだよそのエラー! ……という場合には、まず Cygwin を終了させまして、Windows のコマンドプロンプトを起動します。で、Cygwin の bin フォルダに行き、ash を起動。そこから rebaseall を起動すると、解消されます。
cd C:\cygwin\bin\
ash
/bin/rebaseall
コマンドはこんな感じ。
おまけ2……fpwmake catalogs で error
普通は関係無いですが、何度も変換した場合なんかに古い catalogs ファイルがあると上書きしてくれないようです。削除しておきましょう。