おしごとで久しぶりにFreeBSDを触りました。ハマったのでメモ。
経緯。
- CPANからImageMagick(PerlMagick?)を入れようとする
- OpenMPがないと怒られる
- portsからgcc44入れようとする
- gcjコンパイル時にout of memoryでストップ
limitでdatasizeを確認すると512MB。
%limit cputime unlimited filesize unlimited datasize 524288 kbytes stacksize 65536 kbytes coredumpsize unlimited memoryuse unlimited vmemoryuse unlimited descriptors 11095 memorylocked unlimited maxproc 5547 sbsize unlimited
これを変更するにはsysctlをつついてもダメで、カーネルオプションを変更しなければならないらしい。カーネルオプションの変更はloaderから行うので要再起動。リモートマシンなのに…。
/boot/loader.confに以下を追加して、祈りながらreboot.
kern.maxdsiz="2G"
数分後にping応答があったので無事に復活。
いまはこんなかんじ。
%limit cputime unlimited filesize unlimited datasize 2097152 kbytes stacksize 65536 kbytes coredumpsize unlimited memoryuse unlimited vmemoryuse unlimited descriptors 11095 memorylocked unlimited maxproc 5547 sbsize unlimited
無事にgcc44もコンパイルが通りましたとさ。
で、CPANからImage::Magickを入れようとしたらやはりopenmpがないと言われる。
ウーンと悩みながらportsのImageMagickを覗いてみるとUSE_PERL5=yesって書いてあるし、ひょっとしてgcc44をコンパイルしたのって無駄足だったのかも…。まあいいか。
[ad#text_wide]