@kyanny's blog

My thoughts, my life. Views/opinions are my own.

coLinux上のGentoo/DebianでCPAN.pmがエラーしたのはメモリの割り当てが少なかったせい

以下、メモ。

coLinux上で、DebianとGentooを走らせ、Perl5.8.4ないし5.8.6でCPAN shellを使ったのだが、以下のようなエラーが出てとまってしまう現象に出くわした。


Could not pipe[/bin/gzip --decompress --stdout ...]
Cannot allocate memory ...

詳しいひとにみてもらったら、「メモリが少ないのでは」とアドバイスを受けて、coLinuxの設定ファイル(.xml)のメモリの数値をデフォルトの64MBから256MBに増やしてみた。


<!-- this line allows you to specify the amount of memory available
to coLinux -->
<memory size="256" />

・・・見事、CPAN.pmががりがりと稼動。Linuxは非力なマシンでも動くという先入観からか、coLinuxの設定での、メモリ割り当てに全く無関心だった。散々悩んで手も足もでなかった問題が、そんなことだったとは・・・。

解決したあとでわかったことだが、パイプ処理をする場合、一度メモリの中にパイプして渡すデータを格納するので、メモリ容量を疑うのは大事らしい。

というわけで、まあたぶんいないだろうけど、Could not pipe...とかいうエラーが出てCPAN.pmが動かなくて困っている人は、メモリ増設を検討してみてはいかがでしょうかとかいってみる。