我已将 Perl 从源代码安装到 /usr/local,并按照brian d foy 的建议在这里相应地调整了我的路径。
我确定我遗漏了一些东西,但是,现在我正在尝试使用“cpan”命令安装东西,但它失败了,因为它无法写入 /usr/local。我必须使用 sudo,这对我来说感觉不对。CPAN 的东西应该去另一个地方吗?必须使用 sudo 是否正常?
我已将 Perl 从源代码安装到 /usr/local,并按照brian d foy 的建议在这里相应地调整了我的路径。
我确定我遗漏了一些东西,但是,现在我正在尝试使用“cpan”命令安装东西,但它失败了,因为它无法写入 /usr/local。我必须使用 sudo,这对我来说感觉不对。CPAN 的东西应该去另一个地方吗?必须使用 sudo 是否正常?
如果它真的让您感到困扰sudo
,您可以local::lib
在您的主目录中使用和安装模块 - 您不需要超级用户权限。
也就是说,它不应该打扰你使用sudo
. 没有什么必然是错的。正如 Gbacon 所说,如果要安装,则需要它,/usr/local
因为它由系统上的所有/usr/local
用户共享(因此它的权限反映了这一点):
Telemachus ~ $ ls -ld /usr/local/ drwxr-xr-x 17 根轮 578 Jan 8 20:00 /usr/local/
/ usr/local目录不应该被普通用户写入,但是 Unix 设置有很多功能可以处理这个问题。
在我的建议中,我建议设置/usr/local/perls。您可以授予该目录任何您喜欢的权限。不要对超出您需要的目录应用任何权限。
我建议建立一个perl
组,将自己添加到该组,并使 Perl 库目录组可写。设置完成后,您无需 sudo,因为您拥有组权限。
除此之外,您可以调整 CPAN.pm 配置以sudo
在安装阶段使用。查看文档中的make_install_make_command
andmbuild_install_build_command
命令。只需搜索“sudo”,您就会找到它们。
祝你好运, :)
树/usr/local
受到保护。sudo
使用在那里安装软件是完全正常的。
安装到单独的库位置是一个常见问题。请参阅“如何保留我自己的模块/库目录?” 在第 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
在您的 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
(我在这里找到了这些——我不是 CPAN 专家。)