Назад | Перейти на главную страницу

Виртуальные среды Perl?

Справочная информация (не обязательно для чтения)

Я начал свою текущую работу в качестве стажера веб-разработки. Парень, который учил меня, ушел на полпути, и я, по сути, остался в дерьмовом ручье только с гугл-веслом, так как почти нет документации о том, как запустить какой-либо из серверов. Вместо разработки я теперь в основном поддерживаю программное обеспечение на серверах, включая корпоративную сеть Intranet.

Ситуация

Я привык работать с Python, но в настоящее время у нас есть Интранет для разработчиков, который не работает и, похоже, работает или, по крайней мере, запускается на Perl-скриптах. На сервере работает Solaris 10.

Я пытаюсь запустить файл .pl, но система жалуется, что не может найти LWP/Simple.pm

LWP/Simple.pm есть, но под другой версией Perl.

perl / lib / site_perl / 5.6.1 / LWP / Simple.pm

Но текущая версия:

@INC:

/usr/perl5/5.8.4/lib/sun4-solaris-64int
/usr/perl5/5.8.4/lib
/usr/perl5/site_perl/5.8.4/sun4-solaris-64int
/usr/perl5/site_perl/5.8.4
/usr/perl5/site_perl
/usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int
/usr/perl5/vendor_perl/5.8.4
/usr/perl5/vendor_perl

bash-3.00 # perl -V

Краткое содержание моего perl5 (ревизия 5 версия 8 subversion 4)

Я очень неохотно устанавливаю что-либо новое, так как это ДОЛЖНО быть начато раньше, поэтому все должно быть на месте. Мне просто нужно понять, как все это работает. Является @INC лайк LD_LIBRARY_PATH?

Как бы вы переключили текущую версию? Есть ли что-нибудь для Perl, похожее на virtualenv?

Я пытался объявить версию Perl, но это дает то же сообщение об ошибке:

perl/bin/perl5.6.1 bin/emwd.pl

Фактическая ошибка:

Can't locate LWP/Simple.pm in @INC (@INC contains: /ade_autofs/ade/perl/bin/Solaris/Opt/lib/5.6.1/sun4-solaris /ade_autofs/ade/perl/bin/Solaris/Opt/lib/5.6.1 /ade_autofs/ade/perl/bin/Solaris/Opt/lib/site_perl/5.6.1/sun4-solaris /ade_autofs/ade/perl/bin/Solaris/Opt/lib/site_perl/5.6.1 /ade_autofs/ade/perl/bin/Solaris/Opt/lib/site_perl .) at bin/emwd.pl line 173. BEGIN failed--compilation aborted at bin/emwd.pl line 173.

Кажется прямолинейным, но я не уверен, что мне нужно менять @INC

Здесь две вероятные вещи:

1) есть ли Perl по другому пути? Может быть, он оттуда запускается вручную.

2) ваш LD_LIBRARY_PATH эквивалент PERL5LIB. Осмотрите и посмотрите, есть ли что-нибудь, что это настраивает.

после того, как вы это выясните, пора начать делать себе весло получше :) Есть много вариантов, включая создание полного дерева библиотеки под путем, а затем использование PERL5ENV или даже создать свои собственные автономные библиотеки perl + и использовать их во всех ваших скриптах.

Ах да - Солярис! Я подозреваю, что он работает под управлением not-your-system-perl. Проверить /opt/csw/bin/perl или похожие. Мы делаем это на нашем единственном хосте Solaris - вызываем csw perl для того, что мы хотим запустить, и оставляем системный Perl в покое.

Как бы вы переключили текущую версию? Есть ли что-нибудь для Perl, похожее на virtualenv?

Да, Perlbrew виртуальный эквивалент Perl.

Лучше всего использовать Perlbrew, как указано морская звезда, и запустите сценарий в новой среде.

Вы также можете установить LWP::Simple в местном каталоге, скажем /home/falcon, и добавьте эту строку в начало вашего скрипта use lib '/home/falcon'; (как здесь ответили)