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





От perlfaq8: Как сохранить собственный каталог модулей / библиотек?:
Когда вы создаете модули, сообщите Perl, где установить модули.
Для дистрибутивов на основе C используйте параметр INSTALL_BASE при создании Makefile:
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 для получения подробной информации о том, как запустить новый установлены мудлы.
Однако с INSTALL_BASE есть одно предостережение, поскольку он действует отличается от настроек PREFIX и LIB, которые старые версии ExtUtils :: MakeMaker выступает за. INSTALL_BASE не поддерживает установка модулей для нескольких версий Perl или разных архитектуры в одном каталоге. Вам следует подумать, если вы действительно этого хотите, и если хотите, используйте старые PREFIX и LIB настройки. См. Документацию ExtUtils :: Makemaker для получения более подробной информации.
Посмотрите эта почта от Марка Доминуса
Отрывок:
- Set PREFIX=X when building the Makefile
- Set INSTALLDIRS=vendor and VENDORPREFIX=X when building the Makefile
- Or maybe instead of VENDORPREFIX you need to set INSTALLVENDORLIB or something
- Or maybe instead of setting them while building the Makefile you need to set them while running the make install target
- Set LIB=X/lib when building the Makefile
- Use PAR
- Use local::lib
Марк также дает другое решение в своем блоге, которое занимает немного больше места для описания, но сводится к запуску make и make test, но не к make install, а затем к использованию материала в blib /.
Нет причин возиться с вещами поставщиков. Вы должны оставить INSTALLDIRS как есть, "site" подходит для локально установленных модулей. И используйте INSTALL_BASE, а не PREFIX / LIB.
Вы можете использовать переключатель командной строки -I (заглавная i), за которым следует каталог, в который вы поместите модуль; или попробуйте директиву use lib, за которой следует каталог.
use lib 'directory';
use Parallel::ForkManager;
Когда дело доходит до использования модуля, в командной строке есть переменная среды PERL5LIB и -I. Есть механизмы для сообщения CPAN и CPANPLUS.
Есть информация в вопросе 5 руководства по CPAN (perldoc CPAN, или посмотрите сам CPAN).
Рассмотрите возможность использования cpanminus, предложенного на этот другой поток
perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl
Скачать пакет формы 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
перед этим создайте домашнюю папку для хранения ваших локальных модулей, теперь перейдите в загруженную папку и выполните следующие команды:
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;
- Это должно сработать.
используйте опцию cpanm -l $DIR_NAME.
perlbrew позволяет вам использовать локальный Perl и устанавливать его пакеты в локальный каталог.
\curl -L https://install.perlbrew.pl | bash
perlbrew init # put this in .bash_profile etc
perlbrew install 5.27.11
perlbrew switch 5.27.11
См. Также https://opensource.com/article/18/7/perlbrew.
возможный дубликат Как я могу установить модули CPAN локально без корневого доступа (ошибка строки 229 DynaLoader.pm)?