2010-01-09 60 views

回答

9

/usr/local树被保护。使用sudo在那里安装软件是非常正常的。

安装到单独的库位置是一个常见问题。见"How do I keep my own module/library directory?"在第8

重点摘录:

您可以在CPAN.pm配置时使用CPAN.pm shell设置此所以模块在你的私人图书馆目录自动安装:

% 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 
+1

我认为他已经这样做了。常见问题解答中的建议对此不足。有一个mbuild_install_build_command和一个make_install_make_command选项,您可以在其中将sudo设置为在安装步骤中使用的命令。 – 2010-01-09 10:04:42

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/ 
+1

local :: lib的问题是在同一时间维护不同的perls。如果您想按照我的建议完全隔离安装,则不希望将不同perls的模块安装在同一目录中。 – 2010-01-09 10:11:10

9

在/ usr /本地目录不应该由普通用户写入,但Unix设置有许多功能来处理这个问题。

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

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

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

祝你好运:)

6

在你CPAN壳,将其配置为运行在须藤makebuild步骤:

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

(我发现这些here - 我不是CPAN大师)