2nd juin 2008

Eurêka! #2

posted in Tips |

J’essayais twitter4r, une librairie pour accéder à l’API twitter depuis Ruby, avec une installation Ruby sous Windows (Vista) et je me heurtais au problème suivant:

Mon serveur crashait avec une « Segmentation Fault » dans json/common.rb.

Plus spécifiquement, c’est au moment de l’appel de la méthode timeline_for que mon serveur partait dans les roses.

J’ai trouvé la solution au problème ici, mais comme c’est un article en Japonais, je me disais que ça pourrait faire plaisir à certains que je traduise.

En fait, c’est assez simple, le problème vient de la librairie json, dont dépend twitter4r. Si on installe twitter4r avec gem, comme indiqué sur le site, la librairie json est également installée, mais les binaires Win32 sont bogués. Heureusement, il existe une implémentation « pure ruby » de json, et c’est celle-la qu’il faut installer. Le problème est que si on l’installe avec gem, elle n’est pas reconnue. La solution est donc d’installer manuellement json et twitter4r.

Ca marche comment?

  • Pour json, on downloade le package json_pure sur RubyForge, on le décompresse quelque part, on va dans le répertoire json_pure-x.y.z et on exécute: ruby install.rb dans une console.
  • Pour twitter4r, on downloade le package twitter4r toujours sur RubyForge, on le décompresse quelque part, on va dans le répertoire twitter4r-x.y.z\lib et on copie le répertoire twitter et le fichier twitter.rb dans le répertoire de librairies de ruby (taper la commande ruby -e 'puts $:' pour avoir une liste).

Et voilà!

This entry was posted on lundi, juin 2nd, 2008 at %H:%M and is filed under Tips. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.