find gem bundler (>= 0.a) (gem::GemNotFoundException)

我使用sudo bundle install,这可能是问题的原因?

现在我有:

  • gem -v 2.6.14
  • ruby -v ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-darwin15]
  • jekyll -v jekyll 3.6.2
  • bundle -vBundler版本1.16.0.pre.3

当我试图运行bundle exec jekyll serve或只是jekyll serve时,我得到以下错误

/Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:271:in `find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException)
from /Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:299:in `activate_bin_path'
from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/bundle:23:in `<main>'
from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in `eval'
from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in `<MacBooMacBook-MacBook-MacBook-Pro-MacBook-PrMacBook-MacBooMacBMaMacBMaMaMaMaMaMaMaMaMacBMaMaMaMacBMa

另外,当访问我的博客cd my_path所在的文件夹时,我得到以下消息:

VM使用你的Gemfile来选择Ruby,这一切都很好- Heroku也这样做, 你可以通过'rvm rvmrc warning ignore /Library/WebServer/Documents/blog/Gemfile'忽略这些警告。 要忽略所有文件的警告,请执行'rvm rvmrc warning ignore allGemfiles'命令。 未知ruby解释器版本(不知道如何处理):RUBY_VERSION.

我不知道该怎么解决。我只是想创建我的静态博客,老实说,我不知道Ruby, Gem或Bundle:)所以我很感激一些见解!

152431 次浏览

更新:

根据@noraj的回答和@Niels Kristian的评论,下面的命令应该可以完成这项工作。

gem update --system
bundle install

我写这个是为了防止有人遇到我这样的问题。

gem install bundler显示一切安装良好。

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

当我输入bundle时,有一个错误:

/Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in `load': cannot load such file -- /Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/exe/bundle (LoadError)
from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in `<main>'
from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>'

在文件夹/Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/中没有bundler-1.16.0文件夹。

固定这个与sudo gem install bundler

我今天也遇到了同样的问题。我通过为旧的rvm删除.bashrc中的任何PATH来解决这个问题。

我的问题是我正在使用RVM并且激活了错误的Ruby版本…

希望这能帮助到至少一个人

我必须做rake clean --force。然后是gem install rake等等。

如果你改变了你正在使用rvm use的ruby版本,删除Gemfile。锁定后再试一次。

在我的情况下,问题是Gemfile.lock文件有一个1.16.1BUNDLED_WITH版本和gem install bundler安装的版本2.0.1,所以在寻找正确的文件夹时,有一个版本不匹配

gem install bundler -v 1.16.1修复了它

当然,你也可以用上一个bundler版本更改你的Gemfile.lockBUNDLED_WITH,并使用最新的软件,正如Sam3000所建议的那样

我把红宝石等级从2.5降到了2.5。X到2.4。X在我的特殊情况下。

真正的答案在这里,如果你试图安装bundler 2.0.1或2.0.0,因为bundler需要RubyGems v3.0.0

昨天我发布了Bundler 2.0,它引入了许多突破性的变化。其中一个变化是将Bundler设置为需要RubyGems v3.0.0。在发布之后,很明显,我们的许多用户都遇到了需要一个全新RubyGems版本的Bundler 2的问题。

我们一直在密切倾听用户的反馈,并决定将RubyGems的需求放宽到v2.5.0。我们已经发布了一个新的Bundler版本v2.0.1,它调整了这个需求。

更多信息,参见:https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html

Gemfile开放。锁定,这是在你的应用程序文件夹的根目录。滚动到文件的末尾,查看使用的绑定器版本。然后确保你安装了使用的捆绑包版本:

gem install bundler -v x.xx.xx

或者-删除Gemfile。锁定和捆绑,如果你有更高的捆绑版本安装。

选择在你,我的朋友。

gem update --system

将更新rubygems并修复这个问题。

这就解决了问题:

  1. 删除Gemfile。锁rm Gemfile.lock
  2. 再次运行bundle install

编辑:不要在生产中这样做!

对于生产转到这个答案: https://stackoverflow.com/posts/54083113/revisions < / p >

原因是你当前的ruby环境,你得到了一个不同版本的捆绑器与Gemfile.lock中的版本。

  • 安全的方法,在Gemfile.lock中安装相同版本的捆绑器,如果发生一些不兼容的事情,这不会破坏任何东西。
  • 困难的方法,只是删除Gemfile.lock,并运行bundle install

在我的情况下,上述建议对我不起作用。我的情况有点不同。

当我尝试使用gem install bundler安装bundler ..但我正在

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

然后我尝试使用sudo gem install bundler然后我得到

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

然后我尝试了sudo gem install bundler -n /usr/local/bin(只是/usr/bin力在我的情况下工作)。

然后成功安装bundler

编辑:我使用MacOS,也许/usr/bin不适合我的原因(https://stackoverflow.com/a/34989655/3786657注释)

除了许多答案之外,我的问题来自于想要使用docker的ruby作为基础,但后来又在上面使用了rbenv。这会搞砸很多事情。

在这种情况下,我通过:

  • Gemfile。锁版本确实需要更新-将“wrapped WITH”更改为最新版本确实在某一点上改变了错误消息,所以可能是必需的
  • 在.bash_profile或.bashrc中,清除环境变量:
unset GEM_HOME
unset BUNDLE_PATH

在那之后,rbenv工作得很好。不知道这些环境变量是如何被装载在第一个地方…

安装与你的Gemfile.lock使用相匹配的捆绑器:

gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

我在运行bin/dev时得到这个错误

bin/dev
/Users/st/.rbenv/versions/3.0.3/lib/ruby/site_ruby/3.0.0/rubygems.rb:265:in `find_spec_for_exe': can't find gem foreman (>= 0.a) with executable foreman (Gem::GemNotFoundException)
from /Users/st/.rbenv/versions/3.0.3/lib/ruby/site_ruby/3.0.0/rubygems.rb:284:in `activate_bin_path'
from /Users/st/.rbenv/versions/3.0.3/bin/foreman:25:in `<main>'

我尝试了很多方法,但解决问题的方法很简单:

gem install foreman

现在bin/dev又像预期的那样工作了。