FastNetMon

Friday 29 January 2010

Сборка PAR пэкаджа для Catalyst приложения

Как известно, Каталист имеет туеву кучу зависимостей и развернуть его на системе, где разработка на перле производится впервые довольно проблематично и может вылиться часа в 3 времени, решение задачи довольно очевидно -- собрать все нужные модули и засунуть в архив вместе с аппликацией. Впрочем, так и поступает PAR (Perl Archive Toolkit), их офсайт тут: http://par.perl.org

Но, как многие могли догадаться, проблем мы огребём по полной в случае завязывания приложения на XS модули, которые, во-первых, не так легко перетащить, а во-вторых, не так легко заставить работать под разными платформами (у меня, например, рабочая машинка 32 битная, а почти все на работе -- 64 битные). Но на наше счастье, Каталист не требует XS расширений (разве что опциональное XS Stash для Template Toolkit). Ладно, давайте проверим PAR в деле, а там разберемся, какие проблемы вылезут.

Ставим сам PAR: sudo cpan PAR PAR::Packer
Собираем пэкадж: переходим в папку с нашим Каталист проектом и вызываем: perl Makefile.PL после этого запускаем make catalyst_par и ждём, пока Пэкадж соберётся.

Следовало бы заметить, что PAR пэкадж запустится далеко не на любой системе, по крайней мере нам будет нужен Perl и сам PAR (в идеале, конечно же, было бы заиметь его в менеджере пакетов, тогда развертывание Перл приложений вообще превратилось в нечто сверх банальное).

Не знаю как у вас, но у меня PAR пэкадж собрался и весит 1,7 мегабайта, что же, попробуем его запустить! Для запуска используется программа "parl" (отличие от "perl" во второй букве), ну что пускаем!

После запуска видим нечто вот такое:

parl catalystapp.par
Usage:
[parl] catalystapp[.par] [script] [arguments]

Examples:
parl catalystapp.par catalystapp_server.pl -r
myapp catalystapp_cgi.pl

Available scripts:
catalystapp_cgi.pl
catalystapp_create.pl
catalystapp_fastcgi.pl
catalystapp_server.pl
catalystapp_test.pl


Как подсказывает хелп, пускать надо вот так: parl catalystapp.par catalystapp_server.pl -p 80, делаем это и вуаля! Каталист аппликация пустилась и отлично работает! =)

Ну что же, попробую сейчас сделать наконец-то таки панель для нашего хостинга и проверить её развертывание таким образом.

Да, кстати, по поводу огребания от XS -- PAR складывает .so модули в папочку по имени /lib/auto/ (папочку?! да, вы угадали, PAR -- это обычный архив). Вот интересный вопрос будет, что произойдёт при запуске на платформе другой архитектуры, что же, это мы попробуем прямо сейчас, но опишу в другом посте.

No comments :

Post a Comment

Note: only a member of this blog may post a comment.