Ruby on rails 在任何源中都找不到json-1.8.1(Bundler::GemNotFound)

Ruby on rails 在任何源中都找不到json-1.8.1(Bundler::GemNotFound),ruby-on-rails,ruby,json,rack-pow,rvm,Ruby On Rails,Ruby,Json,Rack Pow,Rvm,我正在运行以下堆栈: ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-linux] RubyGems 2.2.2 Rails 4.1.0 捆绑包版本1.6.2 在运行apache的ubuntu上 我得到了以下错误: 在任何源中都找不到json-1.8.1(Bundler::GemNotFound) 当我查找json时,如下所示: $ gem list | grep json json (1.8.1) multi_json (1.9.2) 它在那里,但出于

我正在运行以下堆栈:

  • ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-linux]
  • RubyGems 2.2.2
  • Rails 4.1.0
  • 捆绑包版本1.6.2
在运行apache的ubuntu上

我得到了以下错误:

在任何源中都找不到json-1.8.1(Bundler::GemNotFound)

当我查找json时,如下所示:

$ gem list | grep json

json (1.8.1)
multi_json (1.9.2)
它在那里,但出于某种原因,乘客的信息如下:

$ gem list | grep json

json (1.8.1)
multi_json (1.9.2)
无法启动Ruby(Rack)应用程序

错误消息: 在任何源中都找不到json-1.8.1(Bundler::GemNotFound) 例外类别: PhusionPassenger::未知错误


对我来说,这个问题是由Spring(Rails快速加载程序)没有接收Gem/路径更改引起的。我正在执行
railsgenerate-rspec:install
,但没有找到json-1.8.1


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

我在尝试在Mac OS X Yosemite中使用
rails生成模型
命令。在我运行
gem update rails
之后,这个问题消失了,尽管终端输出“无需更新”


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

我创建了一个shell脚本来运行
unicorn\u rails
,即使我手动运行完全相同的命令,它也会抛出这个错误。我在脚本的hashbang行末尾添加了
--login
,这就解决了它。

我在使用and时遇到了这个错误

问题是pow找不到gems,因此使用,我在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

这就解决了问题。

我在mac和yosemite上运行rails命令时遇到了相同的错误


执行“
rbenv rehash
”为我解决了这个问题

运行
bundle install
时会得到什么?我只是通过从Gemfile.lock中删除所有json条目,然后运行bundle install来解决这个问题。谢谢@删除所有json条目后,Das无法将nil转换为字符串mysql2(0.3.15)lib/mysql2/client.rb:67:in
connect'mysql2(0.3.15)lib/mysql2/client.rb:67:in
initialize'您是否面临同样的问题?