Как я могу избежать sudo-при установке модулей Perl с 'cpan'? - PullRequest
10 голосов
/ 09 января 2010

Я установил Perl из источника в / usr / local и скорректировал свой путь соответственно, следуя предложению Брайана Д Фоя.

Я уверен, что что-то упустил, но сейчас я пытаюсь установить что-то с помощью команды 'cpan', и это не удается, потому что он не может записать в / usr / local. Я должен использовать sudo, что мне не нравится. Должен ли материал CPAN перейти в другое место? Нормально ли использовать sudo?

Ответы [ 4 ]

11 голосов
/ 09 января 2010

Если вам действительно надо использовать sudo, вы можете использовать local::lib и устанавливать модули в своем домашнем каталоге - там, где вам не нужны привилегии суперпользователя.

Тем не менее, вас не должно беспокоить использование sudo. В этом нет ничего плохого. Как говорит Gbacon, вам это нужно, если вы хотите установить в /usr/local, потому что /usr/local совместно используется всеми пользователями в системе (и поэтому его разрешения отражают это):

    telemachus ~ $ ls -ld /usr/local/
    drwxr-xr-x 17 root wheel 578 Jan  8 20:00 /usr/local/
9 голосов
/ 09 января 2010

Каталог / usr / local не должен быть доступен для записи обычному пользователю, но в настройках Unix есть много возможностей для этого.

В своем совете я предложил настроить / usr / local / perls . Вы можете дать этому каталогу любые разрешения, какие захотите. Не применяйте никаких разрешений для большего количества каталогов, чем вам нужно.

Я предлагаю создать группу perl, добавить себя в эту группу и сделать группу каталогов библиотеки Perl доступной для записи. После настройки вам не нужно выполнять sudo, потому что у вас есть права доступа группы.

Кроме того, вы можете настроить конфигурацию CPAN.pm для использования sudo на этапах установки. Ознакомьтесь с командами make_install_make_command и mbuild_install_build_command в документации. Просто найдите «sudo», и вы найдете их.

Удачи,:)

9 голосов
/ 09 января 2010

Дерево /usr/local защищено. Для установки программного обеспечения совершенно нормально использовать sudo.

Часто задаваемый вопрос - установка в отдельную библиотеку. См. «Как мне сохранить собственный каталог модуля / библиотеки?» в разделе 8.

Отрывок ключа:

Вы можете установить это в конфигурации CPAN.pm, чтобы модули автоматически устанавливались в каталог вашей частной библиотеки при использовании оболочки CPAN.pm:

% cpan  
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl  
cpan> o conf commit

Для дистрибутивов на основе Build.PL используйте параметр --install_base:

perl Build.PL --install_base /mydir/perl

Вы можете настроить CPAN.pm на автоматическое использование этой опции:

% cpan  
cpan> o conf mbuild_arg "--install_base /mydir/perl"  
cpan> o conf commit
6 голосов
/ 26 марта 2012

В вашей оболочке CPAN настройте ее для выполнения шагов make и build под sudo:

o conf make_install_make_command 'sudo make'
o conf mbuild_install_build_command 'sudo ./Build'
o conf commit
quit

(я нашел эти здесь - я не гуру CPAN.)

...