当先锋百科网

首页 1 2 3 4 5 6 7

1104402377324273ce6b81faafb1a5fc.png

狐的传说

perlfaq8中记录了这种方式,这就是local :: lib正在为你做的事情。这也是一个经常被问到的StackOverflow问题:为什么安装某些CPAN模块需要root权限?如何在没有root访问权限的情况下在本地安装CPAN模块(DynaLoader.pm 229行错误)?如何告诉CPAN.pm在特定目录中安装所有模块?如何将CPAN模块安装到本地目录中?如何在没有安装权限的情况下使用新的Perl模块?如何将CPAN用作非root用户?如何使用cpan工具安装本地模块?好奇的是,当我使用你原来的问题标题时,这些都没有被建议(这是一个好标题在找到答案时非常重要的原因之一)。如何保留自己的模块/库目录?构建模块时,请告诉Perl在哪里安装模块。如果要安装模块供自己使用,最简单的方法可能是local :: lib,可以从CPAN下载。它为您设置各种安装设置,并在您的程序中使用相同的设置。如果您想要更灵活,则需要根据您的特定情况配置CPAN客户端。对于基于Makefile.PL的发行版,在生成Makefile时使用INSTALL_BASE选项:perl Makefile.PL INSTALL_BASE=/mydir/perl您可以在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 commitINSTALL_BASE告诉这些工具将您的模块放入/ mydir / perl / lib / perl5。请参阅如何在运行时将目录添加到包含路径(@INC)?有关如何运行新安装的模块的详细信息。但是,INSTALL_BASE有一个警告,因为它的行为与旧版ExtUtils :: MakeMaker所倡导的PREFIX和LIB设置不同。INSTALL_BASE不支持在同一目录下为多个Perl版本或不同体系结构安装模块。您应该考虑是否真的需要它,如果这样做,请使用较旧的PREFIX和LIB设置。有关更多详细信息,请参阅ExtUtils :: Makemaker文档。