如何设置$ PATH? [英] How do I set $PATH?
问题描述
我正在使用Ruby 2.3.0.每次我打开一个新的bash选项卡时,我的ruby版本都会降级到2.2.3.因此,为确保使用最新版本,请执行rvm use 2.3.0
.这样可以按选项卡解决问题,并显示以下消息:
I'm using Ruby 2.3.0. Every time I open a new bash tab, my ruby version downgrades to 2.2.3. So to ensure I'm using the latest, I do rvm use 2.3.0
. That fixes the problem on a per-tab basis, and gives this message:
PATH is not properly set up, '/Users/mkeable/.rvm/gems/ruby-2.3.0/bin' is not at first place,
usually this is caused by shell initialization files - check them for 'PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
to fix temporarily in this shell session run: 'rvm use ruby-2.3.0'.
所以我做echo $PATH
并得到一些自我解释:
So I do echo $PATH
and get something pretty self explanatory:
/usr/local/bin:/Users/mkeable/.rvm/gems/ruby-2.3.0/bin:/Users/mkeable/.rvm/gems/ruby-2.3.0@global/bin:/Users/mkeable/.rvm/rubies/ruby-2.3.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mkeable/.rvm/bin
我的.bashrc具有此功能:
My .bashrc has this:
export PATH="/usr/local/heroku/bin:$PATH" export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
.bash_profile具有以下内容:
And .bash_profile has this:
source ~/.profile
export PATH=/usr/local/bin:$PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
这是我从rvm info
Warning! PATH is not properly set up, '/Users/mkeable/.rvm/gems/ruby-2.3.0/bin' is not at first place,
usually this is caused by shell initialization files - check them for 'PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
to fix temporarily in this shell session run: 'rvm use ruby-2.3.0'.
ruby-2.3.0:
system:
uname: "Darwin BC.local 13.4.0 Darwin Kernel Version 13.4.0: Wed Mar 18 16:20:14 PDT 2015; root:xnu-2422.115.14~1/RELEASE_X86_64 x86_64"
system: "osx/10.9/x86_64"
bash: "/bin/bash => GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)"
zsh: "/bin/zsh => zsh 5.0.2 (x86_64-apple-darwin13.0)"
rvm:
version: "rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
updated: "3 minutes 39 seconds ago"
path: "/Users/mkeable/.rvm"
ruby:
interpreter: "ruby"
version: "2.2.3p173"
date: "2015-08-18"
platform: "x86_64-darwin13"
patchlevel: "2015-08-18 revision 51636"
full_version: "ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin13]"
homes:
gem: "/Users/mkeable/.rvm/gems/ruby-2.3.0"
ruby: "/Users/mkeable/.rvm/rubies/ruby-2.3.0"
binaries:
ruby: "/usr/local/bin/ruby"
irb: "/usr/local/bin/irb"
gem: "/usr/local/bin/gem"
rake: "/usr/local/bin/rake"
environment:
PATH: "/usr/local/bin:/Users/mkeable/.rvm/gems/ruby-2.3.0/bin:/Users/mkeable/.rvm/gems/ruby-2.3.0@global/bin:/Users/mkeable/.rvm/rubies/ruby-2.3.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mkeable/.rvm/bin"
GEM_HOME: "/Users/mkeable/.rvm/gems/ruby-2.3.0"
GEM_PATH: "/Users/mkeable/.rvm/gems/ruby-2.3.0:/Users/mkeable/.rvm/gems/ruby-2.3.0@global"
MY_RUBY_HOME: "/Users/mkeable/.rvm/rubies/ruby-2.3.0"
IRBRC: "/Users/mkeable/.rvm/rubies/ruby-2.3.0/.irbrc"
RUBYOPT: ""
gemset: ""
这进一步使我感到困惑. rvm list rubies
说我只有2.3.0,但是这里的版本设置为2.2.3.
So this confuses me even further. rvm list rubies
says I have only 2.3.0, but my version here is set to 2.2.3.
我可以很清楚地看到我需要做什么,即(在我看来)在$ PATH开头设置了/Users/mkeable/.rvm/gems/ruby-2.3.0/bin
.但是如何?
I can see pretty clearly what I need to do, which is (I think) set /Users/mkeable/.rvm/gems/ruby-2.3.0/bin
at the start of $PATH. But how?
推荐答案
假定您在/usr/local/bin
中具有Ruby 2.2二进制文件,那么您绝对不希望在/Users/mkeable/.rvm/gems/ruby-2.3.0/bin
前面使用此路径.
Assuming you have your Ruby 2.2 binary in /usr/local/bin
, then you definitely do not want this path in front of your /Users/mkeable/.rvm/gems/ruby-2.3.0/bin
.
要确保前者在后者的前面
To ensure the former in front of the latter do
export PATH="/usr/local/heroku/bin:$PATH"
export PATH="$HOME/.rvm/bin:$PATH"
在您的.bash_profile
中.
另外一个注意事项-如果Ruby 2.2确实位于/usr/local/bin
内,则意味着您仅可以从该路径中删除(或临时重命名)二进制文件,而不必重新排列$ PATH.
One additional note - if Ruby 2.2 is indeed inside of /usr/local/bin
, that means you may just be able to remove (or temporarily rename) the binary from that path instead of re-arranging your $PATH.
这篇关于如何设置$ PATH?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!