【问题标题】:ERROR: Gem bundler is not installed, run `gem install bundler` first错误:未安装 Gem 捆绑器,请先运行“gem install bundler”
【发布时间】:2012-09-07 23:38:05
【问题描述】:

您好,我一直在尝试安装 Ruby gem 包。收到此消息后,我按照gem install bundle 的指示进行操作,但是当我输入bundle -v 时它仍然不起作用。我也输入

which bundle 并接收

/Users/edmundmai/.rvm/bin/bundle

所以它存在!那为什么不行!!我没有得到的神秘 $PATH 有什么问题吗? (我是菜鸟)。

这是我的 .bash_profile:

PATH=$PATH:~/bin
export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

这是我的 .bashrc :

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

这是我的 gem 环境:

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.3.1]
- INSTALLATION DIRECTORY: /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd
- RUBY EXECUTABLE: /Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
- EXECUTABLE DIRECTORY: /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - x86_64-darwin-11
- GEM PATHS:
   - /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd
   - /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@global
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :benchmark => false
   - :backtrace => false
   - :bulk_threshold => 1000
   - "install" => "--no-rdoc --no-ri"
   - "update" => "--no-rdoc --no-ri"
- REMOTE SOURCES:
   - http://rubygems.org/

回显 $PATH

/Users/edmundmai/.rvm/bin:/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/bin:/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/edmundmai/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/edmundmai/bin:/Users/edmundmai/bin

更新 因此,在再次尝试阅读 RoR 教程后,我在我的两个终端窗口之一中重复了本章前面的一些步骤(我们称它们为终端 #1 和终端 #2)。终端 #2 仍然不起作用(命令行不在任何目录上,只是默认目录),而终端 #1(在我的 sample_app 目录中)工作。我认为rvm get head && rvm reload 可能是关键?但这是否意味着我每次打开终端时都必须运行它?查看我的终端 #1 之前和之后的命令(我删除了一些输出,以便更清楚我的输入行是什么):

Edmunds-MacBook-Pro:sample_app edmundmai$ bundle -v
ERROR: Gem bundler is not installed, run `gem install bundler` first.
Edmunds-MacBook-Pro:sample_app edmundmai$ gem install
ERROR:  While executing gem ... (Gem::CommandLineError)
Please specify at least one gem name (e.g. gem build GEMNAME)
Edmunds-MacBook-Pro:sample_app edmundmai$ rvm -v


rvm 1.15.8 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis     <mpapis@gmail.com> [https://rvm.io/]

Edmunds-MacBook-Pro:sample_app edmundmai$ rspec spec/
No DRb server is running. Running in local process instead ...
........

Finished in 0.36709 seconds
8 examples, 0 failures

Randomized with seed 59500

Edmunds-MacBook-Pro:sample_app edmundmai$ subl .
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle install --binstubs=./bundler_stubs
Using rake (0.9.2.2) 
...
...
(**list of stuff)
Using uglifier (1.2.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle show bundler
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/bundler-1.2.0

我非常不清楚 $PATH 的作用。如果你们需要更多信息,请随时告诉我,我会提供。

【问题讨论】:

  • 你试过gem install bundle,但你试过gem install bundler吗?
  • @cjc343:bundle gem 具有 bundler 作为依赖项,因此具有相同的效果。
  • @Edmund:自编辑后,您是否启动了一个新终端或获取了您的 bash_profile?您可以将echo $PATH 的输出粘贴到您的shell 中吗?你是如何安装 RVM 的?我已经有一段时间没有使用它了,但一般来说,它是复制/粘贴并运行设置。
  • @cjc343 是的,我都试过了,但输入bundle -v时仍然出现错误
  • @jmdeldin 几个小时前,我遇到了打开 2 个终端的问题,然后其中一个工作,而另一个没有。所以我关闭了它们并打开了 1 个新窗口,但它没有工作,第二个也没有。好的,我编辑了它以包含我的 echo $PATH。我不记得几个月前我是如何安装 RVM 的了,抱歉。

标签: ruby gem


【解决方案1】:

我认为这是问题所在:您已将捆绑程序安装到特定的 gemset,这就是为什么它仅在您位于应用程序目录中时可用(我假设那里有一个 .rvmrc 文件)。

你有几个选择:

  1. bundler 安装到全局gemset。 rvm gemset use global &amp;&amp; gem install bundler
  2. 如果您安装了 Homebrew,只需执行 brew install ruby 并完全避免使用 rvm。 (还有 rbenv 和 ry 作为 rvm 的替代品,但我在所有应用程序中只使用 1.9.3,所以 Homebrew 很好。)

作为参考,$PATH 是一个 shell 环境变量,其中包含一个包含可执行文件的目录列表(例如,echolsvim 等)。这是 shell 所固有的。

【讨论】:

  • 感谢 $PATH 参考。我刚刚在打开一个新终端时尝试了#1,当我输入bundle -v 时它工作了(虽然没有尝试自制软件,因为它在#1 之后工作)。你是最棒的,谢谢你的帮助!
  • @Edmund:很高兴它成功了!现在困难的部分已经结束,你可以重新开始学习 Rails :)。
  • 将捆绑器设置为全局 gemset 效果很好!非常感谢!
【解决方案2】:

有时只是您没有正确采购 rvm,因为您不在登录 shell 中(使用屏幕?)。 输入

源 ~/.rvm/scripts/rvm

并使用任何捆绑命令。

【讨论】:

  • 这对我有帮助,但每次打开新的终端窗口时我都必须运行这个命令。我怎样才能避免这种情况?
  • 把这一行放在你的 ~/.bashrc 中(如果它还没有的话)。
【解决方案3】:

将以下行添加到~/.bashrc 文件中

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

然后重新加载文件:

$ source ~/.bashrc

【讨论】:

    【解决方案4】:

    即使我有同样的问题,

    在服务器 rvm 中没有被选为默认值。所以

    rvm use 1.9.3 --default
    
    gem install bundler
    

    解决了我的问题

    (只有在使用rvm时才会出现问题)

    【讨论】:

      【解决方案5】:

      如果您使用的是 rvm,请创建一个单独的 gemset,它们是自包含的 gem 包。

      rvm use 1.9.3@myApplicationNameHere --create --default
      
      • myApplicationNameHere = 将其更改为您的应用程序名称
      • create = 创建一个 gemset
      • default = 表示默认使用此版本的 ruby​​ 和 gemset

      这里是rvm站点的链接和相关部分https://rvm.io/gemsets/basics/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-02
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 2018-10-01
        • 1970-01-01
        相关资源
        最近更新 更多