ruby - run - rbenv不改變紅寶石版本




rbenv upgrade ruby (13)

rbenv help shell

“通過在你的shell中設置'RBENV_VERSION'環境變量來設置特定於shell的Ruby版本,這個版本覆蓋了特定於localapplication的版本和全局版本,應該是一個匹配rbenv已知的Ruby版本的字符串。 '將使用您的默認系統Ruby。運行rbenv版本'獲取可用Ruby版本的列表。“

如果rbenv安裝正確,ruby -v將對應於

rbenv shell 1.9.3-p125

我根據gi​​thub的方向安裝了rbenv。 我正在運行OSX,但是我已經在Ubuntu 12.04 VM上嘗試了這一點,並得到了相同的結果。 以下是當我嘗試更改ruby版本時在終端中獲得的內容:

rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125

rbenv global
1.9.3-p0

rbenv rehash

ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]

which ruby
/usr/bin/ruby

任何人都有任何想法,為什麼rbenv不像它認為的那樣切換ruby版本? 此外,本地目錄中沒有.rbenv文件,導致ruby版本默認為1.8.7

rbenv local
rbenv: no local version configured for this directory

你可以嘗試使用chruby ? chruby不依賴墊片,而是只修改PATHGEM_HOMEGEM_PATH


奇怪的是,rbenv版本沒有設置.rbenv文件檢查:ls -ltra - >看到寫了rbenv


我剛剛發現了同樣的問題。 我所做的是卸載rbenv(通過自製軟件)並重新安裝它。 我還補充說

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

當我重新安裝rbenv時,進入〜/ .bash_profile。 現在完美運作。


我有同樣的問題,但由Homebrew造成:

[~]$ rbenv version
2.3.0 (set by /Users/user/.rbenv/version)
[~]$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
[~]$ which ruby
/usr/local/bin/ruby

不知何故,我也通過Homebrew安裝了Ruby,而Homebrew路徑在我的$PATH中的rbenv路徑之前。 運行brew uninstall ruby為我固定它。


我通過將以下內容添加到我的〜/ .bash_profile中來解決這個問題:

#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"

這是在https://github.com/sstephenson/rbenv

從我可以告訴的是沒有〜/ .rbenv / bin目錄,這在@rodowi的帖子中提到過。


檢查PATH是否包含$ HOME / .rbenv / shim和$ HOME / .rbenv / bin

$ env | grep PATH

如果使用bash或者〜/ .zshenv,如果使用zsh,請檢查在〜/ .bash_profile中是否有以下內容

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

注意:確保它是〜/ .bash_profile中的最後一個設置。 我遇到了一個問題,我安裝了一個更新我的.bash_profile並重置PATH的程序。


為魚殼用戶

set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/

確保.bash_profile的最後一行是:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

第一步是找出哪個ruby被調用:
which ruby

你的系統說:
/usr/bin/ruby

這不是rbenv使用的墊片,它在MacOS上應該如下所示:
/Users/<username>/.rbenv/shims/ruby

墊片實際上是一個腳本,就像重定向到您設置的紅寶石版本一樣。

rbenv global 1.9.3 rbenv local --unset rbenv shell --unset
我建議,為解決問題,您可以取消設置特定於項目的“本地”版本,以及特定於shell的“shell”版本,只需使用在〜/ .rbenv / verion中的純文本文件中確定的“全局”版本設置進行測試在你的情況下,只是版本號“1.9.3”。 您可以在項目文件夾的根目錄(不是主文件夾)中執行“ls -laG”以確保不再有“.ruby-version”文件。

您可以使用“rbenv版本”來標識rbenv設置為使用哪個版本(以及設置該文件的位置和名稱)。

rbenv versions

不重要的東西:直到你正確地設置路徑。

使用這個來確保你的* MacOS會服從你:
eval "$(rbenv init -)"

其次是:
which ruby

確保它看起來像:/Users//.rbenv/shims/ruby

然後將該行添加到您的配置文件中,以便每次打開新的終端窗口時運行該行:
~/.bash_profile eval "$(rbenv init -)"

還有其他方法可以修改路徑,隨意替換它們中的任何一個,而不是運行rbenv init。

注意:重新安裝Rails:
gem install rails

如果您試圖運行Ruby on Rails,那麼您需要先完成所有工作,然後再次安裝rails gem。 以前安裝的Rails將使用硬編碼的路徑指向錯誤的ruby,並且其他一些內容將出現在錯誤的地方,因此請重新安裝gem。

PS如果你的MacOS不會服從你(*上面提到的),那麼你可能需要找到另一種方法來修改你的路徑,但這不太可能是個問題,因為“Macs正常工作”;)


跑:

rbenv init

我運行後,當我設置我的本地rbenv版本:

rbenv local 2.4.0

那麼我的ruby -v和我的rbenv local版本是一致的。

注意:您可能還想退出您所在的目錄,然後再回到該目錄中,我注意到為了讓事情順利進行,我認為這是必要的。


這可能是一個古老的問題,但谷歌帶領我到這裡來,為了後代的緣故,我以為我會分享。

上述許多推薦的解決方案後,我的問題依然存在。 像OP一樣,我安裝了rbenv,然後安裝了ruby版本,但我的筆記本電腦默認為系統。 我忽略的是當我跑步時:

[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
  2.0.0-p247

IOW,它仍然是系統默認的。 快點

[~/.rbenv] $ rbenv local 2.0.0-p247

將其切換到新版本。


運行這個命令

將rbenv添加到bash中,以便每次打開終端時都會加載rbenv

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile

這將解決您的問題Reference





rbenv