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

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

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

Спасибо

JD

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
28
1
23 470
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Ответ принят как подходящий

От 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.

Schwern 06.11.2008 09:36

Вы можете использовать переключатель командной строки -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.

Другие вопросы по теме