Ruby无法加载JSON gem?

时间:2013-02-21 04:17:45

标签: ruby

当我尝试启动需要JSON gem的脚本时,它会给我一个错误:

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- json (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /home/XXXXXX/XXXXXX/XXXXXX/XXXX.rb:2

有人能给我一些建议吗?

3 个答案:

答案 0 :(得分:15)

您正在运行Ruby 1.8+:

/usr/lib/ruby/site_ruby/1.8

这意味着您的Ruby不会自动加载Rubygems,因此您必须告诉它该做什么。尝试:

require 'rubygems'
require 'json'

Rubygems,在命令行中调用gem,可以使用许多命令。尝试在命令行输入:

gem help

列出它可以做什么。

现在最有用的是:

gem list json

以“json”开头的宝石列表或:

gem search json

获取名称中带有“json”的宝石列表。

目标是查看JSON gem是否应该是它应该的位置。如果是,它将显示在命令的输出中。

另一个有用的gem命令是:

gem update --system

告诉Rubygems更新自己。有时Rubygems应用程序维护人员会发出更新,而我们要做的就是告诉它使用最新版本自行引导。因为你运行的是旧版本的Ruby,所以Rubygems迫切需要更新的几率非常高。但是,等等,还有更多。

因为您正在调整Ruby的系统版本,所以您需要使用:

sudo gem update --system

“sudo”会将您的帐户调整为暂时具有系统管理功能。

一旦Rubygems完成升级,如果json没有出现在listsearch的输出中,则需要使用以下命令安装:

sudo gem install json

此时运行searchlist命令应该有效,并且运行带有上述两个要求的脚本应该有效。

答案 1 :(得分:3)

您可能没有安装JSON gem。要检查在终端中使用gem list命令,看看是否看到json,那么它是否已安装,如果没有,则执行gem install json。安装后检查以确保它位于gem list。如果是的话,你应该好好去。

答案 2 :(得分:1)

您是否安装了JSON gem?那条宝石路上? gem install json应该足够了