Answers:
在Debian和Ubuntu上,CPAN(/usr/bin/cpan
实用程序)/usr/local/lib/
默认情况下会将模块安装到其中。并且debian软件包将文件保存在/usr/share/perl5/
和中/usr/lib/perl5/
。因此,通过安装的/usr/bin/cpan
文件不会覆盖通过apt安装的文件。
使用系统perl没什么错,混合apt和cpan代码通常可以正常工作。
您也可以选择手动打包apt存储库中不可用的任何cpan发行版。借助dh-make-perl工具很容易:
dh-make-perl --cpan Some::Module && cd Some-Module* && sudo debi
/usr/local/share
针对纯perl模块和/usr/local/lib
xs的东西。
我用perlbrew。它会安装Perl和cpan的本地版本。它所做的一切都在您的主目录中完成。安装和使用它很简单,您可以安装最新版本的Perl。
直接从CPAN安装时,我建议使用local :: lib到您私有的目录中。参见增强技术https://metacpan.org/module/local::lib
这样,CPAN安装的模块将仅由您的用户使用,并且与使用APT安装的模块有非常清晰的区分。
如果遇到任何问题或升级Ubuntu时,它也将使摆脱CPAN安装的模块变得容易。
这就是我在Ubuntu上使用它的方式。
您可以同时使用它们,但是它们会冲突。它们被写到同一位置,因此,如果您从apt安装某些东西,然后从cpan安装更高版本,则可能会使事情变得困难。
我并没有做太多的Perl,但是在Python中我确实遇到了您正在谈论的难题:apt-vs-PyPI。只要有可能,我都会亲自选择合适的方式。这意味着我应该获得更新,而不必记住要维护每个单独的Python包。不仅如此,这还意味着我所有的系统都应在这些软件包的相同版本上运行。
它并不总是可行。有时您在回购协议中没有足够新的东西,或者只是没有打包您需要的东西。两种方法都不完美,但我相信会更完美。只要知道自己在做什么,就应该可以了。
编辑 -几乎忘记了,有一种更好的方法可以将内容分段,以便系统可以拥有自己的环境,而无论您开发什么内容,都可以在自己的环境中(完全由CPAN管理),就像Python一样virtualenv
。
/programming/1423879/how-can-i-install-specialized-environments-for-different-perl-applications
Site
或site
目录中-或者至少可以强制使用它。
cpan
-installed的模块最终位于/ usr / local / share / perl(或PERL的指定位置Config.pm
),而根据Debian策略,APT软件包最终位于/ usr / share / perl5。因此,它们不会冲突,并且可以安全地混合和匹配CPAN和APT安装,如其他答案所述。(这里的Python不是一个很好的类比:PERL的打包和模块处理有很多不同,并且-IMHO-优于Python。)
cpan
已安装模块的最终安装位置由PERL确定Config.pm
。在我的Ubuntu 11.04上,它是/usr/local/share/perl/5.10.1
。