[Moscow.pm] Установка модуля.

Ruslan Zakirov ruz на bestpractical.com
Вт Авг 26 08:58:41 PDT 2008


2008/8/26 Orlovsky Alexander <nordicdyno на yandex.ru>:
> Здравствуйте, уважаемые Perl монгеры.
> Изучаю создание Perl модулей. Смотрю разные модули на CPAN, которые помогают в этом деле: посмотрел MakeMaker и сейчас смотрю Module::Install (правда про этот модуль читал, что он еще недостаточно стабилен). Module::Install нравится тем, что умеет ставить зависимости из CPAN. (Возможно в MakeMaker тоже можно как то это сделать, но я не умею)
>
> Чего мне хочется. Я хочу создать локальный дистрибутив, при сборке и установке которого тянутся и собираются все CPAN-зависимости (и возможно не только cpan, но это уже следующий этап).

Их можно тянуть и по другому. Можно самому загрузить модуль CPAN и
заставить его поставить нужные модули в систему.

> А сам модуль ставится в некий локальный каталог (не трогая никакие системные папки).
> Есть пара простых вроде бы на первый взгляд вопросов, но ответы на которые я пока не нашел. (Возможно слишком много информации сразу :)
> Итак, вопросы.
>
> 1. Для того чтобы установить модуль в заданную папку (make install) можно сказать perl Makefile.PL PREFIX=/mydir .
> А что нужно прописать в Makefile.PL, чтобы при условии, если PREFIX не указан, установка по умолчанию производилась в /mydir?
BEGIN { $ENV{'PREFIX'} ||= '/mydir' }

>
> (В MakeMaker-е можно задать пути в параметрах WriteMakefile(), но это тоже не очень хорошо, т.к. если будет задан PREFIX? то он наверное будет проигнорирован)
>
> 2 После установки модуля локально, хотелось бы иметь возможность его удалить.
> Как задать такое правило?

Никак... Это дело дистрибутива. Делайте rpm, deb, ebuild'ы и прочее.
Ставьте их. Будет вам "счастье".

>
> make uninstall
> выдает такое:
>
> Uninstall is unsafe and deprecated, the uninstallation was not performed.
> We will show what would have been done.
>
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> ERROR: no packlist file found: '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/MyACME/Module/.packlist'
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> make: *** [uninstall_from_sitedirs] Error 2
>
> shell returned 2
>
> наверное лучше всего написать свое правило.. подскажите как? :)
Оно вам надо?


> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Best regards, Ruslan.


Подробная информация о списке рассылки Moscow-pm