使用'cpan'安装Perl模块时如何避免sudo?

Amb*_*pel 10 perl sudo cpan

我已经从源代码安装了Perl到/ usr/local,并相应调整了我的路径,遵循brian d foy的建议.

我确定我错过了一些东西,但是,现在我正在尝试用'cpan'命令安装东西而且它失败了,因为它无法写入/ usr/local.我必须使用sudo,这对我来说感觉不对.CPAN的东西应该去另一个地方吗?必须使用sudo是正常的吗?

Tel*_*hus 11

如果它真的让您烦恼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/


Gre*_*con 9

/usr/local树已被保护.在sudo那里使用安装软件是完全正常的.

安装到单独的库位置是一个常见问题.请参阅"如何保留自己的模块/库目录?" 在第8节.

主要摘录:

您可以在CPAN.pm配置中进行设置,以便在使用CPAN.pmshell 时模块自动安装在您的私有库目录中:

% cpan  
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl  
cpan> o conf commit
Run Code Online (Sandbox Code Playgroud)

对于Build.PL基于发行版的发行版,请使用--install_base选项:

perl Build.PL --install_base /mydir/perl
Run Code Online (Sandbox Code Playgroud)

您也可以配置CPAN.pm为自动使用此选项:

% cpan  
cpan> o conf mbuild_arg "--install_base /mydir/perl"  
cpan> o conf commit
Run Code Online (Sandbox Code Playgroud)


bri*_*foy 9

在/ usr /本地目录不应该是由一个普通用户可写的,但UNIX安装有许多功能来处理这个问题.

在我的建议中,我建议设置/ usr/local/perls.您可以为该目录提供您喜欢的任何权限.不要将任何权限应用于您需要的更多目录.

我建议设置一个perl组,将自己添加到该组,并使Perl库目录组可写.设置完成后,您不必使用sudo,因为您拥有组权限.

除此之外,您可以调整CPAN.pm配置以sudo在安装阶段使用.查看文档中的命令make_install_make_commandmbuild_install_build_command命令.只需搜索"sudo",你就会找到它们.

祝好运, :)


Sea*_*lan 6

在您的CPAN shell中,将其配置为在sudo下运行make和执行build步骤:

o conf make_install_make_command 'sudo make'
o conf mbuild_install_build_command 'sudo ./Build'
o conf commit
quit
Run Code Online (Sandbox Code Playgroud)

(我在这里找到了这些- 我不是CPAN大师.)