【发布时间】:2013-05-23 07:00:07
【问题描述】:
我使用rvm 安装了ruby 2.0。我是tmux 的新手。
我在 .tmux.conf 中使用 zsh 和这个配置
set-option -g default-shell /bin/zsh
set-option -g default-command "/bin/zsh -i"
我还在.zshrc中加载了rvm路径
source /Users/mgpyone/.rvm/scripts/rvm
现在,这些是我在tmux 会话中尝试时的配置。
which ruby 说/Users/mgpyone/.rvm/rubies/ruby-2.0.0-p0/bin/ruby
where ruby 返回为
/Users/mgpyone/.rvm/rubies/ruby-2.0.0-p0/bin/ruby
/Users/mgpyone/.rvm/bin/ruby
/Users/mgpyone/.rvm/bin/ruby
但为什么gem env 显示我的Ruby executable 路径设置为系统路径而不是rvm
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.3
- RUBY VERSION: 2.0.0 (2013-02-24 patchlevel 0) [x86_64-darwin12.3.0]
- INSTALLATION DIRECTORY: /Users/mgpyone/.rvm/gems/ruby-2.0.0-p0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /Users/mgpyone/.rvm/gems/ruby-2.0.0-p0/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/mgpyone/.rvm/gems/ruby-2.0.0-p0
- /Users/mgpyone/.rvm/gems/ruby-2.0.0-p0@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- :benchmark => false
- :sources => ["https://rubygems.org"]
- REMOTE SOURCES:
- https://rubygems.org
而且我不能运行像rake 这样的东西,因为我认为它可以使用 System Ruby 执行。
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby app.rb -s puma
app.rb:1:in `require': no such file to load -- sinatra (LoadError)
from app.rb:1
rake aborted!
Command failed with status (1): [/System/Library/Frameworks/Ruby.framework/...]
/Users/mgpyone/work/rb/fileserver/Rakefile:9
(See full trace by running task with --trace)
我该如何解决这个问题?
【问题讨论】:
-
只要检查
gem命令是使用系统gem还是rvm gem。另外,这是否仅在您使用 tmux 时发生? -
如何检查
gem命令使用的是system gem 还是rvm gem?是的,只有当我在tmux会话中时才会发生这种情况。非常感谢。 -
就在
which gem。也许尝试将 tmux 默认命令更改为"/bin/zsh -l"- 你需要一个登录 shell 来获取 zshrc。 -
当我在 tmux 会话中运行
which gem时,它会显示/usr/bin/gem。当我在zshshell 之外运行相同的东西时,它会这样写 pastebin.com/fQLmA5Xm 。我已经改成/bin/zsh -l -
如果你在你的 tmux 会话中明确地
source ~/.zshrc会起作用吗?