Как я могу избежать 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.)