我正在运行以下堆栈:
在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 ::不明错误
答案 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
'为我解决了