rbenv — 'find_spec_for_exe': 找不到带有可执行包 (Gem::GemNotFoundException) 的 gem 捆绑器 (>= 0.a)
rbenv — 'find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
我是 rbenv 的新手(长期使用 RVM)。今天我彻底卸载了我的 RVM 并安装了 rbenv。我成功地安装了 Ruby 2.5.1。
但是当我今天尝试运行 bundle install
一个项目时,我得到了以下错误:
'find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
似乎我的捆绑器安装出了问题,但我不确定是什么地方出了问题。 运行 gem install bundler
和 sudo
不能解决问题。
这里是完整的轨迹:
$ echo $SHELL
/bin/zsh
$ cat ~/.gemrc
gem: --no-document
install: --no-document
update: --no-document
$ rbenv versions
system
* 2.5.1 (set by /Users/zulh/.rbenv/version)
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16]
$ which ruby
/Users/zulh/.rbenv/shims/ruby
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin16]
- INSTALLATION DIRECTORY: /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /Users/zulh/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /Users/zulh/.rbenv/versions/2.5.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/zulh/.rbenv/versions/2.5.1/bin
- SPEC CACHE DIRECTORY: /Users/zulh/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/zulh/.rbenv/versions/2.5.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-16
- GEM PATHS:
- /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
- /Users/zulh/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-document"
- "install" => "--no-document"
- "update" => "--no-document"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/zulh/.rbenv/versions/2.5.1/bin
- /usr/local/Cellar/rbenv/1.1.1/libexec
- /Users/zulh/.rbenv/shims
- /usr/local/bin
- /Users/zulh/go/bin
- /usr/local/bin
- /Users/zulh/go/bin
- /Users/zulh/.rbenv/shims
- /usr/local/bin
- /Users/zulh/go/bin
- /Users/zulh/.rbenv/shims
- /usr/local/bin
- /Users/zulh/go/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Library/Frameworks/Mono.framework/Versions/Current/Commands
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
$ which bundler
/Users/zulh/.rbenv/shims/bundler
$ bundler --version
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundler:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
$ cd projects/www.ruby-lang.org
$ bundle install --without production
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
$ sudo gem install bundler
Password:
Successfully installed bundler-2.0.1
1 gem installed
$ which bundler
/Users/zulh/.rbenv/shims/bundler
$ bundler --version
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundler:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
$ bundle install --without production
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
如何解决这个问题?
注意:我使用的是 OSX 10.12.6
只是想提一下,我今天在搜索时发现了它 - 并自己修复了它。这是关键;
无法找到 gem 捆绑器 (>= 0.a) 带有可执行捆绑包 (Gem::Gem NotFoundException)
我对此一无所知,我是一名幸运的黑客 - 我注意到在我尝试使用的检出 git 存储库中有一个 bin/bundle 可执行文件, 并试图 运行 直接出于绝望。上面的消息暗示(对我来说)某些可执行文件不工作,而不是它不存在(因为一些搜索缺少注释文本,并且根本无法 find ) 所以....无论如何。
[rndusr@monster live]$ bin/bundle
Traceback (most recent call last):
2: from bin/bundle:3:in `<main>'
1: from /home/rndusr/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:263:in `bin_path'
/home/rndusr/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': Could not find 'bundler' (1.16.6) required by your /usr/src/git/redacted/live/Gemfile.lock. (Gem::GemNotFoundException)
To update to the lastest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:1.16.6`
嘿,终于有一条有用的错误消息!
因此,我 运行 gem install bundler:1.16.6
并重新 运行 原来的命令,让我非常(来之不易)高兴的是,它终于奏效了。
我不是 100% 确定是否适合 'an answer' - 不要只是盲目地 运行 我来的命令,而是考虑重复这个过程以潜在地揭示你的问题有。祝你好运!
编辑以获得进一步的支持:在得出这个结论的同时,我还发现 bundle
命令会全面失败 - 但 仅在项目目录中 - 这进一步暗示它 100% 与项目相关。我不知道 bundle 是什么或者它在内部是如何工作的,但是通过这种行为我认为它是在 git repo 中子加载 scripts/executables(类似于 git 的命令可以与工作目录相关联)所以接下来是文件结构检查。那是发现 bin
文件夹的时候,其中有一个名为 bundle
的可执行文件 - 上面是一个完整的圆圈。
FWIW - 比我更了解 bundle
的人(我不太了解该向谁报告,或者即使这是异常行为)应该潜在地提出问题他们的 github 表示它正在默默地屏蔽他们创建的纯文本错误消息,以指导用户找到正确的解决方案。就我个人而言,我会让 bin/bundle
抛出一个退出代码,指示有用的输出即将到达 stderr
并将其通过管道传递给...
bundler was updated from 1.7 to 2 on Jan 4。由于更新,gem install bundler
将从 1 月 4 日起安装版本 2,如果您尝试在不指定版本的情况下安装捆绑器。 bundler 2.0 要求 rubygems
版本至少为 3.0。
首先,使用 gem --version
检查本地计算机上安装的 rubygems。如果您使用 ruby v2.5.1,您的 rubygems 版本将是 or 2.7.x 和 3.x.
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin17]
在 rubygems 版本 3.x 下,gem install bundler
命令将无法正常工作。
要解决问题,
1) 更新 ruby宝石
gem update --system
2) 安装旧版本 bundler
gem install bundler -v 1.17.3
3) 安装 Ruby 2.6。 2.6 于去年圣诞节发布,Ruby 2.6 merges bundler
gem and use rubygems
3.0.1 as default。从 Ruby 2.6 开始,您不需要手动安装 bundler。
rbenv install 2.6
这就是我最终解决这个问题的方法:
$ cd /path/to/my/project/
$ gem install bundler -v 1.17.3
$ bundle install
我正在使用 rbenv 1.1.1 和 ruby 2.5.1,在 运行 bundle install
时遇到同样的错误。 gem update --system
解决了问题
我删除了我的 Gemfile.lock
,之后它运行良好。
有时在项目目录中 运行 bundle update --bundler
就足够了。
我是 rbenv 的新手(长期使用 RVM)。今天我彻底卸载了我的 RVM 并安装了 rbenv。我成功地安装了 Ruby 2.5.1。
但是当我今天尝试运行 bundle install
一个项目时,我得到了以下错误:
'find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
似乎我的捆绑器安装出了问题,但我不确定是什么地方出了问题。 运行 gem install bundler
和 sudo
不能解决问题。
这里是完整的轨迹:
$ echo $SHELL
/bin/zsh
$ cat ~/.gemrc
gem: --no-document
install: --no-document
update: --no-document
$ rbenv versions
system
* 2.5.1 (set by /Users/zulh/.rbenv/version)
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16]
$ which ruby
/Users/zulh/.rbenv/shims/ruby
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin16]
- INSTALLATION DIRECTORY: /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /Users/zulh/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /Users/zulh/.rbenv/versions/2.5.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/zulh/.rbenv/versions/2.5.1/bin
- SPEC CACHE DIRECTORY: /Users/zulh/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/zulh/.rbenv/versions/2.5.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-16
- GEM PATHS:
- /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
- /Users/zulh/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-document"
- "install" => "--no-document"
- "update" => "--no-document"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/zulh/.rbenv/versions/2.5.1/bin
- /usr/local/Cellar/rbenv/1.1.1/libexec
- /Users/zulh/.rbenv/shims
- /usr/local/bin
- /Users/zulh/go/bin
- /usr/local/bin
- /Users/zulh/go/bin
- /Users/zulh/.rbenv/shims
- /usr/local/bin
- /Users/zulh/go/bin
- /Users/zulh/.rbenv/shims
- /usr/local/bin
- /Users/zulh/go/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Library/Frameworks/Mono.framework/Versions/Current/Commands
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
- /Users/zulh/projects/tifig/build/tifig
- /Applications/Postgres.app/Contents/Versions/latest/bin
$ which bundler
/Users/zulh/.rbenv/shims/bundler
$ bundler --version
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundler:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
$ cd projects/www.ruby-lang.org
$ bundle install --without production
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
$ sudo gem install bundler
Password:
Successfully installed bundler-2.0.1
1 gem installed
$ which bundler
/Users/zulh/.rbenv/shims/bundler
$ bundler --version
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundler:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
$ bundle install --without production
Traceback (most recent call last):
2: from /Users/zulh/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
1: from /Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/zulh/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
如何解决这个问题?
注意:我使用的是 OSX 10.12.6
只是想提一下,我今天在搜索时发现了它 - 并自己修复了它。这是关键;
无法找到 gem 捆绑器 (>= 0.a) 带有可执行捆绑包 (Gem::Gem NotFoundException)
我对此一无所知,我是一名幸运的黑客 - 我注意到在我尝试使用的检出 git 存储库中有一个 bin/bundle 可执行文件, 并试图 运行 直接出于绝望。上面的消息暗示(对我来说)某些可执行文件不工作,而不是它不存在(因为一些搜索缺少注释文本,并且根本无法 find ) 所以....无论如何。
[rndusr@monster live]$ bin/bundle
Traceback (most recent call last):
2: from bin/bundle:3:in `<main>'
1: from /home/rndusr/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:263:in `bin_path'
/home/rndusr/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': Could not find 'bundler' (1.16.6) required by your /usr/src/git/redacted/live/Gemfile.lock. (Gem::GemNotFoundException)
To update to the lastest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:1.16.6`
嘿,终于有一条有用的错误消息!
因此,我 运行 gem install bundler:1.16.6
并重新 运行 原来的命令,让我非常(来之不易)高兴的是,它终于奏效了。
我不是 100% 确定是否适合 'an answer' - 不要只是盲目地 运行 我来的命令,而是考虑重复这个过程以潜在地揭示你的问题有。祝你好运!
编辑以获得进一步的支持:在得出这个结论的同时,我还发现 bundle
命令会全面失败 - 但 仅在项目目录中 - 这进一步暗示它 100% 与项目相关。我不知道 bundle 是什么或者它在内部是如何工作的,但是通过这种行为我认为它是在 git repo 中子加载 scripts/executables(类似于 git 的命令可以与工作目录相关联)所以接下来是文件结构检查。那是发现 bin
文件夹的时候,其中有一个名为 bundle
的可执行文件 - 上面是一个完整的圆圈。
FWIW - 比我更了解 bundle
的人(我不太了解该向谁报告,或者即使这是异常行为)应该潜在地提出问题他们的 github 表示它正在默默地屏蔽他们创建的纯文本错误消息,以指导用户找到正确的解决方案。就我个人而言,我会让 bin/bundle
抛出一个退出代码,指示有用的输出即将到达 stderr
并将其通过管道传递给...
bundler was updated from 1.7 to 2 on Jan 4。由于更新,gem install bundler
将从 1 月 4 日起安装版本 2,如果您尝试在不指定版本的情况下安装捆绑器。 bundler 2.0 要求 rubygems
版本至少为 3.0。
首先,使用 gem --version
检查本地计算机上安装的 rubygems。如果您使用 ruby v2.5.1,您的 rubygems 版本将是 or 2.7.x 和 3.x.
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin17]
在 rubygems 版本 3.x 下,gem install bundler
命令将无法正常工作。
要解决问题,
1) 更新 ruby宝石
gem update --system
2) 安装旧版本 bundler
gem install bundler -v 1.17.3
3) 安装 Ruby 2.6。 2.6 于去年圣诞节发布,Ruby 2.6 merges bundler
gem and use rubygems
3.0.1 as default。从 Ruby 2.6 开始,您不需要手动安装 bundler。
rbenv install 2.6
这就是我最终解决这个问题的方法:
$ cd /path/to/my/project/
$ gem install bundler -v 1.17.3
$ bundle install
我正在使用 rbenv 1.1.1 和 ruby 2.5.1,在 运行 bundle install
时遇到同样的错误。 gem update --system
解决了问题
我删除了我的 Gemfile.lock
,之后它运行良好。
有时在项目目录中 运行 bundle update --bundler
就足够了。