5

我只是想知道 - 与通过包管理安装它们相比,从 cpan shell 安装 perl 模块有什么优势吗?除了偶尔可以更快地访问最新的模块版本之外?

4

2 回答 2

11

好吧,这完全取决于模块的预期用途。

原生包管理有很多优点:

  • Perl 模块将与您的系统完美集成,例如文件位于正确的(系统相关)位置,脚本添加到 PATH 等。
  • 自动升级和安全补丁。
  • 可能是关心您的模块的维护者或维护者组(例如 Debian Perl 组)。
  • 特定于发行版的错误可以在成为主流之前修复(可能具有或不具有特定于平台的知识)。
  • 当部署到具有相同操作系统版本的机器时,您可以将包依赖关系视为理所当然。

直接从 CPAN 安装时,您还有一些优势:

  • 您可以安装最新版本的模块。
  • 您可以安装模块的特定版本(旧版本或开发人员版本)。
  • 您可以微调模块的编译或安装参数。

如今,local::libperlbrew ( 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 回答