2010-07-09 2 views
2

J'ai installé yajl, libyajl-dev, et le joyau yajl-ruby sur une installation d'ubuntu 10.04.LoadError on require yajl

J'ai ajouté la gemme à une installation 2.3.8 ruby ​​on rails puisque les notes de version pour 2.3.6 indiquaient que yajl serait utilisé s'il était présent dans le système. Rails bails avec un message d'erreur dans le sens de «incapable de charger Yajl-ruby» alors j'ai pensé que je verrais ce qui se passe dans une session IRB. C'est ce qui se passe:

$ dpkg -l | grep yajl 
ii libyajl-dev      1.0.8-1           Yet Another JSON Library - development files 
ii libyajl1       1.0.8-1           Yet Another JSON Library 
ii yajl-tools      1.0.8-1           Yet Another JSON Library - tools 
$ gem list | grep yajl 
yajl-ruby (0.7.6) 
$ irb 
> require 'yajl' 
LoadError: no such file to load -- yajl 
     from (irb):1:in `require' 
     from (irb):1 
     from :0 
> require 'yajl/gzip' 
LoadError: no such file to load -- yajl/gzip 
     from (irb):2:in `require' 
     from (irb):2 
     from :0 
> require 'yajl-ruby' 
LoadError: no such file to load -- yajl-ruby 
     from (irb):3:in `require' 
     from (irb):3 
     from :0 

Je ne trouve personne d'autre avec ce problème après avoir passé un moment à chercher ce problème. Quelqu'un a-t-il une idée de ce qui se passe?

Répondre

3

Utilisez la pierre précieuse à la place sudo gem install yajl-ruby

Ensuite, il suffit d'utiliser comme tout autre petit bijou dans votre script Ruby

require 'rubygems' 
require 'yajl' 

json = File.new('test.json', 'r') 
parser = Yajl::Parser.new 
hash = parser.parse(json) 
+0

Je pensais que ce moi-même après un peu de piratage et de se rappeler l'exigence de rubygems. Je suis un ruby ​​n00b et j'ai principalement écrit ruby ​​pour des scripts sans gemmes et ruby ​​qui ont déjà des rubygems chargés pour un projet. Merci beaucoup. Correct et succinct. –

+0

Je suis tombé sur un problème similaire, les messages étaient /usr/lib/ruby/vendor_ruby/yajl.rb:2:in 'require': aucun fichier à charger - yajl/yajl (LoadError). Je l'ai résolu en ouvrant /usr/lib/ruby/vendor_ruby/yajl.rb et en éditant la ligne 2 à require 'yajl' au lieu de 'yajl/yajl' –

Questions connexes