我只是想知道 - 与通过包管理安装它们相比,从 cpan shell 安装 perl 模块有什么优势吗?除了偶尔可以更快地访问最新的模块版本之外?
问问题
2366 次
2 回答
11
好吧,这完全取决于模块的预期用途。
原生包管理有很多优点:
- Perl 模块将与您的系统完美集成,例如文件位于正确的(系统相关)位置,脚本添加到 PATH 等。
- 自动升级和安全补丁。
- 可能是关心您的模块的维护者或维护者组(例如 Debian Perl 组)。
- 特定于发行版的错误可以在成为主流之前修复(可能具有或不具有特定于平台的知识)。
- 当部署到具有相同操作系统版本的机器时,您可以将包依赖关系视为理所当然。
直接从 CPAN 安装时,您还有一些优势:
- 您可以安装最新版本的模块。
- 您可以安装模块的特定版本(旧版本或开发人员版本)。
- 您可以微调模块的编译或安装参数。
如今,local::lib和perlbrew ( howto ) 使 CPAN 方式对开发人员来说更加有趣。local::lib让您在使用系统的 perl 二进制文件时拥有您的私有模块树,而perlbrew让您可以轻松创建自己的完整 Perl 安装(还有多个并行的 Perl 版本)。
两种方式都是有效的,正如所说,优势取决于预期的用途。
于 2011-11-01T10:46:34.437 回答
3
使用本机 CPAN 客户端可以让您访问 CPAN 上的所有模块,其中大部分可能不是由您的发行版打包的,但代价是您的发行版的包管理器不知道它们已安装(用于依赖解析等) . 我知道 Debian 提供了dh-make-perl
用于将 CPAN 模块转换为 debs 的软件包,这似乎应该给你两全其美,但我自己从未尝试过。
然而,最重要的是选择一种或另一种方法并坚持下去。
于 2011-11-01T10:46:21.970 回答