安装 perl 模块和复制整个文件夹有什么区别?

What is difference between installing a perl module and copying whole folder?

我已经安装了一个 perl 模块,比如 XYZ,然后创建了一个包含许多 .pm 文件的文件夹。我复制了该文件夹并将其放在未安装 XYZ 的任何其他系统中。

因此,我可以在两个系统中使用 XYZ 模块的方法。我的意思是,我无法找出这些方法之间的区别,但我认为肯定有一些区别。我所知道的是,当我们安装一个 perl 模块时,依赖项也会被安装。我对吗?谁能提到两者之间的其他区别(如果有的话)?

我脑子里有几个:

  • 如果是 XS 模块,代码是为本地平台编译的。
  • 通过 cpan 安装模块通常会运行测试套件,因此如果除了依赖项之外还有任何其他原因无法正常工作,您会被告知(我想这很少见)
  • 常规安装会自动转到您的 perl 可以找到模块的目录。

当然这些你都可以自己搞定。这些天你很有可能 运行 Linux 或 Windows 在 x86-ish 上,只要你只复制 Linux 到 Linux 和Windows 到 Windows,以及与源系统相同的位置,你会没事的。基本上这也是二进制 Linux 发行版和 ActivePerl 包所做的,并且它可能有意义,例如如果您想避免在所有目标系统上安装一大堆编译时依赖项。只要确保您不会通过写入应该由系统的包管理器管理的系统目录(例如 /usr/share/perl5)而陷入混乱。