Ubuntu Rake 命令导致分段错误

Ubuntu Rake command causes segmentation fault

我正在尝试设置一个 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 时,我没有遇到分段错误。我用谷歌搜索并找不到这个问题的原因,有谁知道这个问题的原因是什么?这是一个严重的问题吗?

经过进一步测试,这似乎是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

编辑:此页面看起来有答案:您需要 reload/reinstall 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 终端首选项中可能有一些关于确保您处于登录 shell.

的选项

如果您已经登录 shell 但它不起作用,您还可以添加

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

/home/steven/.bashrc and/or /home/steven/.bash_profile 文件(我记不起是哪个)。

虽然这不起作用的原因有很多,但请随时评论更多细节或更新您的问题,我会看看是否可以提供更多想法。 - 列表项