2010-07-02 5 views
10

poco estuve intentando actualizar un par de módulos de Perl en mi teléfono móvil (Nokia N900), y la instalación de la última copia de Module::Build durante una hora.¿Cuáles son sus trucos para acelerar el CPAN en dispositivos de recursos limitados?

mayor parte del tiempo (70%) parecía ser gastado analizar e indexar la información del repositorio.

Parece que hay algunas opciones, como no la reconstrucción del índice de caché cada vez, o el uso de CPAN :: SQLite.

me gustaría seguir utilizando CPAN en el dispositivo, en lugar de instalar los módulos manualmente. Entonces, me pregunto en qué técnicas han tenido éxito las personas con dispositivos de recursos limitados similares (CPU lenta, RAM limitada, disco lento (flash)).

Respuesta

6

Creo que esta fue una de las razones principales por las Miyagawa creado cpanminus.

de la vaina:

Otra instalador CPAN?

bien, la primera motivación fue la siguiente: el shell de CPAN se queda sin memoria (o permutas pesadamente y se pone muy lento) en el plan más asequible Slicehost/de linode, con sólo 256 MB de RAM. ¿Debo pagar más para instalar módulos perl de CPAN? No lo creo.

No he utilizado cpanm en un dispositivo de recursos limitados/máquina, pero he estado usando exclusivamente en mi dev Perl 5.12 y ha sido un sueño!

/I3az/

1

Si el módulo es puro Perl (es decir, no tiene componentes XS y no requiere que se compile ninguna biblioteca), puede instalar el paquete en otra máquina de un sistema operativo diferente en un directorio local::lib y luego simplemente copiarlo directorio a su dispositivo.

De lo contrario (si la compilación es necesario), la misma técnica se puede utilizar para construir solamente el módulo una vez, siempre y cuando se instala en un dispositivo de la misma arquitectura; después de eso, puedes compartir la biblioteca entre múltiples dispositivos. p.ej. una vez que construya estos paquetes, puede colocarlos en su página web para compartirlos con otros usuarios de Nokia n900 y ganar muchos amigos. :)

1

Si está trabajando en un entorno de memoria RAM limitada, como un router inalámbrico o algo así, añadir swap puede ayudar. No creo que esto sea exactamente lo que estás buscando, pero si tus compilaciones de CPAN se están quedando sin memoria o te están matando, esto te ayudará.

En una cáscara:

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

esto le dará un archivo de intercambio 500MiB. En mi enrutador de 128MB, funcionó bien; Puse el archivo en una memoria USB adjunta.

Cuestiones relacionadas