【问题标题】:Can I move a Perl installation from one computer to another computer?我可以将 Perl 安装从一台计算机移动到另一台计算机吗?
【发布时间】:2010-06-01 11:35:48
【问题描述】:

我正在尝试设置一个依赖于几个 Perl 模块的应用程序,但我要安装的服务器没有 Internet 连接。我通过 ppd 文件阅读了有关离线模块安装的信息,但是我必须一一解决所有依赖项。考虑到我没有直接的互联网连接,这更加乏味。

我希望找到一个解决方案,在我的 PC 上安装 ActivePerl 并安装我想要的所有库,然后将目录复制粘贴到我的服务器。如果只是修复一些环境变量的问题,那很好。只想知道要修改的变量的最终列表。不确定是否必须在要运行它的计算机上安装 perl 库? (一个是 32 位平台,一个是 64 位,但是服务器已经在运行各种 32 位应用程序,所以我希望这不是一个大问题)为了获得最佳兼容性,我计划在两个系统上安装 ActivePerl 并合并库目录相同。

【问题讨论】:

标签: perl installation perl-module activeperl


【解决方案1】:

答案在Perl FAQ,我的坏事没有正确处理。

I copied the perl binary from one machine to another, but scripts don't work.
That's probably because you forgot libraries, or library paths differ.
You really should build the whole distribution on the machine it will
eventually live on, and then type "make install". Most other approaches
are doomed to failure.

One simple way to check that things are in the right place is to print
out the hard-coded @INC that perl looks through for libraries:

    % perl -le 'print for @INC'

If this command lists any paths that don't exist on your system, then
you may need to move the appropriate libraries to these locations, or
create symbolic links, aliases, or shortcuts appropriately. @INC is also
printed as part of the output of

    % perl -V

You might also want to check out "How do I keep my own module/library
directory?" in perlfaq8.

【讨论】:

    【解决方案2】:

    来自link

    有时,您将无法 使用任何方法安装 模块。如果您可能会出现这种情况 是一个特别弱势的群体 用户 - 也许您正在租用网络 服务器上的空间,你不在的地方 有权做任何事情。

    对于某些模块,可以 在不编译的情况下安装模块 任何东西,所以你可以放弃 文件到位并让它工作。 无需进入很多 细节,一些 Perl 模块包含一个 用其他语言写的部分 (例如 C 或 C++),有些是 仅用 Perl 编写。它是 后一种类型,此方法将起作用 为了。你怎么知道?好吧,如果有 没有名为 something.c 的文件和 包中的东西.h,机会 是它是一个包含 只有 Perl 代码。

    在这些情况下,您只需打开包装 文件,然后只复制 *.pm 文件到您所在的目录 将运行模块。两个例子 这应该足以说明如何 这已经完成了。

    IniConf.pm 是一个很棒的小工具 允许您阅读的模块 配置信息出 .ini 样式的配置文件。 IniConf.pm 是 仅用 Perl 编写,没有 C 部分。当你解压 .tar.gz 您从 CPAN 获得的文件,您将 在那里找到几个文件,一个 其中被称为 IniConf.pm。这是 你实际上是唯一的文件 有兴趣。将该文件复制到 您拥有 Perl 的目录 将使用它的程序 模块。然后,您可以将该模块用作 如果已安装,您会 ``正确地'',只需一行:

        use IniConf;
    

    Time::CTime 是另一个非常方便的工具 可让您打印时间的模块 任何你喜欢的格式。它 仅用 Perl 编写,没有 C 零件。您只需安装它 就像你对 IniConf 所做的一样, 除了名为 CTime.pm 的文件, 必须放在子目录中 称为时间。冒号,以及 指示模块的组织, 也表示目录结构 在您的文件系统上。

    【讨论】:

    • 这是个好消息!现在我计划在我的 PC 上安装 32 位 Active perl 并更新所有必需的模块。然后,在服务器上安装 64 位 Active perl 并仅传输库文件夹(或至少选择性地传输这些文件)。完成后我会更新结果。感谢您的回答。
    • 非常感谢!!我打算使用的模块只需复制粘贴即可工作,它们都只是 *.pm 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    相关资源
    最近更新 更多