【问题标题】:can't find gem bundler Ruby找不到 gem bundler Ruby
【发布时间】:2018-01-30 16:44:48
【问题描述】:

使用 Mac OS 13,rbenv。

ruby 2.5.0p0(2017-12-25 修订版 61468)[x86_64-darwin17]

Rails 5.1.4

捆绑器版本 1.16.1

rbenv 1.1.1

我正在尝试启动一个新的 Rails 应用程序,然后得到这个:

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems.rb:241:in `bin_path': can't find gem bundler (>= 0) (Gem::GemNotFoundException)
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/lib/rails/generators/app_base.rb:382:in `bundle_command'
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/lib/rails/generators/app_base.rb:416:in `run_bundle'
from (eval):1:in `run_bundle'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `block in invoke_all'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `each'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `map'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `invoke_all'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/group.rb:232:in `dispatch'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/lib/rails/commands/application/application_command.rb:24:in `perform'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
from /Library/Ruby/Gems/2.3.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/lib/rails/command/base.rb:63:in `perform'
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/lib/rails/command.rb:44:in `invoke'
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/lib/rails/cli.rb:16:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.4/exe/rails:9:in `<top (required)>'
from /usr/local/bin/rails:22:in `load'
from /usr/local/bin/rails:22:in `<main>'

据我了解,这与 Ruby 版本有关,但我不知道如何解决该问题。

【问题讨论】:

  • 将引发错误的命令添加到您的问题
  • Ruby 2.5 将默认包含 bundler gem,但在最后一刻他们取消了它。所以现在,我们仍然需要在新的 Ruby 2.5 安装上执行gem install bundler,然后才能执行bundle install。顺便说一句,看起来您正在使用您的系统 Ruby。您应该强烈考虑使用像 rbenv 这样的 Ruby 环境管理器。
  • “将引发错误的命令添加到您的问题中”我运行rails new app
  • 是的,我做了gem install bundler 并且我已经用 rbenv 安装了 Ruby 2.5.0。
  • 你安装了 ruby​​ 2.3 吗?我怀疑 ruby​​ 2.5 不是当前的默认版本。似乎它仍然可以访问 2.3 版:来自 /System/Library/Frameworks/Ruby.framework/Versions/2.3/

标签: ruby-on-rails ruby


【解决方案1】:

看来您可能需要执行 gem install bundler 并获取 bundler gem 以启动并运行 rails。

【讨论】:

  • 哦,我做到了,但没有帮助。
  • 很高兴知道!如果您包含一些您已经尝试过的解决方案(和结果),那将会很有帮助。此外,@moveson 推荐了一个版本控制/环境管理器,例如 rbenv 或 rvm 非常有用。
  • 对不起,我应该说的。我的错。到目前为止,我已经尝试过 gem install bundler 并使用 rbenv。就是这样。
  • 不用担心。在使用 rbenv 之前,您之前安装过 ruby​​ 吗?如果你运行which bundle,路径是什么?
  • 我只是重新安装了所有东西,它现在可以工作了。谢谢你的帮助。也许问题是我安装了 Rails,然后 rbenv 安装了新的 Ruby 版本。
【解决方案2】:

步骤(1):安装捆绑器 gem:

sudo gem install bundler

完成后,您应该会收到类似以下的消息:

Fetching: bundler-1.16.1.gem (100%)
Successfully installed bundler-1.16.1
Parsing documentation for bundler-1.16.1
Installing ri documentation for bundler-1.16.1
Done installing documentation for bundler after 6 seconds
1 gem installed

第 (2) 步:尝试检查捆绑程序版本:

bundle -v

你应该得到一个这样的版本号:

Bundler version 1.16.1

第 (3) 步:现在您可以使用捆绑安装:

bundle install

希望我的回答对你有帮助。

【讨论】:

猜你喜欢
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2022-08-14
  • 2023-03-14
  • 2018-04-12
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多