【问题标题】:DBI installation on perl 5.10.0 MacOS 10.6.8在 perl 5.10.0 MacOS 10.6.8 上安装 DBI
【发布时间】:2013-11-17 09:17:48
【问题描述】:

我正在尝试在 MacOS X 10.6.8 Snow Leopard 上安装名为 OrthoMCL 的程序。为了它的工作,它需要 Perl 的 DBI 模块。在我的机器上,我有两个 perl 安装 - 在 /usr/bin/perl 上预构建 5.10.0 版本(称为 Perl1)和我实际使用的 5.12.3 MacPorts 安装(称为 Perl2)。

问题是 OrthoMCL 正在尝试使用 /usr/bin/perl。如果我尝试从 CPAN for Perl1 安装 CPAN DBI 和 DBD::mysql 模块,我会遇到如下错误:

lipo: can't open input file: /var/tmp//ccOBwzHU.out (No such file or directory)
make: *** [Perl.o] Error 2

用外部编译

/usr/bin/perl Makefile.PL
make

导致同样的错误。

我可以在 Perl2 上安装 DBI 和 DBD::mysql,但是 OrthoMCL 不能用它。

将 Perl2 模块路径添加到 PERL5LIB 变量会在尝试使用 Perl1 时出错:

Perl lib version (5.12.4) doesn't match executable version (v5.10.0) at /opt/local/lib/perl5/5.12.4/darwin-thread-multi-2level/Config.pm line 50.

所以我有两个问题:

  1. 是否知道如何为 Perl1 安装 DBI 和 DBD::mysql 模块。
  2. 有人知道如何强制 OrthoMCL 与 Perl2 一起工作吗?

谢谢!

【问题讨论】:

    标签: mysql perl dbi


    【解决方案1】:

    在 Mac OS X 上,我强烈建议不要使用系统 perl,而是使用 App::Perlbrew 在您的主目录中安装和使用 perl。

    多年来,OS X 的 perl 已经以各种方式遭到破坏,除非您是专家,否则几乎不可能修复。这是一个你不想下去的老鼠洞。

    Perl 应用程序不应该在它们的第一行(“shebang”)硬编码 /usr/bin/perl:这是一个错误。将其替换为 /usr/bin/env perl,它将运行您使用 perlbrew 选择的任何 perl。

    【讨论】:

    • 我在工作中使用 MacPorts perl 安装。 OrthoMCL 是作为二进制执行器分发的,我找不到源代码,所以我无法更改应用程序代码。如果您的意思是我可以通过其他方式影响申请,请解释一下。
    【解决方案2】:

    试试sudo /usr/bin/perl Makefile.PL && make

    关于 perl 版本,您也需要为您的第二个 perl 版本安装模块才能使其正常工作。我根本不知道 OrthoMCL,但我会参考它的文档,了解它如何与 perl 一起工作。

    【讨论】:

    • 为我的第二个 perl 版本安装了 DBI 和 DBD::mysql。我已经尝试过你的建议 - DBI 和 DBD::mysql 模块的一切都一样。
    • 我很好奇 - 为什么sudo 应该在这里提供帮助?通常perl Makefile.PLmake 不应以root 身份运行。
    • 我认为 make 问题可能是写权限。
    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多