RVM/rbenv [已解决] 如何能够让命令行能够标识出我当前处于哪个环境中呢

n00b1 · 2013年01月07日 · 最后由 n00b1 回复于 2013年01月07日 · 4544 次阅读

之前在 python 下面用 virtualenv+virtualenvwrapper 那叫一个简单,转到 rvm,花了一下午才弄清楚...大家帮忙看看下面这些命令,我创建了一个 Ruby 1.8.7 的 Rails 2.1 环境,而后通过 rvm 1.8.7@rails2 成功进入,我的问题的是如何能够让命令行能够标识出我当前处于哪个环境中呢?譬如 virtualenv 中一旦进入了某个环境,命令行会以 (env_name) 来打头

$ rvm install 1.8.7
$ rvm --default use 1.8.7
$ rvm gemset create rails2
$ rvm 1.8.7@rails2
$ gem install rails -v 2.1

另外默认好像所有的环境都是放置在如下这个目录下面的

vagrant@lucid32:/home$ cd /home/vagrant/.rvm/gems
vagrant@lucid32:~/.rvm/gems$ ls
cache            ruby-1.8.7-p371@global  ruby-1.8.7-p371@rails2
ruby-1.8.7-p371  ruby-1.9.3-p362         ruby-1.9.3-p362@global

bash:

export PS1='\w [$(rvm-prompt)] $'

zsh:

RPROMPT='$(rvm-prompt)'

一般和 git 状态一起显示更好,网上有不少介绍,可以搜 git rvm prompt 看看

#1 楼 @luikore 太好了,大谢@luikore 小白的我多问一句,您看下面我要如何从 ruby-1.9.3-p362@foo 环境中跳到系统默认的环境中呢?此外,在环境中只对 gem install,即安装的 gem 目录有影响对吧?

vagrant@lucid32:/home$ export PS1='\w [$(rvm-prompt)] $'
/home [ruby-1.9.3-p362@foo] $
/home [ruby-1.9.3-p362@foo] $ls
vagrant

#2 楼 @n00b1 rvm use system

系统 ruby 安装 gem 是 sudo gem install, gem 装到系统目录中 rvm ruby 是千万不能用 sudo, gem 装到 rvm 目录下对应的 gem set 中

#3 楼 @luikore 这下好了 :D ‘千万不能’?那是不是说即使在某个‘环境’中,如果用 sudo gem install 的话也会做系统全局默认安装,而 gem install rails -v 2.1 就会安装到当前‘环境’的目录中,即 vagrant@lucid32:/home$ cd /home/vagrant/.rvm/gems/ruby-1.8.7-p371@rails2/gems

/home [ruby-1.9.3-p362@foo] $rvm use system
Now using system ruby.
/home [] $

再次感谢~

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