捆绑器:在使用 gem 进行捆绑安装期间,找不到带有可执行捆绑包 (Gem::GemNotFoundException) 的 gem 捆绑器 (>= 0.a)
Bundler: can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException) during bundle install with gem
我正在执行以下脚本:
gem install rdoc --no-document
gem install bundle
bundle
输出:
+ gem install rdoc --no-document
Successfully installed rdoc-6.1.1
1 gem installed
+ gem install bundle
Successfully installed bundle-0.0.1
Parsing documentation for bundle-0.0.1
Done installing documentation for bundle after 2 seconds
1 gem installed
1 gem installed
+ bundle install
/usr/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)
from /usr/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
from /srv/myuser/.gem/ruby/2.5.0/bin/bundle:23:in `<main>'
我已将 /srv/myuser/.gem/ruby/2.5.0/bin
添加到我的路径中,因此我能够安装 gems。
gem env
显示
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.7
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /srv/myuser/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /srv/myuser/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/2.5.0
- /srv/myuser/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--user-install"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/bin
gem list
显示已安装的 gem。
我也可以在执行时找到捆绑包:
ls -ltrah /srv/myuser/.gem/ruby/2.5.0/bin
我也试过安装捆绑器,但也没有用。
我做错了什么?
gem which bundle
什么也没显示。gem spec bundle
显示了。
更新:我尝试在 运行 bundle 之前安装 bundler,但同样的问题出现在:
gem list bundle
显示
bundle (0.0.1)
bundler (2.0.1)
根据 post 中提到的描述,在 运行 执行以下命令之前:
bundle install
在脚本中,您需要运行以下命令:
gem install bundler
因此,工作命令的顺序为:
gem install bundler
bundle install
如果不起作用,请更新捆绑程序命令:
gem install bundler -v '1.17.3'
下面提到的 link:
给出了捆绑器 2.0 中功能中断的原因
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
Bundler 版本 2 引入了一项新功能,可以自动使用项目 Gemfile.lock
中指定的 Bundler 版本。因此,如果您现有的 Gemfile.lock
底部有这样一行
BUNDLED WITH
1.17.3
Bundler 将尝试 运行 使用 Bundler 版本 < 2.0。由于您刚刚安装了 Bundler 2.0.1(和 Rubygems >= 2.7.0),因此失败并显示这条无用的错误消息。
要解决此问题,您可以
- 从您的
Gemfile.lock
中删除行并从现在开始在所有地方使用捆绑器 2.x,或者
- 安装 1.x 版本
gem install bundler -v '< 2.0'
以使用 Gemfile.lock
指定的适当版本。
可以在 Bundler blog.
上找到有关此内容的更多信息
我最近遇到了同样的问题。
就我而言,我在捆绑器上安装了一个与 Gemfile.lock 中记录的版本不同的版本。请检查
gem install bundler -v '< 2.0'
我什至做不到 bundle -v
。整理如下:
gem update --system
从这里获取信息(类似问题):find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException)
可能 ruby + gem + bundler
之间存在一些版本不匹配
我今天刚遇到同样的错误。我之前在系统中安装的捆绑器版本是:1.16.6
按照 How to Upgrade to Bundler 2 上的官方捆绑文档中的说明进行操作,以下两个步骤就成功了:
gem install bundler
(帮助您获取最新版本的捆绑器,截至今天为 2.0.2)
bundle update --bundler
我遇到了同样的问题。问题是由于 RubyGems 在系统
上找不到捆绑器 gem 的可执行捆绑包
要修复它,首先 运行
gem install bundler
如果您没有在本地安装捆绑器 gem,则 运行
gem update --system
就这些了
希望对您有所帮助
将 mac os 升级到 Catalina 后,我看到了 travis 包的类似错误消息。
Traceback (most recent call last):
2: from /usr/local/bin/travis:22:in `<main>'
1: from /usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:263:in `bin_path'
/usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:284:in `find_spec_for_exe': can't find gem travis (>= 0.a) with executable travis (Gem::GemNotFoundException)
为了解决这个问题,我从源代码重新安装了 travis。
brew remove travis;
brew install -s travis
您必须通过 运行 安装 RubyGems 正在寻找的 Bundler 的确切版本:
$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
这可能有助于解决问题
bundle update --bundler
是的,这个有效:
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
发件人:https://bundler.io/blog/2019/05/14/solutions-for-cant-find-gem-bundler-with-executable-bundle.html
我正在执行以下脚本:
gem install rdoc --no-document
gem install bundle
bundle
输出:
+ gem install rdoc --no-document
Successfully installed rdoc-6.1.1
1 gem installed
+ gem install bundle
Successfully installed bundle-0.0.1
Parsing documentation for bundle-0.0.1
Done installing documentation for bundle after 2 seconds
1 gem installed
1 gem installed
+ bundle install
/usr/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)
from /usr/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
from /srv/myuser/.gem/ruby/2.5.0/bin/bundle:23:in `<main>'
我已将 /srv/myuser/.gem/ruby/2.5.0/bin
添加到我的路径中,因此我能够安装 gems。
gem env
显示
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.7
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /srv/myuser/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /srv/myuser/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/2.5.0
- /srv/myuser/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--user-install"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/bin
gem list
显示已安装的 gem。
我也可以在执行时找到捆绑包:
ls -ltrah /srv/myuser/.gem/ruby/2.5.0/bin
我也试过安装捆绑器,但也没有用。 我做错了什么?
gem which bundle
什么也没显示。gem spec bundle
显示了。
更新:我尝试在 运行 bundle 之前安装 bundler,但同样的问题出现在:
gem list bundle
显示
bundle (0.0.1)
bundler (2.0.1)
根据 post 中提到的描述,在 运行 执行以下命令之前:
bundle install
在脚本中,您需要运行以下命令:
gem install bundler
因此,工作命令的顺序为:
gem install bundler
bundle install
如果不起作用,请更新捆绑程序命令:
gem install bundler -v '1.17.3'
下面提到的 link:
给出了捆绑器 2.0 中功能中断的原因https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
Bundler 版本 2 引入了一项新功能,可以自动使用项目 Gemfile.lock
中指定的 Bundler 版本。因此,如果您现有的 Gemfile.lock
底部有这样一行
BUNDLED WITH
1.17.3
Bundler 将尝试 运行 使用 Bundler 版本 < 2.0。由于您刚刚安装了 Bundler 2.0.1(和 Rubygems >= 2.7.0),因此失败并显示这条无用的错误消息。
要解决此问题,您可以
- 从您的
Gemfile.lock
中删除行并从现在开始在所有地方使用捆绑器 2.x,或者 - 安装 1.x 版本
gem install bundler -v '< 2.0'
以使用Gemfile.lock
指定的适当版本。
可以在 Bundler blog.
上找到有关此内容的更多信息我最近遇到了同样的问题。 就我而言,我在捆绑器上安装了一个与 Gemfile.lock 中记录的版本不同的版本。请检查
gem install bundler -v '< 2.0'
我什至做不到 bundle -v
。整理如下:
gem update --system
从这里获取信息(类似问题):find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException)
可能 ruby + gem + bundler
之间存在一些版本不匹配我今天刚遇到同样的错误。我之前在系统中安装的捆绑器版本是:1.16.6
按照 How to Upgrade to Bundler 2 上的官方捆绑文档中的说明进行操作,以下两个步骤就成功了:
gem install bundler
(帮助您获取最新版本的捆绑器,截至今天为 2.0.2)bundle update --bundler
我遇到了同样的问题。问题是由于 RubyGems 在系统
上找不到捆绑器 gem 的可执行捆绑包要修复它,首先 运行
gem install bundler
如果您没有在本地安装捆绑器 gem,则 运行
gem update --system
就这些了
希望对您有所帮助
将 mac os 升级到 Catalina 后,我看到了 travis 包的类似错误消息。
Traceback (most recent call last):
2: from /usr/local/bin/travis:22:in `<main>'
1: from /usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:263:in `bin_path'
/usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:284:in `find_spec_for_exe': can't find gem travis (>= 0.a) with executable travis (Gem::GemNotFoundException)
为了解决这个问题,我从源代码重新安装了 travis。
brew remove travis;
brew install -s travis
您必须通过 运行 安装 RubyGems 正在寻找的 Bundler 的确切版本:
$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
这可能有助于解决问题
bundle update --bundler
是的,这个有效:
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
发件人:https://bundler.io/blog/2019/05/14/solutions-for-cant-find-gem-bundler-with-executable-bundle.html