新手问题 osx+iterm+oh-my-zsh+rvm | type rvm = rvm is a shell function

匿名 · 2014年01月02日 · 最后由 RainFlying 回复于 2014年01月02日 · 3297 次阅读

执行 rvm get head --auto-dotfiles,出现 WARNING: google 了好久,依然没找到解决方案。

[10:48][ruby-2.0.0]zed:~ % rvm get head --auto-dotfiles
Downloading https://get.rvm.io
Turning on auto dotfiles mode.
Downloading https://github.com/wayneeseguin/rvm/archive/master.tar.gz

Upgrading the RVM installation in /Users/zed/.rvm/
    Removing rvm PATH line from /Users/zed/.profile /Users/zed/.bashrc /Users/zed/.zshrc.
    Adding rvm PATH line to /Users/zed/.profile /Users/zed/.bashrc /Users/zed/.zshrc.
    Removing rvm loading line from /Users/zed/.bash_profile /Users/zed/.zlogin.
    Adding rvm loading line to /Users/zed/.bash_profile /Users/zed/.zlogin.
Upgrade of RVM in /Users/zed/.rvm/ is complete.

#   Thank you for using RVM!
#   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.

In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
       Help RVM 2.0: https://www.bountysource.com/fundraisers/489-rvm-2-0

Upgrade Notes:


  * WARNING: You have '~/.profile' file, you might want to load it,
    to do that add the following line to '/Users/zed/.bash_profile':

      source ~/.profile

  * No new notes to display.

RVM reloaded!

执行type rvm | head -1出现 rvm is a shell function 我的环境应该有些问题, 求帮助。

1 楼 已删除

神呢 楼主看看他说的这句话的意思呗 如果你的 ~/.profile 文件里有你自己添加的东西的话 需要你自己把他加到 zsh 的 profile 里 就是这样...

匿名 #3 2014年01月02日

#1 楼 @chunlea 正确的 rvm 不是执行type rvm | head -1出现rvm is a function???

匿名 #4 2014年01月02日

#2 楼 @zj0713001 可以剔除 Waring 吗?

这句的意思难道不是说跑一下 source ~/.profile 么? 当然 ZSH 下可能是 source ~/.zprofile 或者 source ~/.zshrc

#3 楼 @kvoid 是啊。 If you open a new shell and running:

type rvm | head -1

does not show "rvm is a function", RVM isn't being sourced correctly.

From: http://rvm.io/rvm/install

你的环境真的没有什么问题,那个就是一个善意的提醒罢了。这段 Waring 出自 https://github.com/wayneeseguin/rvm/blob/2e36865f4140d5877a62bf7918b8b7a8504aeaa1/scripts/notes#L185-L206

有的系统默认有一个 .profile,然后 rvm 生成了 .bash_profile,然后有的 login shell 在有 .bash_profile 的情况下就不会读取 .profile 了,所以提醒你要在 .bash_profile 里面 source .profile,但是如果你在 .profile 里面没有什么内容就不用管了。

所以还是 rbenv 这种 magic 比较少的好...

匿名 #9 2014年01月02日

#6 楼 @chunlea 谢谢。

匿名 #11 2014年01月02日

#7 楼 @Rei 谢谢,又涨知识了

匿名 #12 2014年01月02日

#5 楼 @RainFlying 谢谢。

#7 楼 @Rei 不是“有的 login shell 在有 .bash_profile 的情况下就不会读取 .profile”, 而是 bash 压根就不会去读 ~/.profile 的。。。而 ~/.bashrc 和 ~/.bash_profile 分别是 interactive shell 和 login shell 读的。不过楼主说的是 ZSH 呢,压根不会去读这两个文件的。

#13 楼 @RainFlying 我把 .bash_profile 删除,在 .profile 里面加一句 echo '.profile' ,然后开新的终端,有显示出 .profile。然后把 .bash_profile 恢复,开新的终端,就不显示 .profile 了。

#14 楼 @Rei 看一下 .bashrc 的内容? 好像 .bash_profile 不存在的时候确实会去读 .profile 的, 不过 man bash 的 Files 里都不提这文件居然。

#15 楼 @RainFlying .bashrc 里面没写有读 .profile 的规则。Ubuntu 的 man bash 写有:

When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.

#16 楼 @Rei 是说下面的 FILES 部分没有列出这个文件,有的时候不记得会读哪些配置文件的时候就直接跳到这个段去看的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号