gpt4 book ai didi

perl - 为什么我不能简单地将已安装的 Perl 模块复制到其他机器上?

转载 作者:行者123 更新时间:2023-12-04 16:49:49 24 4
gpt4 key购买 nike

作为 Perl 的新手,而不是动态语言,我对模块管理的不直接性感到有些惊讶。

当然,cpan X理论上可行,但我正在使用三台不同的机器和操作系统(在工作中、在家中、在外部环境中测试)处理同一个项目。

  • 在工作中 (Windows 7) 我在使用 cpan 时遇到问题因为我们的防火墙使 ftp 无法使用
  • 在家里(Mac OS X)它确实可以工作
  • 在外部环境(Linux CentOs)中,它在几个小时后工作,因为我没有 root 访问权限,我必须配置 cpan以非 root 用户身份操作
  • 我已经尝试在我可以访问的另一台服务器上。如果之前的外部环境是 VPS 并且我有 shell 访问权限,那么另一个是廉价的共享主机,除了预安装的模块之外,我无法安装新模块

  • 目前还是无法安装 Template在 Windows 下。我已经看到作为替代方案我可以编译它,我也尝试过 ActiveState 的 PPM,但该模块不存在。

    现在,我的困惑在于 Perl 是一种动态语言。我在工作时遇到了所有这些问题,例如,在使用 C 时,我必须为所有平台编译所有库,但我认为使用 Perl 的方法与 90 年代的 Python 或 PHP 非常相似% 的情况下,将模块复制到目录中并导入它很简单。

    所以,我的问题是:如果 Perl 的模块是用 Perl 编写的,为什么复制/粘贴方法不起作用?如果必须编译某些(或某些部分)模块,如何在 CPAN 中查看模块是仅 Perl 还是依赖于已编译的库?没有办法下载模块(tar,zip ...)并使用cpan来部署它吗?这将解决我在 Windows 下的问题。

    最佳答案

    现在,Perl 是一种动态语言,但这并不意味着人们编写的所有内容都可以跨平台移植。这不是语言的错。这甚至不是程序员的错。有些东西,比如 Win32::OLE不应该在 Unix 上工作。 :)

    其他动态语言也会有一些相同的问题。如果您必须编译 C 代码,您将无法仅将文件复制到另一台机器。某些发行版根据您的操作系统等配置代码略有不同。

    即使您可以复制文件,您也必须确保复制所有需要的文件。您知道特定模块所需的一切吗?请记住,它们中的许多都有依赖关系。

    您遇到的大多数问题都与语言无关。您在使用这些工具时遇到了问题。如果您想要一个为您做出所有决定的零配置 CPAN 工具,请尝试 cpanminus .这与您从 cpan 中得到的结果基本相同。 (尽管代码不同),但它为您做出所有决定。它不运行任何分发测试,它会安装到您的用户目录中。当您需要一些可以让您控制的东西时,请返回 cpan .

    关于perl - 为什么我不能简单地将已安装的 Perl 模块复制到其他机器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682608/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com