Как я могу установить локальные модули с помощью инструмента cpan? - PullRequest
4 голосов
/ 09 октября 2009

мой админ дал мне права sudo для

cpan

Мне также нужно установить пару не-CPAN модулей (Atlassian Crowd -> SVN-коннектор) в глобальный PERL5LIB.

Я смутно помню, что cpan может устанавливать из локальных источников, не вытягивая модули из Интернета.

какие-нибудь указатели? я могу сделать это, или мне просто нужно, чтобы он установил эти модули вручную как пользователь root (для меня это большая проблема)? спасибо!

Ответы [ 3 ]

8 голосов
/ 09 октября 2009

Если вы хотите установить дистрибутив Perl в текущем каталоге, используйте точку вместо имени файла:

 cpan .

Если вы используете одну из последних версий программы cpan (не ту, которая в настоящее время поставляется с CPAN.pm), вы можете использовать ключ -j, чтобы указать альтернативный файл конфигурации, где вы может устанавливать директивы --install_base или INSTALL_BASE, а также устанавливать значения для таких опций, как connect_to_internet_ok.

 cpan -j /path/to/Config.pm Foo::Bar

Если вы хотите изменить текущую конфигурацию, чтобы создать альтернативный файл конфигурации, используйте -J, чтобы получить текст файла:

 cpan -J

В идеале, вместо предоставления привилегий суперпользователя, этот системный администратор должен был бы создать группу для администраторов Perl, указать каталог для установок модулей, принадлежащих этой группе, и добавить вас в эту группу. Тебе не понадобятся какие-то особые силы.

1 голос
/ 09 октября 2009

На самом деле вам не нужен ваш администратор, чтобы дать вам права на установку модулей CPAN. На самом деле local :: lib является лучшим решением по ряду причин.

1 голос
/ 09 октября 2009

права sudo на cpan -i должны помочь:

bash-3.2$ cpan -i Foo::Bar
CPAN: File::HomeDir loaded ok (v0.80)
CPAN: Storable loaded ok (v2.18)
...

Я не знаком с установкой из файлов через скрипт cpan. В оболочке cpan вы можете look зайти в каталог модуля и вручную собрать / установить оттуда, если хотите, но оригинальный tar-файл все еще поступил из хранилища, и командная строка cpan, похоже, не имеет этой функции я сомневался, что администратор получит большие права на него с тех пор, как у вас будет корневая оболочка).

Обновление: Брайан Д. Фой говорит, что я ошибаюсь, что присвоение sudo команде cpan аналогично предоставлению корневой оболочки - вот почему я прав:

bash-3.2# whoami
aufflick
bash-3.2# sudo cpan
cpan[1]> o conf shell bash
cpan[2]> look Acme::Bleach
..... downloads and extracts Acme::Bleach ...
CPAN: File::Temp loaded ok (v0.18)
Working directory is /Users/aufflick/.cpan/build/Acme-Bleach-1.12-v768Dv
bash-3.2# whoami
root
bash-3.2# 
...