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

arto artur+moscow.pm.org на niif.spb.su
Вт Авг 26 12:33:26 PDT 2008


On Tue, 26 Aug 2008, Orlovsky Alexander wrote:

> Date: Tue, 26 Aug 2008 19:32:59 +0400
> From: Orlovsky Alexander <nordicdyno на yandex.ru>
> Reply-To: Moscow.pm group <moscow-pm на pm.org>
> To: Moscow pm group <moscow-pm на pm.org>
> Subject: [Moscow.pm] Установка модуля.
>
> Здравствуйте, уважаемые Perl монгеры.
> Изучаю создание Perl модулей. Смотрю разные модули на CPAN, которые помогают в этом деле: посмотрел MakeMaker и сейчас смотрю Module::Install (правда про этот модуль читал, что он еще недостаточно стабилен). Module::Install нравится тем, что умеет ставить зависимости из CPAN. (Возможно в MakeMaker тоже можно как то это сделать, но я не умею)
>
> Чего мне хочется. Я хочу создать локальный дистрибутив, при сборке и установке которого тянутся и собираются все CPAN-зависимости (и возможно не только cpan, но это уже следующий этап).
> А сам модуль ставится в некий локальный каталог (не трогая никакие системные папки).
> Есть пара простых вроде бы на первый взгляд вопросов, но ответы на которые я пока не нашел. (Возможно слишком много информации сразу :)
> Итак, вопросы.
>
> 1. Для того чтобы установить модуль в заданную папку (make install) можно сказать perl Makefile.PL PREFIX=/mydir .
> А что нужно прописать в Makefile.PL, чтобы при условии, если PREFIX не указан, установка по умолчанию производилась в /mydir?

  perldoc ExtUtils::MakeMaker, на предмет INSTALL_BASE

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

  проверяйте параметры в Makefile.PL

> 2 После установки модуля локально, хотелось бы иметь возможность его удалить.
> Как задать такое правило?
>
> 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
>
> наверное лучше всего написать свое правило.. подскажите как? :)

  на CPAN не находится MyACME::Module


-- 
От смерти нельзя убежать, ее можно только догнать.


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