У нас в одной компании использовался ExtUtils::MakeMaker.<div>Потом начали использовать Module::Build.</div><div><br></div><div>До изучения Module::Install руки банально не дошли.</div><div><br></div><div>При этом использовался скрипт обновления зависимостей, который пробегался по всем pl/pm-скриптам, выбирал оттуда строки вида require, use base, и формировал набор зависимостей.</div>
<div><br></div><div>Позднее он был доработан для автоматического формирования набора зависимостей от портов FreeBSD (а также создания набора файлов для генерации порта).</div><div><br><br><div class="gmail_quote">12 февраля 2010 г. 15:45 пользователь Иван Бессарабов <span dir="ltr">&lt;<a href="mailto:ivan@bessarabov.ru">ivan@bessarabov.ru</a>&gt;</span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Привет!<br>
<br>
Очень хочется найти хороший способ прописывать в единственном месте<br>
все модули на которых построен проект.<br>
<br>
Сейчас смотрю на  Module::Install (<br>
<a href="http://search.cpan.org/~adamk/Module-Install-0.93/lib/Module/Install.pod" target="_blank">http://search.cpan.org/~adamk/Module-Install-0.93/lib/Module/Install.pod</a><br>
) (Спасибо глобусу за то что показал эту штуку =)<br>
<br>
Получается достаточно красиво. Пишешь файл Makefile.PL:<br>
<br>
{{{<br>
use inc::Module::Install;<br>
<br>
name            &#39;JustTesting&#39;;<br>
license         &#39;perl&#39;;<br>
requires        &#39;XML::Simple&#39;;<br>
requires        &#39;Geo::IP::RU::IpGeoBase&#39;;<br>
auto_install;<br>
WriteAll;<br>
}}}<br>
<br>
Дальше делаешь<br>
{{{<br>
perl Makefile.PL<br>
sudo make<br>
}}}<br>
<br>
и он все ставит. Все отлично кроме нескольких моментов: при этом<br>
создается куча файлов. Можно сказать &quot;make clean&quot; и он немного за<br>
собой почистит, но все равно останутся следующие файлы:<br>
{{{<br>
.<br>
|-- META.yml<br>
|-- Makefile.old<br>
`-- inc<br>
    `-- Module<br>
        |-- AutoInstall.pm<br>
        |-- Install<br>
        |   |-- AutoInstall.pm<br>
        |   |-- Base.pm<br>
        |   |-- Include.pm<br>
        |   `-- Metadata.pm<br>
        `-- Install.pm<br>
}}}<br>
<br>
В связи с этим у меня есть вопросы:<br>
1. Правильный ли я инструмент использую, может быть все это делается<br>
гораздо проще и лучше<br>
2. Что делать с файлами которые остались после perl Makefile.PL ?<br>
<br>
PS вообще, конечно, есть соблазн просто написать файл install_dep.sh<br>
следующего содержания:<br>
{{{<br>
cpan -i XML::Simple Geo::IP::RU::IpGeoBase<br>
}}}<br>
<br>
=)<br>
<font color="#888888">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></blockquote></div><br></div>