Perl на MacOS X 10.6.2: GDBM_File отсутствует, как его установить или обойти? - PullRequest
4 голосов
/ 28 января 2010

Когда мне нужен модуль Perl, я обычно использую CPAN. Работает нормально. Но не в этот раз.

Я хочу использовать MARC :: Charset, но этот использует GDBM_File, и я не могу установить GDBM_File из CPAN.

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 может быть одной. Каков наилучший способ действий для этого?

Этот последний вариант также может быть единственным. Поиск в Google GDBM_File раскрывает несколько пунктов, которые предполагают, что gdbm даже не доступен на Mac. Эти предметы обычно проносились у меня над головой.

Хотя я не ожидаю серебряной пули, у кого-то может быть указатель или два на том, с чего мне начинать.

В конце концов, MARC :: Charset выполняет только транслитерацию символов в / из набора символов marc8, который, к сожалению, iconv не поддерживает.

Ответы [ 3 ]

6 голосов
/ 28 января 2010

GDBM_File - это базовый Perl-модуль . Вот почему он пытается обновить ваш Perl до последней версии при установке этого модуля.

Похоже, что Mac OS X не поставляется с GDBM и поэтому не имеет встроенных необходимых модулей с любым из предоставленных языков разработки. И это, кажется, имело место в течение достаточно долгого времени .

Итак, ваше первое препятствие - установка / компиляция GDBM. MacPorts предоставляет пакет .

GDBM_File - это модуль XS, поэтому вам придется его скомпилировать. Perl 5.10.0 GDBM_File code можно найти здесь .

Кстати: MARC::Charset переключено только на GDBM_File в версии 1.1 (последняя версия). Предыдущая версия 1.0 использовала SDBM_File, которая поставляется с Perl на Mac OS X (хотя лично она не тестировалась).

Таким образом, вы можете найти загрузку предыдущей версии MARC :: Charset лучшей возможностью попробовать.

1 голос
/ 28 января 2010

У вас есть две альтернативы: исправьте 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, но у меня аллергия на потоки из-за моего первого контакта с ними, и я никогда не удосужился выяснить, что это такое .

0 голосов
/ 21 марта 2010

Я в конце концов решил проблему, используя предыдущую версию MARC :: Charset. Предыдущая версия не использовала GDBM_File, но другую функцию. Это было единственное изменение между версиями, и причина изменения не была указана.

В предыдущей версии все исправлено.

...