【问题标题】:Which Perl modules can be installed just by copying lib files?哪些 Perl 模块可以通过复制 lib 文件来安装?
【发布时间】:2010-03-09 01:28:01
【问题描述】:

我是 Perl 的绝对初学者,我正在尝试在我的共享 Linux 网络主机上使用一些非核心模块。我没有命令行访问权限,只有 FTP。

主机管理员会根据要求考虑安装模块,但我想使用的模块会经常更新(例如 DateTime::TimeZone),我希望能够准确控制我正在使用的版本。

通过实验,我发现一些模块可以通过将文件从模块的lib目录复制到主机上的目录来安装,并使用

use lib "local_path";

在我的脚本中,即无需编译即可安装(再次是 DateTime 和 DateTime::TimeZone)。

我如何判断特定模块是否属于这种情况?我意识到我必须自己解决依赖关系。

另外:如果我希望能够安装任何模块,包括那些需要编译的模块,我会在托管方面寻找什么?

我猜现在我与其他几个人共享一个 VM,而我需要的最低配置是具有 shell 访问权限的专用 VM?

【问题讨论】:

    标签: perl perl-module


    【解决方案1】:

    perldoc perlxs

    您可能可以检查模块的源代码DynaLoader 或类似的东西。这样你就可以知道一个模块是否使用了任何 C 代码。

    如果您使用类似 unix 的操作系统,则可以使用包管理器查看包(perl 模块)安装了哪些文件/库。

    【讨论】:

    • 请记住我是一个初学者 - 我可以看到该文档是关于 Perl 和 C 之间的链接的,但不能比这更多。
    • 纯 perl(无 XS)的模块可以轻松地从一个地方复制到另一个地方。除非源系统和目标系统安装了相同的 CPU、操作系统和库版本(或多或少),否则使用 XS 的模块在复制时将无法工作。
    • @hobbs:啊哈——你应该把这个作为答案。
    【解决方案2】:

    你可以使用

    use lib "your_local_path" , 
    

    在这种情况下,您可以在本地路径中包含模块。

    【讨论】:

    • 已经使用我设法安装的模块执行此操作 -- 澄清了我的问题以使这一点更清楚。
    猜你喜欢
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多