今天早上我正在创建一个新的rails应用程序。我决定重新开始,所以我删除了之前我做过的事情。当我尝试运行rails new appname
时,我得到了:
Installing ruby_dep 1.5.0
Gem::InstallError: ruby_dep requires Ruby version >= 2.2.5, ~> 2.2.
...
An error occurred while installing ruby_dep (1.5.0), and Bundler cannot continue.
Make sure that `gem install ruby_dep -v '1.5.0'` succeeds before bundling.
run bundle exec spring binstub --all
Could not find gem 'capybara (~> 2.13)' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.
192-168-1-4:website Rhys$ bundle install
Could not locate Gemfile
我不知道为什么我在成功初始化其他rails应用程序后几分钟才开始收到此错误。
我在OS X上。
答案 0 :(得分:1)
您是否尝试按照说明操作并安装gem install ruby_dep -v '1.5.0'
?
要运行bundle install,你需要在根目录,如果你在其他文件夹中,你将无法运行该命令。
如果你转到ruby_dep github page,你就会明白问题的原因。它可能与你的红宝石版本有关
我引用ruby_dep:
根据.travis.yml文件自动帮助确定支持的Rubies
然后也非常有用
重要!! :如何正确解决问题
如果您因为遇到问题而来到这里,请尝试以下方法:
<强> 1。升级Ruby。
理想情况下最新稳定可能。它可能有点(或非常)不方便,但从长远来看它对每个人都有帮助。
通过让他们专注于更新更好的Rubies,向真棒的Ruby Core Team展示您对他们工作的支持。
<强> 2。无论如何升级Ruby。
如果因环境而无法升级Ruby,请不管怎样这样做。
E.g。如果由于RVM问题而无法在OSX上安装Ruby 2.2.5(即使Ruby 2.2.5已经在5个月前发布),那么显然RVM项目可能需要某种帮助或支持。帮助RVM维护者 - 他们真棒!或者,分叉项目并英勇地将事情掌握在自己手中。
如果Apple(或亚马逊或任何托管服务或公司)未提供最新推荐的受支持版本的Ruby,请使用Homebrew(或从源代码构建)或向这些公司投诉以提供支持。他们阻止用户获得更好/更快的红宝石是不公平的。
第3。升级Bundler(但即使是最新的Bundler也可能不够!)
升级到Bundler版本,可以自动为您降级宝石。如果这没有帮助,请尝试以下解决方法:https://github.com/guard/listen/wiki/Ruby-version-requirements
Bundler中这个“降级”功能的工作正在进行中,因此Bundler的最佳版本可能仍然是未发布的版本(测试版,候选发布版等)。
如果可以,请帮助Bundler团队 - 他们真棒!
<强> 4。如果一切都失败了,请学习SemVer并使用它!
通常,有旧版本的gem支持您需要的Ruby版本。有关如何设置版本约束的信息,请参阅http://semver.org/。然后,查看宝石的发行说明,了解您需要知道的内容(或遗漏的内容)。
E.g。您可以降级到RubyDep 1.3.1(gem'ruby_dep','〜&gt; 1.3.1'),这允许使用Ruby 2.2.4例如。或者,您可以使用Listen 3.0.x(gem'listen','〜&gt; 3.0.8')来避免处理RubyDep和Listen。
如果由于任何原因缺少这些gem版本(例如,在3.1.x中修复了Listen 3.0.x中的错误),那么例如打开向3.0.x分支后台移植更改的请求。
这个想法:如果你不需要最新的Ruby ......那么你可能也不需要最新的每一颗宝石。
<强> 5。如果一切都不可能或不起作用......
让我知道它(打开一个问题),因为我可能对上述所有步骤的失败感到困惑。
或者这是我不知道的错误。请报告 - 以防万一...