在有限的资源设备上加快CPAN的技巧是什么?

时间:2010-07-02 20:56:31

标签: perl cpan

我最近尝试升级手机上的几个Perl模块(nokia n900),并安装Module::Build的最新副本一小时。

大部分时间(70%)似乎都花在解析和索引存储库信息上。

似乎有一些选项,例如每次都不重建索引缓存,或者使用CPAN :: SQLite。

我想继续在设备上使用CPAN,而不是手动安装模块。所以我想知道人们在类似的有限资源设备上取得了哪些成功(缓慢的CPU,有限的RAM,慢速磁盘(闪存))?

3 个答案:

答案 0 :(得分:6)

我认为这是Miyagawa创建cpanminus的主要原因之一。

来自POD:

另一位CPAN安装程序?

  

好的,第一个动机就是这样:CPAN shell在Slicehost / linode最经济实惠的计划中只耗尽了256MB内存,耗尽了内存(或大量交换并且变得非常慢)。我应该支付更多费用来安装CPAN的perl模块吗?我不这么认为。

我没有在有限的资源设备/机器上使用cpanm,但我一直在我的Perl 5.12 dev上使用它,这是一个梦想!

/ I3az /

答案 1 :(得分:1)

如果模块是纯Perl(即没有XS组件且不需要编译任何库),则可以将该软件包安装在不同操作系统的另一台机器上的local::lib目录中,然后只需将该目录复制到您的设备即可。

否则(如果需要编译),可以使用相同的技术仅构建模块一次,只要将其安装在相同体系结构的设备上即可;之后,您可以在多个设备之间共享库。例如一旦你构建了这些软件包,就可以将它们放在你的网页上,与其他诺基亚n900用户共享,并赢得很多朋友。 :)

答案 2 :(得分:1)

如果您在有限的RAM环境中运行,如无线路由器或其他东西,添加交换可以提供帮助。我认为这不是你想要的,但如果你的CPAN版本内存耗尽或被杀,这将有所帮助。

在shell中:

# dd if=/dev/zero of=/path/to/swapfile.swp bs=1M count=512
# mkswap /path/to/swapfile.swp
# swapon /path/to/swapfile.swp

这将为您提供500MiB交换文件。在我的128MB路由器上,这很好用;我把文件放在附带的USB拇指驱动器上。