我已经使用 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
session 中尝试时的配置。
which ruby
表示 /Users/mgpyone/.rvm/rubies/ruby-2.0.0-p0/bin/ruby
其中 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 可执行文件
路径设置为系统路径而不是 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)
我该如何解决这个问题?
最佳答案
您可能在启动 tmux 时设置了 $GEM_HOME 或 $GEM_PATH。由于 tmux 继承了这些环境变量,因此无论 rvm 设置如何,它下面包含的每个 shell 都会受到这些设置的影响。
检查 tmux showenv -g GEM_HOME
(或 GEM_PATH)
关于ruby - Tmux session 中错误的 ruby 可执行文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707524/