Ubuntu Rake命令导致分段错误

时间:2015-10-19 06:26:32

标签: ruby-on-rails database rake

我正在尝试设置rails项目,我必须使用rake db:create命令来创建数据库。但是,使用此命令会导致出现此错误的Segmentation Fault错误:

/home/steven/.rvm/gems/ruby-2.2.1/gems/json-1.8.3/lib/json/ext/parser.so: [BUG] Segmentation fault
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

然而,当我运行命令bin/rake db:create时,我没有得到分段错误。我google了,找不到原因,有谁知道这个问题的原因是什么?这是一个严重的问题吗?

经过进一步测试,这似乎是rake命令的问题。仍然不确定是什么导致了这一点。

修改 运行which -a rake命令会出现

/home/steven/.rvm/gems/ruby-2.2.1/bin/rake
/home/steven/.rvm/rubies/ruby-2.2.1/bin/rake
/usr/local/bin/rake

运行which ruby给出

/home/steven/.rvm/rubies/ruby-2.2.1/bin/ruby

1 个答案:

答案 0 :(得分:1)

编辑:此页面看起来有答案:您需要重新加载/重新安装ruby。

Issue with json 1.8.1 gem in rails app on production

从你上面所说的,我可以看到你正在使用rvm。看起来默认rake的gemset是ruby-2.2.1,但是有一个涉及ruby 1.9.3p484的错误。这是一个问题

假设您想将ruby 1.9.3p484用于您的项目。从项目目录中运行rvm use 1.9.3p484,它应该切换PATH变量以设置正确的东西。

要查看有关您正在使用的rake可执行文件,可用内容以及Ubuntu搜索rake可执行文件的目录顺序的更多详细信息,您可以使用

  • which -a rake - >列出PATH上所有可能的rake可执行文件
  • echo $PATH - >显示PATH变量,其中包含Ubuntu搜索的所有目录
  • which rake - >显示默认使用的佣金

现在,bin/rake db:create的工作原因是因为它是正确版本的ruby。要正确设置,您需要执行rvm use命令。

对我来说,当我cd到rails目录时,正确的rvm gemset会自动切换到。我忘了它在Ubuntu上是如何工作的,但我确实知道一个线索:你需要在登录shell中。您可以键入su - steven切换到登录shell,但在Gnome Terminal首选项中可能会有一些关于确保您在登录shell中的内容。

如果您已经在登录shell中,但它无法正常工作,您还可以添加

export PATH=/home/steven/.rvm/rubies/ruby-1.9.3p484/bin:$PATH

/home/steven/.bashrc和/或/home/steven/.bash_profile文件(我永远不记得是哪个)。

为什么这不起作用有很多原因,所以请随意评论更多细节或更新您的问题,我会看看我是否可以提供更多想法。   - 列出项目