2010-07-02 14 views
10

Stavo recentemente cercando di aggiornare alcuni moduli Perl sul mio telefono cellulare (Nokia N900) e di installare l'ultima copia di Module::Build per un'ora.Quali sono i tuoi trucchi per accelerare CPAN su dispositivi con risorse limitate?

maggior parte del tempo (70%) sembrava essere speso l'analisi e l'indicizzazione delle informazioni repository.

sembra che ci sono alcune opzioni, come ad esempio non ricostruire la cache dell'indice di volta in volta, o usando CPAN :: SQLite.

Vorrei continuare a utilizzare CPAN sul dispositivo, piuttosto che installare i moduli manualmente. Quindi mi chiedo quali tecniche le persone hanno avuto successo con dispositivi con risorse limitate simili (cpu slow, RAM limitata, disco lento (flash))?

risposta

6

Credo che questo sia stato uno dei motivi principali per cui Miyagawa ha creato cpanminus.

Dal POD:

Un altro installatore CPAN?

OK, la prima motivazione era questo: il guscio CPAN esaurisce la memoria (o swap pesantemente e diventa veramente lento) sul piano più conveniente Slicehost/di linode con solo 256 MB di RAM. Dovrei pagare di più per installare i moduli perl da CPAN? Io non la penso così

non ho usato cpanm su un dispositivo risorsa limitata/macchina, ma ho utilizzato esclusivamente sul mio Perl 5.12 dev e il suo stato un sogno!

/I3az/

1

Se il modulo è puro Perl (cioè non ha componenti XS e non richiede alcuna libreria da compilare), è possibile installare il pacchetto su un'altra macchina di un diverso sistema operativo in una directory local::lib e quindi copiare semplicemente quello directory sul tuo dispositivo.

Altrimenti (se la compilazione è necessario), la stessa tecnica può essere utilizzata per costruire solo modulo dopo, purché si installa su un dispositivo dello stesso dell'architettura; successivamente, è possibile condividere la libreria tra più dispositivi. per esempio. una volta creati questi pacchetti, puoi metterli nella tua pagina web per essere condivisi tra altri utenti Nokia n900 e ottenere molti amici. :)

1

Se si opera in un ambiente RAM limitata, come un router wireless o qualcosa del genere, aggiungendo di swap può aiutare. Non penso che questo sia esattamente quello che stai cercando, ma se le tue build CPAN stanno esaurendo la memoria o vengono uccise, questo sarà di aiuto.

In un guscio:

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

questo vi darà un file di swap 500MiB. Sul mio router da 128 MB questo ha funzionato bene; Ho messo il file su una pen drive USB allegata.

Problemi correlati