无法在任何来源中找到json-1.8.1(Bundler :: GemNotFound)

时间:2014-04-21 00:33:02

标签: ruby-on-rails ruby json

我正在运行以下堆栈:

  • ruby​​ 2.1.1p76(2014-02-24修订版45161)[x86_64-linux]
  • RubyGems 2.2.2
  • Rails 4.1.0
  • Bundler版本1.6.2

在ubuntu上运行apache

我收到以下错误:

  

找不到任何来源的json-1.8.1(Bundler :: GemNotFound)

当我按如下方式查找json时:

$ gem list | grep json

json (1.8.1)
multi_json (1.9.2)

它存在但由于某种原因,来自Passenger的消息如下:

  

无法启动Ruby(Rack)应用程序

     

错误讯息:   无法在任何来源中找到json-1.8.1(Bundler :: GemNotFound)   例外类:   PhusionPassenger ::不明错误

5 个答案:

答案 0 :(得分:5)

对我来说,这个问题是由Spring(Rails快速加载器)没有获取Gem /路径变化引起的。我正在执行rails generate rspec:install并找不到json-1.8.1。

我可能执行了30个不同的命令 - 其中任何一个命令都可能对最终解决方案产生影响 - 但最终执行bin/spring stop允许进一步的rails命令工作,因为他们重新启动了Spring服务器更新的宝石列表。

答案 1 :(得分:5)

在Mac OS X Yosemite中尝试使用rails generate model命令时,我连续几次遇到过这种情况。尽管终端输出“无需更新”,但在我运行gem update rails后此问题仍然消失。

我正在运行Rails 4.1.7和ruby 2.1.4p265(2014-10-27修订版48166)[x86_64-darwin14.0]。

答案 2 :(得分:1)

使用时,我遇到了这个确切的错误。

问题是pow无法找到宝石,所以使用the solution from rvm,我在rails应用的根目录中创建了一个.powenv,其中包含以下内容:

# detect `$rvm_path`
if [ -z "${rvm_path:-}" ] && [ -x "${HOME:-}/.rvm/bin/rvm" ]
then rvm_path="${HOME:-}/.rvm"
fi
if [ -z "${rvm_path:-}" ] && [ -x "/usr/local/rvm/bin/rvm" ]
then rvm_path="/usr/local/rvm"
fi

# load environment of current project ruby
if
  [ -n "${rvm_path:-}" ] &&
  [ -x "${rvm_path:-}/bin/rvm" ] &&
  rvm_project_environment=`"${rvm_path:-}/bin/rvm" . do rvm env --path 2>/dev/null` &&
  [ -n "${rvm_project_environment:-}" ] &&
  [ -s "${rvm_project_environment:-}" ]
then
  echo "RVM loading: ${rvm_project_environment:-}"
  \. "${rvm_project_environment:-}"
else
  echo "RVM project not found at: $PWD"
fi

这解决了这个问题。

答案 3 :(得分:0)

我创建了一个shell脚本,为我运行unicorn_rails,即使我手动运行完全相同的命令,也会发出此错误。我将--login添加到脚本中hashbang行的末尾,并修复了它。

答案 4 :(得分:0)

我在使用yosemite

的mac上运行rails命令时遇到了同样的错误

执行'rbenv rehash'为我解决了