ttt

getttyent

(FreeBSD) portsでopenoffice.org-2.0がビルドできない問題 → とりあえず解決?(BlogPet)

2006-08-11 16:58:08 | インポート
速いバージョンとか思考錯誤して、速いディスク上に作られるように指定してみたいな結果になるし・・・
コンパイルとか、ビルドなどしてみたんです




エラーがでたときのログを、以下に貼り付けて起きます
たとえばopenofficeだったら、

portsのディレクトリは、/usr/portsからインストールしようとしても、1度も成功したの?
と、pochiが思ってるの。


*このエントリは、BlogPet(ブログペット)の「pochi」が書きました。



(FreeBSD) portsでopenoffice.org-2.0がビルドできない問題 → とりあえず解決?

2006-08-11 01:03:34 | デジタル・インターネット

私の場合、けっこう前から、ず~っとそうだったんですが、FreeBSDでopenoffice.org-2.0をportsからインストールしようとしても、1度も成功したことがありませんでした。

さんざんいろいろコンパイルして、けっこう時間がたってから、epmというコマンドでエラーになって終わってしまいます。

・・・で、なんか急にひらめいて、もしかしてこれがエラーの原因?みたいなことがわかりました。ただ、ちゃんと正確な原因がつかみきれていないので(ビルドするのに時間がかかるので、そうそう何度もやりたくない)、ただの「おまじない」かもしれないし、たまたまうまくいっただけとか、気のせいとか、そういうあいまいなところもあるんですが・・・

☆ ☆ ☆ ☆ ☆ ☆ 

標準ではportsのディレクトリは、/usr/ports/~、そして、コンパイル作業ディレクトリは各portsのディレクトリにworkというサブディレクトリがつくられます。たとえばopenofficeだったら、

  • portsのディレクトリが
     /usr/ports/editors/openoffice.org-2.0/
  • コンパイル作業が行われるのが
     /usr/ports/editors/openoffice.org-2.0/work/

となっています。

私の場合、いつもportsは、/usrパーティションとは別のパーティションにおいておき(amdでNFSマウントするので、/a/ホスト/なんとか~/portsだったり)、/usr/portsからシンボリックリンクを張っておきます。

そして、workディレクトリも、/etc/make.confにて、WRKDIRPREFIX=/なんとか/かんとか/ports_work、のように指定して、速いディスク上に作られるようにしたりしています(portsをNFSマウントしているときは、NFSマウント先にworkディレクトリが作られたりしたら、遅くなるし、さらに、OSのバージョンが異なるときに同じworkが参照されたりしたら、悲惨な結果になるし・・・)。

・・・で、openofficeのビルドが失敗するのは、どうも、workディレクトリのパスが長くなるときに、エラーになっているんじゃないかと思うんです。

エラーがでたときのログを、以下に貼り付けて起きます。

ESP Package Manager v3.7.0
Copyright 1999-2003 by Easy Software Products.
Patched for OpenOffice.org

EPM is free software and comes with ABSOLUTELY NO WARRANTY; for details
see the GNU General Public License in the file COPYING or at
"
http://www.fsf.org/gpl.html".  Report all problems to "epm@easysw.com".

Searching for product information...
Stripping executables in distribution...
Creating FreeBSD pkg distribution...
Creating descr file...
Creating comment file...
Creating plist file...
Copying temporary distribution files...
Packaging failed!
Try 3 : Could not execute "epm -f bsd openoffice.org-sdk /なんとか/かんとか/けっこう長い/ports.work/usr/ports/editors/openoffice.org-2.0/work/OOC680_m7/instsetoo_native/unxfbsdi.pro/OpenOffice_SDK/bsd/listfile/en-US/epm_OpenOffice_SDK_gid_Module_Root_unxfbsdi_OOC680__en-US.lst -v  2>&1 |"!

Moved directory from /なんとか/かんとか/けっこう長い/ports.work/usr/ports/editors/openoffice.org-2.0/work/OOC680_m7/instsetoo_native/unxfbsdi.pro/OpenOffice_SDK/bsd/install/en-US_inprogress to /なんとか/かんとか/けっこう長い/ports.work/usr/ports/editors/openoffice.org-2.0/work/OOC680_m7/instsetoo_native/unxfbsdi.pro/OpenOffice_SDK/bsd/install/en-US_witherror

Removing directory /なんとか/かんとか/けっこう長い/ports.work/usr/ports/editors/openoffice.org-2.0/work/OOC680_m7/instsetoo_native/unxfbsdi.pro/OpenOffice_SDK/bsd/zip/en-US

***************************************************************
ERROR: "epm -f bsd openoffice.org-sdk /なんとか/かんとか/けっこう長い/ports.work/usr/ports/editors/openoffice.org-2.0/work/OOC680_m7/instsetoo_native/unxfbsdi.pro/OpenOffice_SDK/bsd/listfile/en-US/epm_OpenOffice_SDK_gid_Module_Root_unxfbsdi_OOC680__en-US.lst -v  2>&1 |"!
in function: call_epm
***************************************************************

パスが長いってのは、

/なんとか/かんとか/けっこう長い/ports.work/usr/ports/editors/openoffice.org-2.0/work/OOC680_m7/instsetoo_native/unxfbsdi.pro/OpenOffice_SDK/bsd/listfile/en-US/epm_OpenOffice_SDK_gid_Module_Root_unxfbsdi_OOC680__en-US.lst

みたいな部分のことです。

で、

portsのディレクトリが
 /usr/ports/editors/openoffice.org-2.0/

コンパイル作業が行われるのが
 /usr/ports/editors/openoffice.org-2.0/work/

にしていると、ちゃんとビルドできたんです。

何回か思考錯誤してみたんですが、本当にパスが長いとエラーになってしまうのか、100%の確証はないんですが、どうも、パスの長さが原因なのかなぁ?・・・と、そういう気がしてなりません。