Подтвердить что ты не робот

Как я могу использовать новый модуль Perl без разрешения на установку?

Вот моя ситуация: я почти ничего не знаю о Perl, но это единственный язык, доступный на портирующей машине. У меня только разрешения для записи в моей локальной рабочей области, а не в месте установки Perl. Мне нужно использовать Parallel:: ForkManager Модуль Perl из CPAN

Как использовать этот Parallel:: ForkManager без центральной установки? Есть ли переменная окружения, которую я могу установить так, чтобы она находилась?

Спасибо

JD

4b9b3361

Ответ 1

Из perlfaq8: Как сохранить собственный каталог модулей/библиотек?:

Когда вы создаете модули, расскажите Perl, где устанавливать модули.

Для распределений на основе C используйте опцию INSTALL_BASE при создании Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

Вы можете установить это в конфигурации CPAN.pm, чтобы модули автоматически устанавливали в вашем личном библиотечном каталоге, когда вы используете оболочку CPAN.pm:

% cpan
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl
cpan> o conf commit

Для распределений на основе C используйте параметр --install_base:

perl Build.PL --install_base /mydir/perl

Вы также можете настроить CPAN.pm для автоматического использования этой опции:

% cpan
cpan> o conf mbuild_arg --install_base /mydir/perl
cpan> o conf commit

INSTALL_BASE сообщает этим инструментам о включении ваших модулей в F. См. L для получения подробных сведений о том, как запустить свой новый установленных moudles.

Существует одна оговорка с INSTALL_BASE, хотя, поскольку она действует иначе, чем настройки PREFIX и LIB, что более старые версии ExtUtils:: Защитник MakeMaker. INSTALL_BASE не поддерживает установка модулей для нескольких версий Perl или разных архитектуры в том же каталоге. Вы должны подумать, действительно хотите, и если вы это сделаете, используйте более старые PREFIX и LIB Настройки. Дополнительную информацию см. В документации ExtUtils:: Makemaker.

Ответ 2

Отметьте этот пост от Марка Домина

Выдержки:

  • Установите PREFIX = X при создании Makefile
  • Установите INSTALLDIRS = vendor и VENDORPREFIX = X при создании Makefile
    • Или, может быть, вместо VENDORPREFIX вам нужно установить INSTALLVENDORLIB или что-то
    • Или, может быть, вместо того, чтобы устанавливать их при создании Makefile, вам нужно установить их при запуске make make target
  • Установить LIB = X/lib при создании Makefile
  • Использовать PAR
  • Использовать локальные:: lib

Mark также дает другое решение в своем блоге, которое занимает немного больше места для описания, но сводится к запуску make и делает тест, но не делает установку, а затем использует материал в blib/.

Ответ 3

Загрузить пакетную форму CPAN в папку:

wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Parallel-ForkManager-1.06.tar.gz
gunzip Parallel-ForkManager-1.06.tar.gz
tar -xvf Parallel-ForkManager-1.06.tar

перед этим создайте папку для дома, чтобы сохранить локальные модули, теперь перейдите в загруженную папку и запустите cmlands:

perl Makefile.PL PREFIX=/home/username/myModules
make
make test
make install

получить путь к ForkManager из установленной папки, /home/username/myModules и найдите папку Parallel и получите полный путь к этому.

Теперь в вашем файле perl поместите их в начало

use lib '/home/username/myModules/bin.../Parallel';
use parallel::ForkManager;

- Это должно сделать это.

Ответ 4

Здесь есть переменная среды PERL5LIB и -I в командной строке, когда дело доходит до использования модуля. Существуют механизмы для показа CPAN и CPANPLUS.

В главе 5 руководства CPAN имеется информация (perldoc CPAN или посмотрите CPAN).

Ответ 5

use lib 'directory';
use Parallel::ForkManager;

Ответ 6

Вы можете использовать ключ командной строки -I (capital i), за которым следует каталог, в который вы поместите модуль; или попробуйте директиву "use lib", за которой следует каталог.

Ответ 8

perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl

Ответ 9

используйте параметр cpanm -l $DIR_NAME.