2010-03-30 10 views
1

J'ai des problèmes avec certains de mes rubygems, en particulier ceux qui utilisent des extensions natives.Qu'est-ce qui provoquerait la génération des extensions gem natives sous OS X, mais le chargement échouerait?

Je suis sur un MacBookPro, avec Snow Leopard. J'ai installé XCode 3.2.1, avec gcc 4.2.1. Ruby 1.8.6, parce que je suis paresseux et un chat effrayant et que je ne veux pas encore améliorer. Ruby fonctionne en mode 32 bits. J'ai construit ce rubis à partir de zéro quand mon MBP a fonctionné sous OSX 10.4.

Lorsque j'ai besoin de l'un des gems affectés dans irb, j'obtiens une erreur de chargement pour le fichier de l'extension gem. Par exemple, voici nokogigi me dissing:

> require 'rubygems'
=> true
> require 'nokogiri'
LoadError: Failed to load /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.1/lib/nokogiri/nokogiri.bundle

Cela se produit également avec le Postgres pg et pierres précieuses MongoDB mongo.

Ma première pensée était que les extensions ne devaient pas être construites correctement. Mais gem install ne lançait aucune erreur. J'ai donc réinstallé avec le drapeau verbeux, espérant voir des avertissements utiles. I've put the output in a Pastie, et le seul avertissement que je vois est cohérent sur "passer l'argument n de 'foo' avec une largeur différente due au prototype."

Je suppose que cela pourrait être un problème de mise à niveau vers Snow Leopard, mais je suis un peu surpris de l'expérimenter maintenant, depuis que j'ai mis à jour mon XCode. Cela pourrait-il provenir de l'exécution de Ruby en 1.8.6? Je suis gêné de savoir que je ne sais pas assez sur mon Mac et OSX pour savoir où regarder ensuite, donc toute orientation, même juste un pointeur vers un document que je n'ai pas trouvé via Google, serait la bienvenue.

Michael

+0

Avez-vous vérifié si l'exécutable ruby ​​que vous lancez est celui que vous avez construit ou celui qui est fourni avec MacOS X? –

+0

Il me dit que c'est ruby ​​1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.8.5] – goodmike

+0

Etrange. Est-ce que les gems sans extensions natives se chargent correctement? –

Répondre

1

Je vois beaucoup de/opt/stuff locale avec la sortie gcc - vous utilisez MacPorts? Si oui, vous pourriez avoir un peu de funk en raison de l'utilisation de cet autre environnement quasi-différent - j'ai couru à toutes sortes de problèmes comme ceci après la mise à jour vers Mac OS 10.6 et par conséquent, j'ai utilisé rvm pour ma mise à niveau Ruby/gestion et ont utilisé Homebrew pour un remplacement MacPorts.

Est-ce que this aide du tout?

+1

Votre mention de RVM vous obtient un chèque vert. La veille, je l'ai installé et utilisé pour mettre à jour ma version de Ruby au dernier niveau de patch. Maintenant tout va bien. Donc la réponse à ma question en un mot serait: «Une version non-mise à jour de Ruby provoquerait la génération des extensions gem natives sur OSX mais ne réussirait pas à charger. Merci pour vos conseils. -Michael – goodmike