当我尝试启动需要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
有人能给我一些建议吗?
答案 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没有出现在list
或search
的输出中,则需要使用以下命令安装:
sudo gem install json
此时运行search
或list
命令应该有效,并且运行带有上述两个要求的脚本应该有效。
答案 1 :(得分:3)
您可能没有安装JSON
gem。要检查在终端中使用gem list
命令,看看是否看到json
,那么它是否已安装,如果没有,则执行gem install json
。安装后检查以确保它位于gem list
。如果是的话,你应该好好去。
答案 2 :(得分:1)
您是否安装了JSON gem?那条宝石路上? gem install json
应该足够了