Forum Webscript.Ru
Программирование => Perl => Тема начата: Wyclef от 09 Октября 2003, 14:28:34
-
Изначально на машине стоял perl 5.6.1, на него были установлены куча модулей. Потом из портов доставили версию 5.8.0 и в @INC все пути поменялись на .../perl5/5.8.0/..., ../site_perl/5.8.0 и т.д., соответственно перл перестал находить ранее установленные модули в lib папке perl\'a 5.6.1.
Так вот, что сделать чтобы в @INC по-умолчанию были также и пути прежнего перла?
Ос - FreeBSD
Thx.
-
push (@INC, "../site_perl/5.8.0");
-
:(
Как в скрипте изменить путь Я ЗНАЮ
По другому: Как глобально переопределить @INC?
-
Установи модули снова. Это единственный правильный путь, т.к. во-первых новому перлу могут понадобиться более новые модули, во-вторых будут копии одних и тех же модулей и перл будет выхватывать первый попавшийся в @INC. Вообщем бардак будет.
А как переделать глобально @INC. Компили с ключами нужными. Другого способа вроде нет (IMHO).
-
Perl 5.6.1 не убили?
тогда в первой строке укажи какой perl использовать -он подхватит "свои" модули.
Но это все порочный путь - все нужно будет переставлять заново.
С CPAN ставить это займет не так много времени и избавит от головной боли в дальнейшем.
-
Компили с ключами нужными.
Пробовал... Бинарник 5.8.0 не компилится под фряхой 5.1 (не только у меня, искал решение - не нашел - поэтому поставил из портов).
Установи модули снова. Это единственный правильный путь, т.к. во-первых новому перлу могут понадобиться более новые модули, во-вторых будут копии одних и тех же модулей и перл будет выхватывать первый попавшийся в @INC. Вообщем бардак будет.
У меня дисрибутив FreeBSD без packeges - поэтому все нужное доустанавлию с фтп, а это трафик...
Мысль: Если старые пути INC (от 5.6.1) добавить после новых (от 5.8.0), доуставновленные модули будут находиться как надо, а стандартные модули возьмутся от 5.8.0 - тоже как надо.
Вот ищу решение...
-
Wyclef:
Бинарник 5.8.0 не компилится под фряхой 5.1
Батенька! Бинарники вообще нигде не компилятся! :D
Wyclef:
У меня дисрибутив FreeBSD без packeges - поэтому все нужное доустанавлию с фтп, а это трафик...
SSH доступ есть? Если да, пользуй lynx.
Wyclef:
Мысль: Если старые пути INC (от 5.6.1) добавить после новых (от 5.8.0), доуставновленные модули будут находиться как надо, а стандартные модули возьмутся от 5.8.0 - тоже как надо.
Я уже говорил. Бардак будет.
Wyclef:
Вот ищу решение...
Вот тут вспомнил. Используя mod_perl глобально в @INC добавлять можно, что хочешь. Но это я не к месту :)
-
Wyclef:
Вот ищу решение...
Забей. Я могу тебе пример DBI и DBD::Proxy привести. Они будут конфликтовать если DBD::Proxy под 5.6 а DBI под 5.8 собрано. Да и фиг его знает сколько грядок с граблями ты найдеш на этом поле...
-
Perl 5.6.1 не убили?
тогда в первой строке укажи какой perl использовать -он подхватит "свои" модули.
Нет не убили. Я думал об этом. Не хочу так делать...
Config.pm как-то учавствует в определении глобавльных переменных перла? Просто там есть пара параметров для определения "otherlibpath" (попробовал изменить) - не сильно помогло, может еще что-то сделать надо?
-
ondr:
Батенька! Бинарники вообще нигде не компилятся!
Я имел ввиду "Binary distributions" или как там они называются - perl-5.8.0.tar.gz скачанный с официального сайта...
NeoNox:
Забей. Я могу тебе пример DBI и DBD::Proxy привести. Они будут конфликтовать если DBD::Proxy под 5.6 а DBI под 5.8 собрано. Да и фиг его знает сколько грядок с граблями ты найдеш на этом поле...
Смысл ясен. Видимо придется заново доустановить необходимое...
-
Wyclef:
Я имел ввиду "Binary distributions" или как там они называются - perl-5.8.0.tar.gz скачанный с официального сайта...
Можно ссылку точную? И ссылку на страницу с ссылкой тоже.
-
ondr
http://www.perl.com/CPAN/src/perl-5.8.0.tar.gz