2008年6月26日木曜日

(FreeBSD) portsのopenoffice.org-2を、日本語、英語、いろんな言語でインストールしたい

openoffice.orgほど、ソースからビルドするのが重たい!ソフトウェアは無いんじゃないかと思ってます。



以前だと、

make install

と入力してから、一晩過ぎて、次の日見るとようやく終わってた、なんて感じでしたが、最近は4コアのCPUなんてのも、普通に手に入るようになりましたので、朝はじめて、昼すぎにはなんとか終わってる、くらいでしょうか。それでも、まだまだ、重いですけどね。





さてさて、portsでopenofficeをインストールする場合なんですが、

cd /usr/ports/editors/openoffice.org-2
make install

とやると、メニューが英語のopenofficeがインストールされます。英語なんです。どうやっても、英語でしか表示されません。上のコマンドでインストールした場合は。



俺は別に英語でもかまわないけどな、という英語が得意な人はいいんですけど、やっぱり日本語で使いたいよ、って場合もあるんです。



場合によっては、インストールした人=ユーザーとは限らず、FreeBSDなサーバーにいろんなユーザーがログインして使うこともあるわけで、日本語じゃなきゃお手上げ、なんていうユーザーもいるわけです。



そのときは、最初に

make LOCALIZED_LANG=ja

と実行しなければなりません。つまり、また最初からやりなおしです。数時間~十数時間、またねばなりません。もしも知らなかったら、ギャフン!と叫ぶところですね。



makeがはじまったときに、その旨、メッセージが表示されてるんですが、そのメッセージを見落とす可能性もあるわけでして、そういう意味でも、このportsは不親切だな、っていう気がします。



makeにつづけて指定できるオプションには、LOCALIZED_LANG=jaのほかにも、WITH_KDE=yesとか、WITH_SYSTEM_FREETYPE=yesとか、WITHOUT_MOZILLA=yesとか、むむむ?なところですがWITH_TTF_BYTECODE_ENABLED=yesとか、いろいろあります。



LOCALIZED_LANGに指定できる言語も、ja(日本語のことですね)以外にも、en-US(たぶん米国英語ですよね)とか、fr(フランス語かな)とか、いろいろあるんですが、どれが何語なんだか、正直、まったくの、ちんぷんかんぷんです。ssとかxhとか、もう何のことですか?服のサイズか何かですか?!



以上のように、makeのときに指定できるオプションとして、どんなものがあるかは、/usr/ports/editors/openoffice.org-2/files/Makefile.knobs を読めば、一応わかるようになってます。



ええ、Makefileを読め、って言ってるんですよ。不親切だな、っていう気がしちゃいますね。



portsを使うくらいなら、それくらいできるだろ(できない人は、portsを使わないでください)、っていうように、技術レベルで足切りをやってるんですかね。





というわけで、「make LOCALIZED_LANG=ja」すれば、メニューが日本語になるんです・・・が、しかし、今度は、何がなんでも日本語なんです。英語とかフランス語とかでは表示してくんないんです。あのぉ、ユーザーに「ニポンゴ、ワカリマセーン!」という人もいるんですけど。



じゃあ、複数の言語でビルドしてインストールすりゃいいんだろ、ってことで

make LOCALIZED_LANG="en-US ja fr"

とかやればいいのかと思ったら、それは不可能みたいです。Makefileをざーっと眺めてみたけど、どうあがいても無理っぽいです。



唯一わかった方法は、

make LOCALIZED_LANG=alllangs

とやれば、可能な限り全部の言語で使えるようになるそうです。



・・・で、やってみたんですよ。ものすごーく時間かかりました。で、最後に、エラーがでました。



なんだろう、きっと気のせいだろう、と思ってやり直しました。またエラーでした。意味がわかんない、どう対処していいのか検討もつかないエラーでした。2日かかって、結局、すべてがムダでした。



温和な心を持つ私でも

