В свеже установленном debian 6 PERL не находит стандартные модули

D
На сайте с 05.06.2007
Offline
155
1068

Дебиан свеженький, дополнительно ставился пакет libwww-perl, возможно проблема появилась после обновления пакетов. Perl не находит модули, нормального решения проблемы и почему это так происходит, я не нашёл :(

perl -e 'use Setup;'

Can't locate Setup.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1

/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at -e line 1.

BEGIN failed--compilation aborted at -e line 1.

Поиск даёт результат:

find /usr -name Setup.pm

/usr/share/perl/5.10.1/CPANPLUS/Configure/Setup.pm

Проблема видимо в том что в бинарнике заданы пути в переменной @INC для /usr/share/perl/5.10

А у нас якобы версия поновее /usr/share/perl/5.10.1

dir -la /usr/share/perl/
total 20
drwxr-xr-x 3 root root 4096 Feb 9 15:40 .
drwxr-xr-x 108 root root 4096 Jul 30 12:15 ..
lrwxrwxrwx 1 root root 6 Jun 20 15:37 5.10 -> 5.10.1
drwxr-xr-x 53 root root 12288 Jul 16 21:21 5.10.1

Как вы видите, линковка с 5.10 на 5.10.1 уже есть.

Но почему perl не видит эти модули, получается он не учитывает при поиске перелинковку?

Я даже не знаю как правильно исправить эту ситуацию, кроме как копировать все файлы из 5.10.1 в 5.10.

Надеюсь кто-нибудь имел дело с подобным и может помочь в этом вопросе. :popcorn:

Написал не мало шедевров ;)
iHead
На сайте с 25.04.2008
Offline
137
#1

А с чего, вы взяли, что

perl -e 'use Setup;'

должен быть найден в @INC, если он находится не в @INC?

Вот так

perl -e 'use CPANPLUS::Configure::Setup;'

нет будет ошибок.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
D
На сайте с 05.06.2007
Offline
155
#2

Недостаточное знание перла отыгралось на мне :)

Дело в том что есть скрипт пользователя который закодирован, и он выдаёт такую ошибку:

(а на другом хостинге он работает)

/home/user/html/www/cgi-bin/main.pl
Can't locate Setup.pm in @INC (@INC contains: ./mods /etc/perl /usr/local/lib/perl/5.10.0
/usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 10) line 7.
BEGIN failed--compilation aborted at (eval 10) line 8.

Вероятно имеется ввиду совсем другой фаил Setup.pm, попробую раскодировать скрипт чтоб понять ...

Спасибо за наводку ;)

iHead
На сайте с 25.04.2008
Offline
137
#3

да, скорее всего имеется в виду пользовательский Setup.pm, а не системный.

D
На сайте с 05.06.2007
Offline
155
#4

Раскодировав этот странный скрипт который закодирован 10 раз eval'ом, В более менее читаемом виде нашёл:

sub BEGIN{no warnings;require Setup;do{"\x53\x65\x74\x75\x70"->import ("\x25\x63\x6f\x6e\x66\x69\x67")};}

а в его аккаунте где скрипт

/home/user/html/www/cgi-bin/main.pl

этот модуль лежит тут:

/home/user/html/www/cgi-bin/mods/Setup.pm

Вообещм не знаю почему он не грузится, не стоит тратить столько сил на этот скрипт.

rtyug
На сайте с 13.05.2009
Offline
263
#5

путь надо прописать:

 perl -M'lib "/home/user/html/www/cgi-bin/mods"' -e 'use Setup;'

Can't locate Setup.pm in @INC (@INC contains: /home/user/html/www/cgi-bin/mods /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий