我已经从源代码安装的Perl到/ usr/local和相应的调整我的路径,下面brian d foy's suggestion here.如何在使用'cpan'安装Perl模块时避免使用sudo?
我敢肯定,我失去了一些东西,但现在我想用“CPAN安装的东西'命令,并且因为无法写入/ usr/local而失败。我必须使用sudo,这对我来说感觉不对。 CPAN的东西应该去另一个地方?必须使用sudo是否正常?
我已经从源代码安装的Perl到/ usr/local和相应的调整我的路径,下面brian d foy's suggestion here.如何在使用'cpan'安装Perl模块时避免使用sudo?
我敢肯定,我失去了一些东西,但现在我想用“CPAN安装的东西'命令,并且因为无法写入/ usr/local而失败。我必须使用sudo,这对我来说感觉不对。 CPAN的东西应该去另一个地方?必须使用sudo是否正常?
/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
如果真的困扰你使用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/
local :: lib的问题是在同一时间维护不同的perls。如果您想按照我的建议完全隔离安装,则不希望将不同perls的模块安装在同一目录中。 – 2010-01-09 10:11:10
的在/ usr /本地目录不应该由普通用户写入,但Unix设置有许多功能来处理这个问题。
在我的建议下,我建议设置/usr/local/perls。您可以为该目录提供您喜欢的任何权限。不要将任何权限应用于超出您需要的更多目录。
我建议设置一个perl
组,将自己添加到该组中,并使Perl库目录组成为可写。安装完成后,您不必sudo,因为您拥有组权限。
除此之外,您可以调整您的CPAN.pm配置以在安装阶段使用sudo
。查阅文档中的make_install_make_command
和mbuild_install_build_command
命令。只需搜索“sudo”,就可以找到它们。
祝你好运:)
在你CPAN壳,将其配置为运行在须藤make
和build
步骤:
o conf make_install_make_command 'sudo make'
o conf mbuild_install_build_command 'sudo ./Build'
o conf commit
quit
(我发现这些here - 我不是CPAN大师)
我认为他已经这样做了。常见问题解答中的建议对此不足。有一个mbuild_install_build_command和一个make_install_make_command选项,您可以在其中将sudo设置为在安装步骤中使用的命令。 – 2010-01-09 10:04:42