クソ野郎、なめてんのかーっ!

と叫びました。



そして、悲しくなりました。





こういうウェブページを見つけました。

http://porting.openoffice.org/freebsd/

じっくり読まないと見落としてしまうんですが、こんなことが書いてあります。

Building all localized language packages
The initial make may take 6 hours, however the next make will only take 5 minutes. The trick is TWEAK_L10N touches work/.configure_done* etc. This is due to limitations of ports framework.

# cd /usr/ports/editors/openoffice.org-2 ; make ALL_LOCALIZED_LANGS=yes
# make TWEAK_L10N=yes LOCALIZED_LANG=ja pre-everything
# make LOCALIZED_LANG=ja WITH_CCACHE=yes package package-rename deinstall
# make TWEAK_L10N=yes LOCALIZED_LANG=ar pre-everything
# make LOCALIZED_LANG=ar WITH_CCACHE=yes package package-rename deinstall
# make TWEAK_L10N=yes LOCALIZED_LANG=ca pre-everything
# make LOCALIZED_LANG=ca WITH_CCACHE=yes package package-rename deinstall

これなんですよ。
上記のようにやれば、1つずつ選んで、いろんな言語でインストールできるみたいです。



あ、ちなみに、上のコマンドは、pkg_deleteやmake cleanしてからやらないとダメなようでして、つまり、すべては最初からやりなおし!!・・・ですけどね。嘆息





ちょっと注意事項をいくつか。



make LOCALIZED_LANG=ja WITH_CCACHE=yes package package-rename deinstall



みたいなコマンドなんですが、いろんな言語でインストールしたい、という目的の場合は、このまま実行しちゃ、絶対にダメです。



まず、deinstallってあるので、せっかく/usr/local/以下にインストールしたファイルが、最後に削除されちゃいます。



deinstallはしないようにすると、上書きインストールになっちゃってるみたいなんですけど、とりあえず、なんだか、結果オーライでOKって感じです。



packageってあるので、バイナリパッケージが作られるんですが、それはそれで、たしかにいいんだと思います。別のFreeBSDマシンで、バイナリパッケージを使ってインストールできるので、とっても時間の短縮になります。



問題は、そのあとのpackage-renameです。上記のウェブページには、パッケージの名前を変更するとか書いてあるんですが、それ、半分ウソです。名前を変更するだけじゃなくて、ディレクトリも移動させちゃってます。



/usr/ports/packages/All/以下に、どこにもopenofficeのバイナリパッケージが無いので、ものすごく悩みました。



make package-renameをすると、portsのワークディレクトリに、バイナリパッケージが移動してしまうんです。ワークディレクトリというのは、/usr/ports/editors/openoffice.org-2/workとか、もしくは、make.confなどで指定するWRKDIRPREFIXで指定したディレクトリのことです。





というわけで、以上、portsのopenoffice.org-2は、FreeBSDのportsとしては、ものすごく異端児だな、という感想・・・というか愚痴でした。



なんで、言語パッケージだけでインストールできるようになっていないんだろう・・・





そういえば、別のFreeBSDマシンで、portupgrade -P ~して、openofficeをバイナリパッケージでアップデートしようと思ったら、どういうわけか、勝手にソースからビルドしてました。
もうどうでもいいや・・・





しばらく前に、openofficeをportupgradeすると、その直後にportsのバージョンがあがる(「_1」が「_2」になる等)、ということが2~3回連続して、そのときもうんざりしました。





2 件のコメント:

  1. ランゲージパックがありますよ。
    あとからこれをインストールすれば、いろんな言語メニューを使えます。
    http://ooopackages.good-day.net/pub/OpenOffice.org/FreeBSD/2.4.0/7.0-STABLE/i386/
    自分でビルドしたいなら、ランゲージパックだけビルドすれば良いんじゃないかな。

    返信削除
  2. そうなんですよ、だからportsがですね、(以下省略)

    返信削除