捆绑包不适用于 rbenv
Bundle not working with rbenv
我正在尝试将捆绑器与 rbenv 一起使用。我一直工作到今天。我可能做的唯一破坏它的事情是 gem pristine --all
或 gem cleanup
?尝试安装捆绑器时出现以下错误。
Antarrs-MacBook-Pro:some-app antarrbyrd$ sudo gem install bundler
Password:
Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?
Successfully installed bundler-1.7.12
Parsing documentation for bundler-1.7.12
Done installing documentation for bundler after 3 seconds
1 gem installed
Antarrs-MacBook-Pro:some-app antarrbyrd$ bundle install
/Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 8 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/antarrbyrd/.gem', execute `gem env` for more information
from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /usr/local/bin/bundle:22:in `<main>'
当我执行 rbenv rehash
或 rbenv bundler on
时出现此错误
Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?
~/.bash_profile
export BUNDLER_EDITOR=atom
export PATH=$PATH:/usr/local/opt/android-sdk/build-tools/21.1.2
export HOMEBREW_GITHUB_API_TOKEN=...
export ANDROID_HOME=/usr/local/opt/android-sdk
export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
# Allow local Gem Managment
# export GEM_HOME="$HOME/.gem"
# export GEM_PATH="$HOME/.gem"
# export PATH="$HOME/.gem/bin:$PATH"
gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.2 (2014-05-08 patchlevel 95) [x86_64-darwin14.0]
- INSTALLATION DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /usr/local/var/rbenv/versions/2.1.2/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/bin
- SPEC CACHE DIRECTORY: /Users/antarrbyrd/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
- /Users/antarrbyrd/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "-n/usr/local/bin"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/var/rbenv/versions/2.1.2/bin
- /usr/local/Cellar/rbenv/0.4.0/libexec
- /Users/antarrbyrd/.gem/bin
- /usr/local/var/rbenv/shims
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/var/rbenv/shims
- /Users/antarrbyrd/.rbenv/bin
- /Users/antarrbyrd/.rbenv/shims
- /Users/antarrbyrd/.gem/bin
- /usr/local/opt/android-sdk/build-tools/21.1.2
更新
我通过 brew 重新安装了 rbenv,现在 运行 bundle install 时出现以下错误。
The `bundle' command exists in these Ruby versions:
2.1.5
对乔尔的回应
Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v ruby
/usr/local/var/rbenv/shims/ruby
Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v bundle
/usr/local/bin/bundle
Antarrs-MacBook-Pro:myapp antarrbyrd$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
Antarrs-MacBook-Pro:myapp antarrbyrd$ bundle -v
Bundler version 1.7.12
Antarrs-MacBook-Pro:myapp antarrbyrd$
您的安装陷入循环。
切换到一个不是您的应用程序的目录,并且该目录没有 Gemfile。
然后执行通常的 gem install bundle
(如果需要,可以使用 sudo
)
然后切换到您的应用程序目录,并执行通常的操作 bundle install
。
这是否解决了您的问题?
如果您需要更多帮助,可以 运行 这些命令然后将结果粘贴到您的问题中吗?
$ command -v ruby
$ command -v bundle
$ ruby -v
$ bundle -v
查找结果是否与您的预期不符。这将帮助您追踪正在发生的事情。您可能需要更新您的 Gemfile Ruby 版本。
(此外,您可能需要考虑从 rbenv
更改为 chruby
,因为恕我直言,这些路径问题更好)
我有一个类似的问题 运行ning Guard with Foreman。
我对 运行 的原始命令是:
bundle exec foreman run guard -c
这给了我这些错误:
11:07:52 - INFO - Run all
11:07:52 - INFO - Running all specs
/Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 146 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/MyUser/devel/o2/vesta/vendor/bundle/ruby/2.2.0', execute `gem env` for more information
from /Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /Users/MyUser/.rbenv/versions/2.2.0/bin/bundle:22:in `<main>'
简单的解决方法是不对工头使用 bundle exec
,而是对守卫使用它。例如
foreman run bundle exec guard -c
希望对您有所帮助。
以下是对遗留项目有用的方法:
- 通过 rbenv
设置正确的 ruby 版本
$ cd YOUR_PROJECT_DIRECTORY
$ rbenv install 2.1.0
$ rbenv local 2.1.0
- 如果安装包时仍然出现错误,请查找 PATH 警告:
$ gem install bundle
WARNING: You don't have /Users/lex/.gem/ruby/2.1.0/bin in your PATH,
gem executables will not run.
Successfully installed bundle-0.0.1
1 gem installed
- 更新您的路径:
$ PATH=/Users/lex/.gem/ruby/2.1.0/bin:$PATH
- 再试一次:
$ bundle install
Fetching: bundler-1.11.2.gem (100%)
HTTP GET https://bundler.rubygems.org/api/v1/dependencies
HTTP 200 OK
Fetching gem metadata from https://rubygems.org/
. . .
使用 sudo 安装 gems 通常不是你想做的。
我得到了:
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.3.0
升级到 Ruby 2.3.1
后
解决方法是:
gem install rails
来自工作文件夹
尝试使用:
bin/bundle
而不是
bundle
尝试全局设置ruby
rbenv global 2.3.1
gem install bundler
您需要为您使用的每个 Ruby 版本重新安装捆绑程序。
参考:github issue
如果 none 其他解决方案适合您,请尝试此方法。
出于某种原因,我无法在特定 ruby 版本上安装捆绑器,因此重新安装捆绑器对我没有任何帮助。
但是我注意到 rbenv whence bundle
如何指定捆绑包在某些 ruby 版本中处于活动状态,而在其他版本中则不是。如果您在没有捆绑器的情况下查看 gem 的路径(对我来说这是 ~/.rbenv/versions/2.5.1/bin/
),您会注意到它不存在。然而,在其他可以识别的版本下,您会看到可执行文件在那里(对我来说它在 ~/.rbenv/versions/2.3.1/bin/bundle
下)。
只需将可执行文件从工作 ruby 版本复制到损坏的版本。然后在文件的顶部你会注意到 sha-bang 被设置为另一个 ruby 版本(对我来说这是 #!/Users/myuser/.rbenv/versions/2.3.1/bin/ruby
)。将版本路径更改为您要修复的 ruby 版本,然后它就会神奇地开始工作。
我今天遇到了类似的问题。我的问题已解决如下:
system dependencies
- rvenv
- ruby 2.5.0
- rails 5.1.6
检查 Gemfile.lock 中的捆绑器版本
BUNDLED WITH
1.17.3
安装特定版本的捆绑器
$ gem install bundler -v 1.17.3
Fetching bundler-1.17.3.gem
Successfully installed bundler-1.17.3
Parsing documentation for bundler-1.17.3
Done installing documentation for bundler after 3 seconds
1 gem installed
希望这会对某人有所帮助。
要安装 Ruby
小于 2.3.0
的捆绑器,请使用以下命令
gem install bundler -v '< 2'
None 所提供的答案对我有用,所以我必须完全卸载 rbenv
以及与 Ruby 相关的所有内容,然后安装 Ruby 2.7.1用自制软件; brew install ruby
.
我遇到了完全相同的问题,并尝试了这里和整个互联网上的一切,但最终对我有用的命令是:
gem update --system
我正在尝试将捆绑器与 rbenv 一起使用。我一直工作到今天。我可能做的唯一破坏它的事情是 gem pristine --all
或 gem cleanup
?尝试安装捆绑器时出现以下错误。
Antarrs-MacBook-Pro:some-app antarrbyrd$ sudo gem install bundler
Password:
Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?
Successfully installed bundler-1.7.12
Parsing documentation for bundler-1.7.12
Done installing documentation for bundler after 3 seconds
1 gem installed
Antarrs-MacBook-Pro:some-app antarrbyrd$ bundle install
/Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 8 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/antarrbyrd/.gem', execute `gem env` for more information
from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /usr/local/bin/bundle:22:in `<main>'
当我执行 rbenv rehash
或 rbenv bundler on
时出现此错误
Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?
~/.bash_profile
export BUNDLER_EDITOR=atom
export PATH=$PATH:/usr/local/opt/android-sdk/build-tools/21.1.2
export HOMEBREW_GITHUB_API_TOKEN=...
export ANDROID_HOME=/usr/local/opt/android-sdk
export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
# Allow local Gem Managment
# export GEM_HOME="$HOME/.gem"
# export GEM_PATH="$HOME/.gem"
# export PATH="$HOME/.gem/bin:$PATH"
gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.2 (2014-05-08 patchlevel 95) [x86_64-darwin14.0]
- INSTALLATION DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /usr/local/var/rbenv/versions/2.1.2/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/bin
- SPEC CACHE DIRECTORY: /Users/antarrbyrd/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
- /Users/antarrbyrd/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "-n/usr/local/bin"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/var/rbenv/versions/2.1.2/bin
- /usr/local/Cellar/rbenv/0.4.0/libexec
- /Users/antarrbyrd/.gem/bin
- /usr/local/var/rbenv/shims
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/var/rbenv/shims
- /Users/antarrbyrd/.rbenv/bin
- /Users/antarrbyrd/.rbenv/shims
- /Users/antarrbyrd/.gem/bin
- /usr/local/opt/android-sdk/build-tools/21.1.2
更新
我通过 brew 重新安装了 rbenv,现在 运行 bundle install 时出现以下错误。
The `bundle' command exists in these Ruby versions:
2.1.5
对乔尔的回应
Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v ruby
/usr/local/var/rbenv/shims/ruby
Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v bundle
/usr/local/bin/bundle
Antarrs-MacBook-Pro:myapp antarrbyrd$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
Antarrs-MacBook-Pro:myapp antarrbyrd$ bundle -v
Bundler version 1.7.12
Antarrs-MacBook-Pro:myapp antarrbyrd$
您的安装陷入循环。
切换到一个不是您的应用程序的目录,并且该目录没有 Gemfile。
然后执行通常的 gem install bundle
(如果需要,可以使用 sudo
)
然后切换到您的应用程序目录,并执行通常的操作 bundle install
。
这是否解决了您的问题?
如果您需要更多帮助,可以 运行 这些命令然后将结果粘贴到您的问题中吗?
$ command -v ruby
$ command -v bundle
$ ruby -v
$ bundle -v
查找结果是否与您的预期不符。这将帮助您追踪正在发生的事情。您可能需要更新您的 Gemfile Ruby 版本。
(此外,您可能需要考虑从 rbenv
更改为 chruby
,因为恕我直言,这些路径问题更好)
我有一个类似的问题 运行ning Guard with Foreman。 我对 运行 的原始命令是:
bundle exec foreman run guard -c
这给了我这些错误:
11:07:52 - INFO - Run all
11:07:52 - INFO - Running all specs
/Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 146 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/MyUser/devel/o2/vesta/vendor/bundle/ruby/2.2.0', execute `gem env` for more information
from /Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /Users/MyUser/.rbenv/versions/2.2.0/bin/bundle:22:in `<main>'
简单的解决方法是不对工头使用 bundle exec
,而是对守卫使用它。例如
foreman run bundle exec guard -c
希望对您有所帮助。
以下是对遗留项目有用的方法:
- 通过 rbenv 设置正确的 ruby 版本
$ cd YOUR_PROJECT_DIRECTORY
$ rbenv install 2.1.0
$ rbenv local 2.1.0
- 如果安装包时仍然出现错误,请查找 PATH 警告:
$ gem install bundle
WARNING: You don't have /Users/lex/.gem/ruby/2.1.0/bin in your PATH,
gem executables will not run.
Successfully installed bundle-0.0.1
1 gem installed
- 更新您的路径:
$ PATH=/Users/lex/.gem/ruby/2.1.0/bin:$PATH
- 再试一次:
$ bundle install
Fetching: bundler-1.11.2.gem (100%)
HTTP GET https://bundler.rubygems.org/api/v1/dependencies
HTTP 200 OK
Fetching gem metadata from https://rubygems.org/
. . .
使用 sudo 安装 gems 通常不是你想做的。
我得到了:
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.3.0
升级到 Ruby 2.3.1
后解决方法是:
gem install rails
来自工作文件夹
尝试使用:
bin/bundle
而不是
bundle
尝试全局设置ruby
rbenv global 2.3.1
gem install bundler
您需要为您使用的每个 Ruby 版本重新安装捆绑程序。
参考:github issue
如果 none 其他解决方案适合您,请尝试此方法。
出于某种原因,我无法在特定 ruby 版本上安装捆绑器,因此重新安装捆绑器对我没有任何帮助。
但是我注意到 rbenv whence bundle
如何指定捆绑包在某些 ruby 版本中处于活动状态,而在其他版本中则不是。如果您在没有捆绑器的情况下查看 gem 的路径(对我来说这是 ~/.rbenv/versions/2.5.1/bin/
),您会注意到它不存在。然而,在其他可以识别的版本下,您会看到可执行文件在那里(对我来说它在 ~/.rbenv/versions/2.3.1/bin/bundle
下)。
只需将可执行文件从工作 ruby 版本复制到损坏的版本。然后在文件的顶部你会注意到 sha-bang 被设置为另一个 ruby 版本(对我来说这是 #!/Users/myuser/.rbenv/versions/2.3.1/bin/ruby
)。将版本路径更改为您要修复的 ruby 版本,然后它就会神奇地开始工作。
我今天遇到了类似的问题。我的问题已解决如下:
system dependencies
- rvenv
- ruby 2.5.0
- rails 5.1.6
检查 Gemfile.lock 中的捆绑器版本
BUNDLED WITH
1.17.3
安装特定版本的捆绑器
$ gem install bundler -v 1.17.3
Fetching bundler-1.17.3.gem
Successfully installed bundler-1.17.3
Parsing documentation for bundler-1.17.3
Done installing documentation for bundler after 3 seconds
1 gem installed
希望这会对某人有所帮助。
要安装 Ruby
小于 2.3.0
的捆绑器,请使用以下命令
gem install bundler -v '< 2'
None 所提供的答案对我有用,所以我必须完全卸载 rbenv
以及与 Ruby 相关的所有内容,然后安装 Ruby 2.7.1用自制软件; brew install ruby
.
我遇到了完全相同的问题,并尝试了这里和整个互联网上的一切,但最终对我有用的命令是:
gem update --system