2013-02-21 73 views
1

当我尝试推出需要JSON宝石的脚本,它给了我一个错误:Ruby无法加载JSON宝石?

/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 

谁能给我一些建议吗?

+1

请发布您正在运行的脚本的内容以及您用来运行它的命令。 – Brandan 2013-02-21 04:35:51

+0

这是不是一个问题?这又是一个关闭的问题,因为参与者只是不知道答案? – Bratchley 2016-04-13 15:26:52

回答

1

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

+0

谢谢,但如何做宝石安装json? – 2013-02-21 04:49:34

+0

打开终端,cd进入脚本所在的目录。如果有Gemfile文件,请在终端上键入“bundle”(如果失败,请键入“gem install bundler”,然后运行“bundle”)。如果没有Gemfile,输入“gem install json”并且应该这样做。 – Hock 2013-02-21 04:51:53

+0

[xxxx @ gelib-057-22 Assignment2.0] $ gem install json 错误:执行gem时(Gem :: FilePermissionError) 您没有写入/ usr/lib/ruby​​/gems的权限/1.8目录。 – 2013-02-21 04:55:48

3

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

+0

谢谢。如何检查宝石名单? – 2013-02-21 04:46:48

+0

在命令终端输入'gem list' – BlackHatSamurai 2013-02-21 05:01:11

13

您正在运行的Ruby 1.8+看来:

/usr/lib/ruby/site_ruby/1.8 

这意味着你的Ruby程序不会自动加载RubyGems的,所以你必须要告诉它做什么。尝试:

require 'rubygems' 
require 'json' 

RubyGems的,在命令行称为gem,有提供给你许多命令。尝试在命令行输入以下内容:

gem help 

了解可以执行的操作的列表。

最有用现在的问题是:在

gem search json 

的宝石与“JSON”列表:

gem list json 

的宝石名单开始“JSON”或名称。

目标是查看JSON宝石是否应该在哪里。如果是,它将显示在命令的输出中。

另一个有用的宝石命令将是:

gem update --system 

告诉RubyGems的自身更新。有时Rubygems应用程序维护人员会发布更新,并且该命令是我们要告诉它用最新版本引导自己的。由于您运行的是旧版本的Ruby,因此Rubygems迫切需要更新的可能性非常大。但是,等等,还有更多。

因为你正在调整红宝石的系统版本,你需要使用:

sudo gem update --system 

“命令”调整您的帐户暂时具有系统管理能力。

一旦RubyGems的完成升级本身,如果JSON并没有从listsearch输出出现,你需要使用安装它:

sudo gem install json 

在这一点上运行searchlist命令应该工作,并且,运行您的脚本与上述两个要求应该工作。

+0

嗨,谢谢。要求'rubygems'并且要求'json'已经完成,但问题仍然存在,有什么建议吗? – 2013-02-21 04:53:20

+0

查看更新。 – 2013-02-21 05:06:32

+1

如果'bundle'用于提供执行环境,那么** [这可能是答案](http://stackoverflow.com/a/36819950/441652)** - 将'gem“json”'添加到' Gemfile'。 – uvsmtid 2016-04-24 06:24:55