Каковы ваши приемы для ускорения CPAN на ограниченных ресурсных устройствах?
Недавно я пытался обновить несколько модулей Perl на своем мобильном телефоне (nokia n900) и установить последнюю копию Module::Build
в течение часа.
В большинстве случаев (70%), по-видимому, проводились синтаксический анализ и индексирование информации репозитория.
Кажется, есть несколько вариантов, например, не каждый раз восстанавливать кеш индекса, или использовать CPAN:: SQLite.
Я хотел бы продолжать использовать CPAN на устройстве, а не устанавливать модули вручную. Поэтому мне интересно, какие методы у людей были успешными на аналогичных ограниченных ресурсных устройствах (медленный процессор, ограниченный барабан, медленный диск (flash))?
Ответы
Ответ 1
Я считаю, что это была одна из основных причин, по которым Miyagawa создал cpanminus
.
Из POD:
Другой установщик CPAN?
ОК, первая мотивация была такой: оболочка CPAN исчерпывает память (или сильно меняет местами и становится очень медленной) на самом доступном плане Slicehost/linode с 256 МБ ОЗУ. Должен ли я платить больше за установку модулей perl из CPAN? Я так не думаю.
Я не использовал cpanm
на ограниченном ресурсном устройстве/машине, но я использовал его исключительно на своем Perl 5.12 dev и его мечта!
/I3az/
Ответ 2
Если модуль является чистым Perl (т.е. не имеет компонентов XS и не требует компиляции библиотеки), вы можете установить пакет на другой компьютер другой операционной системы в local::lib, а затем просто скопируйте этот каталог на свое устройство.
В противном случае (если необходима компиляция), тот же метод можно использовать только для сборки модуля один раз, пока вы устанавливаете его на устройстве той же архитектуры; после этого вы можете обмениваться библиотекой между несколькими устройствами. например как только вы создадите эти пакеты, вы можете разместить их на своей веб-странице, чтобы их можно было использовать среди других пользователей Nokia n900, и получить много друзей.:)
Ответ 3
Если вы работаете в среде с ограниченным ОЗУ, например, в беспроводном маршрутизаторе или что-то еще, может помочь своп. Я не думаю, что это совсем то, что вы ищете, но если ваши сборки 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.