Я начал свою текущую работу в качестве стажера веб-разработки. Парень, который учил меня, ушел на полпути, и я, по сути, остался в дерьмовом ручье только с гугл-веслом, так как почти нет документации о том, как запустить какой-либо из серверов. Вместо разработки я теперь в основном поддерживаю программное обеспечение на серверах, включая корпоративную сеть 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';
(как здесь ответили)