代码之家  ›  专栏  ›  技术社区  ›  Eric Strom

在有限的资源设备上加速CPAN的诀窍是什么?

  •  10
  • Eric Strom  · 技术社区  · 14 年前

    我最近尝试在我的手机(诺基亚N900)上升级几个Perl模块,并安装最新版本的 Module::Build 一个小时。

    大多数时间(70%)似乎花费在分析和索引存储库信息上。

    似乎有几个选项,例如不每次重建索引缓存,或者使用cpan::sqlite。

    我想继续在设备上使用CPAN,而不是手动安装模块。因此,我想知道人们在类似的有限资源设备(Slowwish CPU、有限RAM、慢速磁盘(Flash))上成功使用了哪些技术?

    3 回复  |  直到 9 年前
        1
  •  6
  •   draegtun    14 年前

    我认为这是 Miyagawa 创建 cpanminus .

    从荚:

    另一个CPAN安装程序?

    好的,第一个动机是:CPAN外壳在slicehost/linode的最经济的计划中耗尽了内存(或者交换量很大,速度很慢),只有256MB的RAM。从CPAN安装Perl模块需要支付更多的费用吗?我不这么认为。

    我没有用过 cpanm 在一个有限的资源设备/机器上,但是我一直在我的Perl5.12dev上专门使用它,这是一个梦想!

    /I3AZ/

        2
  •  1
  •   Ether    14 年前

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

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

        3
  •  1
  •   Gabriel Bauman    12 年前

    如果您在有限的RAM环境中操作,例如无线路由器或其他设备,添加交换可能会有所帮助。我不认为这正是你想要的,但是如果你的CPAN构建耗尽了内存或者被杀死,这将有所帮助。

    在外壳中:

    # 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 U盘上。