捆绑不与rbenv一起使用

Ant*_*yrd 34 ruby bundler rbenv

我正在尝试使用捆绑器与rbenv.我一直工作到今天.我唯一能做的就是打破它gem pristine --all或者gem cleanup?尝试安装bundler时出现以下错误.

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>'
Run Code Online (Sandbox Code Playgroud)

当我这样做rbenv rehashrbenv 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"?
Run Code Online (Sandbox Code Playgroud)

在〜/ .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"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

更新

我通过brew重新安装了rbenv,现在运行bundle install时出现以下错误.

The `bundle' command exists in these Ruby versions:
  2.1.5
Run Code Online (Sandbox Code Playgroud)

回应乔尔

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$ 
Run Code Online (Sandbox Code Playgroud)

joe*_*son 74

您的安装陷入循环.

更改为不是您的应用程序的目录,并且没有Gemfile.

然后按常规做gem install bundle(sudo如果需要,可以使用)

然后切换到您的app目录,并按常规进行操作bundle install.

这会解决您的问题吗?

如果您需要更多帮助,可以运行这些命令,然后将结果粘贴到您的问题中吗?

 $ command -v ruby
 $ command -v bundle
 $ ruby -v
 $ bundle -v
Run Code Online (Sandbox Code Playgroud)

寻找结果与您期望的结果之间的任何不匹配.这将帮助您追踪正在发生的事情.您可能需要更新Gemfile Ruby版本.

(另外,你可能想考虑改变rbenv,chruby因为这种路径问题更好恕我直言)

  • 在您的解决方案之后,我得到:错误:无法加载此类文件--bundler/setup(LoadError) (2认同)
  • 这对我不起作用。来自@Vbp 的`gem install bundler` 确实有效。 (2认同)

Cha*_*tor 38

我有:

rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.3.0
Run Code Online (Sandbox Code Playgroud)

升级到Ruby 2.3.1之后

它通过以下方式解决:

gem install rails
Run Code Online (Sandbox Code Playgroud)

从工作文件夹

  • 在使用`rbenv`升级Ruby版本之后,您只需要重新安装`bundler`.`rbenv`保持你的宝石容器化每个版本的Ruby.所以你需要做`gem install bundler`你应该好好去. (5认同)
  • `gem install rails`是我所缺少的,谢谢 (2认同)

Vbp*_*Vbp 20

__CODE__

您需要为您使用的每个Ruby版本重新安装bundler.

参考:github问题


小智 16

我遇到了完全相同的问题,并尝试了这里和互联网上的所有内容,但最终对我有用的命令是:

gem update --system
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试使用:

箱/捆

代替


Ale*_*hen 5

如果其他解决方案都不适合您,请尝试此操作。

由于某种原因,我无法在特定的 ruby​​ 版本上安装 bundler,因此重新安装 bundler 对我没有任何帮助。

但是,我注意到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​​ 版本,然后它就会神奇地开始工作。