RVM can't set ruby as default

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

I have no idea why but RVM can't seem to change the default Ruby. I'm using Oh My Zsh and tried everything I've found but nothing seems to work.

Now the Ruby is set as default but RVM doesn't load it as "current", which means it does not load the gemsets that are affiliated to it.

I have no .bashrc nor .bash_profile. There is no RVM reference in my .zprofile and here is my .zshrc :

# Path to your oh-my-zsh configuration. ZSH=$HOME/.oh-my-zsh  # Set name of the theme to load. ZSH_THEME="robbyrussell" DEFAULT_USER="anahkiasen"  # Uncomment following line if you want red dots to be displayed while waiting for completion COMPLETION_WAITING_DOTS="true"  # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) plugins=(git bower brew composer gem laravel sublime)  ## RVM and Rubygems [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  source $ZSH/oh-my-zsh.sh 

I've tried swapping the above two lines, tried moving the RVM loading into .zprofile, nothing. Everytime I open a new instance of the terminal, the default is gone. It loads the correct ruby, meaning if I do ruby -v I get the version I want, but for RVM it's not loaded and thus I have none of the gemsets.

I've also tried rvm --default use 2.0.0, rvm use 2.0.0@develop --default but same result.

I've reinstalled RVM, I've set recursively the permissions of the .rvm folder to the current user, nothing.

I'm kind of desperate at that point.

回答1:

As you are using OH-MY-ZSH you might be hitting issue similar to this: https://github.com/robbyrussell/oh-my-zsh/pull/1359

RVM has a "fix" function, run:

rvm get head --auto-dotfiles 

It will reorganize your dot files - it is important to read the output and follow instructions.

Make sure to use login shell for best effect.



回答2:

Ah ha !! I just faced the same problem and resolved it eventually.

Let me reiterate my issue: Everytime i start my terminal, i had to first do a bundle install each time. Then i figured, Its not correct. So i tried sourcing my zshrc.

So everytime i had to do source ~/.zshrc or simply zsh also did the same and my gemset would get identified. Ofcourse assuming RVM and all other dependencies are installed correctly

Finally i figured i needed to do the following:

  • $ vim ~/.zlogin

  • The contents of the .zlogin should be

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* zsh   #to initiate zsh (you could also replace this with 'source ~/.zshrc') 

This resolved my problem. Now everytime i start my terminal, my defaults are all set.

Let me know if this works for you.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!