“无法找到bundler”错误

时间:2011-05-29 05:11:19

标签: ruby-on-rails ruby rake bundler

当我尝试bundler update时,我收到此错误:

.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in
`to_specs': Could not find bundler (>= 0) amongst
[rake-0.8.7, rake-0.8.7, rubygems-update-1.8.4] (Gem::LoadError)

我是Ruby的新手,有人可以告诉我这会导致什么?已安装Rake 0.8.7。

17 个答案:

答案 0 :(得分:205)

如果您安装了bundler gem,请确保输入“bundle”更新。

bundle update

如果您没有安装捆绑包,请执行gem install bundler

答案 1 :(得分:58)

我有这个问题,然后我做了:

gem install bundle

注意“捆绑”而非“捆绑”解决了我的问题。

然后在你的项目文件夹中执行:

bundle install

然后您可以使用以下命令运行项目:

script/rails server

答案 2 :(得分:13)

我遇到了同样的问题。这对我有用:

  1. 运行rvm / script / rvm并将其添加到.profile或.bash_profile,如https://rvm.io/rvm/install/

  2. 所示
  3. 使用不带sudo的包

答案 3 :(得分:10)

如果您使用的是rvm,请尝试以下命令:

rvmsudo gem install bundler

根据另一个问题:Could not find rails (>= 0) amongst [] (Gem::LoadError)

希望它有所帮助, 干杯

答案 4 :(得分:8)

命令为bundle update(“捆绑”中没有“r”。

要检查是否安装了bundler,请执行:gem list bundler甚至which bundle,该命令将列出bundler版本或其路径。如果未显示任何内容,请键入gem install bundler

安装bundler

答案 5 :(得分:7)

我遇到了同样的问题..我的bash配置文件发生了一些事情,但没有正确设置RVM内容。

确保您的bash配置文件包含以下行:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

然后我运行了“source~ / .bash_profile”并重新加载了我的bash配置文件中的所有内容。

这似乎解决了我。

答案 6 :(得分:6)

根据answer对类似的问题,它应该足够了:

rvmsudo gem install bundler.

干杯

答案 7 :(得分:4)

您可能必须首先执行“rvm use 1.9.2”之类的操作,以便使用正确的ruby和gemset。您可以通过“which ruby​​”

来检查您正在使用的红宝石

答案 8 :(得分:3)

如果您使用rbenv,运行rbenv rehash可以解决此问题 ,那么您已经安装了bundler并仍然遇到问题。

答案 9 :(得分:2)

升级到ruby 2.1.0后我得到了这个。我的登录脚本中设置了PATH以包含.gem/ruby/2.0.0/bin。更新版本号修复了它。

答案 10 :(得分:2)

系统可能正在运行“无根”。尝试将固件nvram变量b​​oot-args设置为“rootless = 0”。 尝试运行一组命令:

sudo nvram boot-args="rootless=0"; 
sudo reboot

重启完成后,运行:

sudo gem install bundler

答案 11 :(得分:1)

在我的机器上设置新的 Bundler gem 版本 (2.2.11) 时,我也有同样的担忧。

我收到以下错误:

/home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0/rubygems.rb:277:in `find_spec_for_exe': Could not find 'bundler' (2.2.11) required by your /home/username/Projects/my_project/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.2.11`
        17: from /home/username/.rbenv/versions/2.7.2/bin/rspec:23:in `<main>'
        16: from /home/username/.rbenv/versions/2.7.2/bin/rspec:23:in `load'
        15: from /home/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/exe/rspec:4:in `<top (required)>'
        14: from /home/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:45:in `invoke'

我是如何做到的

首先,我已经安装了 Bundler gem 2.2.11 并将其设为默认 gem:

gem install --default bundler -v 2.2.11

接下来,我列出了我的 Bundler 版本:

gem list bundler

最后,我更新了我的 gems 以使用新安装的 Bundler:

gem update --system

仅此而已。

我希望这会有所帮助

答案 12 :(得分:1)

对于遇到Capistrano问题的任何人:capistrano无法找到bundler。原因可能是您在Capistrano甚至不看的其他gemset下安装了捆绑包。

  1. 列出您的宝石。
  2.   

    rvm gemset list

    1. 使用特定的宝石。
    2.   

      rvm使用&#39; my_get_set&#39;

      1. 在该gemset下安装bundler。
      2.   

        gem install bundler

        然后,再次尝试使用部署任务。

答案 13 :(得分:1)

如果您在另一个bundle exec内运行命令,则可以与https://github.com/bundler/bundler-features/issues/34相关联。如果是这种情况,请尝试使用Bundler.with_original_env

答案 14 :(得分:0)

在我的情况下,我相信我有一个旧的Ruby留在系统上,没有在rvm上注册,即使路径变量和gem列表没问题,它仍然会在使用Capistrano的部署期间使用旧的Ruby

然后我意识到,我用rvm安装的Ruby并没有设置为默认值。运行

rvm alias create default <rvm_registered_ruby>

修正了它。

答案 15 :(得分:0)

以防万一,我在捆扎机2.1.2上遇到类似的错误,并使用以下方法解决了该问题:

sudo gem install bundler -v 1.17.3

如果安装了多个捆绑软件版本,则可以通过以下方式运行捆绑软件的特定版本:bundle _1.17.3_ exec rspec

虽然似乎更高版本的捆绑器版本存在错误(在2个操作系统的3个不同项目中都有问题),但使用一个旧的捆绑器可能效果最好,至少这是我在Ubuntu和MacOS上拥有的

最新的捆绑程序版本可能会覆盖稳定的捆绑程序-v 1.17.3。 从系统中删除最新的捆绑器并非易事,这对我有帮助:

答案 16 :(得分:0)

我通过删除Gemfile.lockgem install bundler:2.2.0

来解决它