32

嗨,我一直在尝试安装 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" 

这是我的宝石环境:

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 的作用。如果你们需要更多信息,请随时告诉我,我会提供。

4

5 回答 5

86

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

你有几个选择:

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

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

于 2012-09-08T02:56:18.663 回答
54

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

    源 ~/.rvm/scripts/rvm

并使用任何捆绑命令。

于 2013-01-03T12:24:09.937 回答
4

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

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

然后重新加载文件:

$ source ~/.bashrc
于 2013-05-06T13:40:51.870 回答
1

即使我有同样的问题,

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

rvm use 1.9.3 --default

gem install bundler

解决了我的问题

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

于 2013-11-26T10:51:27.203 回答
0

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

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

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

于 2013-05-13T20:59:26.567 回答