2010-01-28 12 views
4

Lorsque j'ai besoin d'un module Perl, j'utilise généralement le CPAN. Ça fonctionne bien. Mais pas cette fois.Perl sur MacOS X 10.6.2: GDBM_File manquant, comment installer ou contourner?

Je veux utiliser MARC :: Charset, mais celui-ci utilise GDBM_File, et je n'arrive pas à installer GDBM_File depuis le CPAN. Le CPAN trouve que tout va bien, mais en essayant de l'installer, il commence à installer la distribution complète de Perl 5.10.1. MARC :: Charset est un module plutôt ancien, il devrait donc être possible de l'utiliser depuis une version Perl commune (Mac OS X 10.6.2 a par défaut 5.10.0 et 5.8.9).

Lors de l'installation du coup complet Perl 5.10.1 n'est pas une option, modifier MARC :: Charset pour arrêter d'utiliser GDBM_File pourrait en être un. Quel serait le meilleur plan d'action pour le faire?

Cette dernière option pourrait également être la seule. googling GDBM_File découvre quelques éléments qui suggèrent que gdbm n'est même pas disponible sur Mac. Ces éléments sont généralement passés par-dessus ma tête.

Alors que je ne m'attends pas à une balle d'argent, quelqu'un peut avoir un pointeur ou deux sur où je devrais commencer. Après tout, MARC :: Charset ne fait que de la translittération de caractères vers/depuis le jeu de caractères marc8, ce que iconv ne semble malheureusement pas supporter.

+0

Connexes: http://stackoverflow.com/questions/1546192/comment-can-i-install-a-cpan-module-that-is-in-the-latest-perl-without-installing-th – Ether

Répondre

6

GDBM_File est un core Perl module. C'est pourquoi il essaie de mettre à jour votre Perl à la dernière version lorsque vous installez ce module.

Il semble que Mac OS X ne soit pas fourni avec GDBM et n'a donc pas construit ni inclus les modules nécessaires avec l'un de ses langages de développement fournis. Et cela semble avoir été le cas for quite some time.

Votre premier obstacle est donc le GDBM d'installation/compilation. MacPorts fournit un package.

GDBM_File est un module XS donc vous devrez le compiler. Le Perl 5.10.0 GDBM_File code peut être trouvé here.

BTW: MARC::Charset seulement commuté à GDBM_File à la version 1.1 (dernière version). La version précédente 1.0 utilisé SDBM_File qui vient avec Perl sur Mac OS X (bien que je n'ai pas testé personnellement cela fonctionne).

Donc, vous pouvez trouver le téléchargement previous version of MARC::Charset une meilleure option à essayer.

1

Vous avez deux alternatives: corrigez MARC :: Charset pour qu'il ne nécessite pas de fichier GDBM_File, ou créez votre propre Perl. Honnêtement, construire votre propre Perl est probablement plus rapide et plus sûr. Si vous n'avez jamais installé Perl auparavant, je vous recommande d'utiliser MacPorts (http://macports.org), qui l'installera dans/opt/local/bin/perl. Vous pouvez ensuite utiliser "/ opt/local/bin/cpan MARC :: Charset" pour installer le module dont vous avez besoin. MacPorts ne construit pas par défaut un Perl avec fil - Je sais qu'il y a woojy-woojy sur l'installation pour le faire, mais je suis allergique aux fils de mon exposition initiale à eux et je n'ai jamais pris la peine de comprendre ce qu'il est.

+0

Malheureusement , demandant à mon client de créer et d'installer une distribution complète de Perl n'est pas une option. En outre, il semble que cela ne serait même pas suffisant car gdbm n'est pas installé sur MacOS X. –

0

J'ai finalement résolu le problème en utilisant la version précédente de MARC :: Charset. La version précédente n'utilisait pas GDBM_File mais une autre installation. C'était le seul changement entre les versions, et la raison du changement n'était pas indiquée.

L'utilisation de la version précédente a tout fixé.

+0

Je suis content que vous ayez résolu le problème, mais ne pensez-vous pas que votre réponse ci-dessus serait mieux comprise dans ma réponse? :( – draegtun

+0

Oui, vous avez raison, j'ai trouvé votre réponse et je l'ai étiquetée comme correcte –

+0

Merci beaucoup Jean-Denis. – draegtun