LINUX.ORG.RU

Вопрос чайника о CPAN

 


0

1

Perl предложил загрузить необходимые библиотеки выполнив скрипт Build installdeps при выполнении котрого появился текст

local::lib is installed. You must now add the following environment variables to your shell configuration files (or registry, if you are on Windows) and then restart your command line shell and CPAN before installing modules:

После выполнения скрипта нужно перезапустить шелл ,и «CPAN before installing modules»- что это значит ?


У меня в системе(Gentoo, да) cpan - это отдельный бинарь, из состава пакета dev-lang/perl. Возможно имеется ввиду именно он, но perl-спец из меня - хреновый, поэтому - cast Zlogene

Pinkbyte ★★★★★
()

Просто выйди из шелла. Или другой терминал открой. Это нужно для того, чтобы библиотеки/бинарники искались в переменной окружения ($PATH и специфичные для перла). А под CPAN-ом, как уже сказали выше, и подразумевается установочная утилита. Хотя лучше ставь библиотеки через пакетный менеджер. Вряд ли тебе совершенно необходимы последние версии, а проблем с зависимостями/несовместимостями версий огрести при установке того же Catalyst'a или еще чего-то подобного - как нефиг делать.

ghoust
()

Рекомендую ознакомиться с этим: http://search.cpan.org/perldoc?local::lib

Вкратце, по умолчанию модули из CPAN ставятся в INST_LIB, которая указывает на 3 типовых назначения: perl(system), site, vendor. Сторонние модули лезут обычно в site, системные же это те, которыми заведует дистрибутивщики, а vendor это те, которые поставляет исполнитель заказчику. Кроме самой установки модуля перл также использует переменную PERL5LIB, которая указывает на список директорий, где лежат модули.

Рассмотрим ситуацию, когда установлен один и тот же модуль с разными версиями в site и необходимо дополнительно установить новую версию (локально). Модуль в site установил сис. админ, а ты как обычный пользователь не можешь его переписать просто так, поэтому тебе надо каким-то образом установить модуль с новой версией. Так вот, сам CPAN это позволяет сделать на раз-два. А зачем тогда нужен local::lib? Верно, не зачем! Ибо, автор неосилятор и придумал костыль :) Но костыль имеет несколько плюшек, которыми обычно пользуются лишь мейнтейнеры множества версий одного и того же модуля. Лично я же предпочитаю множество версий перла + свои окружения взамен local::lib.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.