Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无法在Ubuntu上使用ruby 2.2.3安装json gem_Ruby On Rails_Ruby_Json - Fatal编程技术网

Ruby on rails 无法在Ubuntu上使用ruby 2.2.3安装json gem

Ruby on rails 无法在Ubuntu上使用ruby 2.2.3安装json gem,ruby-on-rails,ruby,json,Ruby On Rails,Ruby,Json,我正在学习Rails教程,但由于json gem的问题,我无法完成“捆绑安装”。当我尝试直接安装它时: me@tru2:~/rails/hello_app$ gem install json -v '1.8.3' Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /h

我正在学习Rails教程,但由于json gem的问题,我无法完成“捆绑安装”。当我尝试直接安装它时:

me@tru2:~/rails/hello_app$ gem install json -v '1.8.3'
Building native extensions.  This could take a while...
ERROR:  Error installing json:
    ERROR: Failed to build gem native extension.

    /home/me/.rvm/rubies/ruby-2.2.3-dev/bin/ruby -r ./siteconf20150820-12793-qdkev7.rb extconf.rb
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.so
/usr/bin/ld: cannot find -lgmp
collect2: error: ld returned 1 exit status
make: *** [generator.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/me/.rvm/gems/ruby-2.2.3-dev/gems/json-1.8.3 for inspection.
Results logged to /home/me/.rvm/gems/ruby-2.2.3-dev/extensions/x86_64-linux/2.2.0/json-1.8.3/gem_make.out
如前所述,ruby版本是2.2.3

me@tru2:~/rails/hello_app$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

运行“gem list”显示当前已安装json 1.8.1,但默认gem文件中的某些内容必须需要1.8.3。搜索结果显示了许多类似的问题,但没有任何答案让我通过了这个问题。我已经试过用sudo运行,它似乎可以运行,但问题仍然存在。

试着运行
rvm infrade
,然后遵循本指南


我怀疑RVM没有为您提供正确的标题。

找不到-lgmp
意味着它找不到gmp库。尝试运行:

sudo apt-get install libgmp3-dev

Json 1.8.3似乎在Ruby 2.2.3中存在一些问题(尽管我预计Ruby未来的一些补丁可能会解决这个问题)。将Ruby降级到2.2.2对我来说很有效


(这就是说,
sudo也安装了libgmp3-dev
,因为-但是如果你不能做到这一点,降低ruby的等级可能是一个可行的选择。)

谢谢你,这让我更进一步。我在调试器gem中遇到了一个错误,但我想如果我发现需要它,我可以对此进行注释并加以处理。您应该尝试
pry
gem而不是
调试器
gem。它在每一个Ruby版本上都对我有效,但这并不能回答这个问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论。好的-任何其他对此投反对票的人可以留下评论来告诉我为什么它没有用吗?我已经编辑过两次了。谢谢,我不同意,这确实为问题提供了答案。OP说,“我不能用Y版本的Ruby安装X库”,这个答案是“更改您的Ruby版本”。当问题Why
libgmp3 dev
中解释了完全相同的配置时,为我修复了它
json-1.8.3
依赖于
/usr/lib/x86_64-linux-gnu/libgmp。所以
,它在中。实际上,依赖于
libgmp
的不是
json
。它是二进制的
ruby
(预编译)在
libgmp
存在的情况下构建的,这使得所有本机扩展都需要它。从源代码编译的
ruby
不会出现这个问题。您知道如何使用centos实现这一点吗?找不到包含yum的包