ttt

getttyent

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

2008-06-25 23:06:30 | デジタル・インターネット

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回連続して、そのときもうんざりしました。