2009-10-09 2 views
8

Я хотел бы установить модуль Perl (в данном случае, FindBin), но так как он включен в Perl 5.10.1 distribution, cpan хочет установить Perl 5.10 для меня. Есть ли способ установить только модуль через cpan?Как установить модуль CPAN, который находится в последнем Perl, без установки нового Perl?

Единственный вариант, который я вижу, - это installing directly from source, который кажется немного грубым, так как нет отдельного пакета (например, Makefile.PL и т. Д.), Только голый файл .pm.

Поскольку это небольшой модуль, который имеет только один файл, в этом случае это выполнимо, но что, если я захочу установить гораздо больший пакет?

EDIT: Это несколько в стороне от первоначального вопроса, но говорит об общем выпуске модулей упаковано с распределениями Perl: я обнаружил, что «автономный» FindBin (version 1.49) был синтаксической ошибка, поэтому я восстановил version 1.50 из дистрибутива Perl 5.10.1 ... Однако, поскольку модуль теперь указан в CPAN как часть Perl 5.10, я не могу найти файл CHANGES, описывающий, что было изменено/исправлено в этой дельта. Разумно, что я должен идти в репозиторий для разработчиков, чтобы вытащить эту информацию?)


EDIT 2. Хорошо, вот лучший пример. На Perl 5.8.8 У меня есть версия 1.04 Carp. Однако я вижу, что Perl 5.10.1 поставляется в комплекте с версией 1.11. Есть ли способ заставить CPAN установить последнюю версию Carp для меня, не перетаскивая все Perl 5.10.1? Я даже не могу найти ссылку на модуль Carp на CPAN, кроме perl 5.10.1 installation.

+0

Из любопытства, есть ли горящая причина _not_ для установки 5.10? –

+1

Да, потому что моя компания все еще боится этого (т. Е. Мы не проводили достаточно тестирования на нем, чтобы убедиться, что он не нарушит наш код). :) – Ether

+0

PS. Карп теперь находится в v1.18 в строке perl5.13. * И исправляет многие давние проблемы .. но эти преимущества не видны тем, что были в предыдущих версиях Perl. – Ether

ответ

1

Вещи, которые вы можете попробовать включить

  • капельной FindBin.pm в тот же каталог, исполняемый и используя use FindBin
  • капельной FindBin.pm в каталог библиотеки Perl
  • Используя исходный код модуль в сценарии
+0

Как я уже сказал в вопросе: установка источника в мой каталог perl lib выполняется в этом случае, поскольку это небольшой модуль, но это далеко не желательно, как общая практика, и вообще не работает для более широкого распространения. – Ether

+2

Ваш вопрос не говорит об этом. – 2009-10-10 00:57:35

3
> corelist FindBin 

FindBin was first released with perl 5.00307 

Какую версию Perl вы используете который не включает FindBin? Если вы используете хотя бы Perl 5.6.0 (все версии до этого считаются устаревшими), вам не нужно устанавливать FindBin. Если у вас что-то более старое, я предлагаю обновление до 5.6.2/5.8.9/5.10.1.

Kurila не является «автономным» FindBin, это диалект Perl. FindBin не является двойной жизнью и выпущен только в комплекте с Perl. Вы можете рассмотреть возможность открытия FindBin для CPAN как автономного дистрибутива - это легко, если вы использовали ExtUtils :: MakeMaker в прошлом.

Последнее полезное изменение FindBin было 2007-04-28, связанное с VMS. Последние полезные изменения, отличные от VMS, были опубликованы в 2006-10-25.

+0

Спасибо, я попробую на следующей неделе. Я мог бы поклясться, что он еще не установлен в моем дистрибутиве, но я, должно быть, ошибся .. :) – Ether

+0

Вы правы, FindBin сидит там в '/usr/lib/perl5/site_perl/5.8.8/ FindBin.pm', поэтому я не знаю, что я курил раньше. Принимая ответ ... но я все еще удивляюсь: ** как насчет других модулей, которые были перенесены в более поздний дистрибутив? Как их можно установить в более ранние версии perl? ** – Ether

+0

Ether: Большинство модулей, которые были обновлены или добавлены в новые perls, могут быть установлены из CPAN. Для. ex, я поддерживаю два из них: Text :: ParseWords и Win32API :: File. Вы можете обновлять их так же, как и другие. –

Смежные вопросы