4

当我需要一个 Perl 模块时,我通常使用 CPAN。它工作正常。但这次不是。

我想使用 MARC::Charset,但这个使用 GDBM_File,我似乎无法从 CPAN 安装 GDBM_File。

CPAN 发现一切正常,但在尝试安装它时,它开始安装完整的 Perl 5.10.1 发行版。

MARC::Charset 是一个相当老的模块,所以应该有一种方法可以从一些常见的 Perl 版本中使用它(Mac OS X 10.6.2 默认有 5.10.0 和 5.8.9)。

虽然安装完整的 Perl 5.10.1 不是一种选择,但修改 MARC::Charset 以停止使用 GDBM_File 可能是一种选择。这样做的最佳做法是什么?

最后一个选项也可能是唯一的一个。谷歌搜索 GDBM_File 发现了一些表明 gdbm 在 Mac 上甚至不可用的项目。不过,这些项目通常会超出我的想象。

虽然我不指望灵丹妙药,但有人可能会对我应该从哪里开始提供一两个指针。

毕竟,MARC::Charset 只对 marc8 字符集进行字符音译,不幸的是,iconv 似乎不支持。

4

3 回答 3

6

GDBM_File是一个核心 Perl 模块。这就是为什么它会在您安装此模块时尝试将您的 Perl 升级到最新版本。

似乎 Mac OS X 没有附带GDBM,因此没有使用它提供的任何开发语言构建和包含必要的模块。这似乎已经有一段时间了

所以你的第一个障碍是安装/编译 GDBM。MacPorts 确实提供了一个

GDBM_File是一个 XS 模块,所以你必须编译它。Perl 5.10.0GDBM_File code可以在这里找到。

顺便说一句:MARC::Charset仅切换到1.1GDBM_File版(最新版本)。以前使用的1.0版本在 Mac OS X 上随 Perl 一起提供(尽管没有亲自测试它是否有效)。SDBM_File

因此,您可能会发现下载以前版本的 MARC::Charset是一个更好的尝试选择。

于 2010-01-28T13:34:02.650 回答
1

您有两个替代方案:修复 MARC::Charset 使其不需要 GDBM_File,或构建您自己的 Perl。

老实说,构建自己的 Perl 可能更快、更安全。如果您以前从未安装过 Perl,我建议您使用 MacPorts ( http://macports.org ),它将安装在 /opt/local/bin/perl 中。然后您可以使用“/opt/local/bin/cpan MARC::Charset”来安装您需要的模块。

MacPorts 默认情况下不会构建线程化的 Perl - 我知道安装中有 woojy-woojy 可以做到这一点,但我从最初接触线程开始就对线程过敏,并且从来没有费心去弄清楚它是什么。

于 2010-01-28T10:25:54.767 回答
0

我最终通过使用以前版本的 MARC::Charset 解决了这个问题。以前的版本没有使用 GDBM_File 而是另一个工具。这是版本之间唯一的变化,没有说明变化的原因。

使用以前的版本修复了一切。

于 2010-03-21T11:08:08.593 回答