Как я могу избежать sudo-ing при установке модулей Perl с помощью "cpan"?

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

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

Ответ 1

Если вам действительно нужно использовать 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/

Ответ 2

Дерево /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

Ответ 3

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

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

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

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

Удачи,:)

Ответ 4

В вашей оболочке 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.)