Mel*_*lon 19 ruby-on-rails rvm ruby-on-rails-3 ruby-on-rails-3.1
我知道如何使用RVM,但现在我有一个奇怪的问题,我不明白为什么.
这是一个简单的故事(我使用的是Ubuntu):
我创建了一个Rails项目,该项目的目标是"bookstore /".
我转到项目目录cd bookstore,然后输入rvm list如下命令:
bookstore/$ rvm list
rvm rubies
ruby-1.9.2-p136 [ i386 ]
ruby-1.8.7-p352 [ i386 ]
ruby-1.8.7-p330 [ i386 ]
ruby-1.8.6-p420 [ i386 ]
ruby-1.9.2-p290 [ i386 ]
Run Code Online (Sandbox Code Playgroud)
由于我没有看到=>应该指示当前正在使用的ruby版本的箭头符号,因此我使用以下RVM命令指定ruby版本:
bookstore/$ rvm use ruby-1.9.2-p290
Using /home/usr/.rvm/gems/ruby-1.9.2-p290
Run Code Online (Sandbox Code Playgroud)
现在,如果我rvm list看到我的项目正在使用ruby v1.9.2:
bookstore/$ rvm list
rvm rubies
ruby-1.9.2-p136 [ i386 ]
ruby-1.8.7-p352 [ i386 ]
ruby-1.8.7-p330 [ i386 ]
ruby-1.8.6-p420 [ i386 ]
=> ruby-1.9.2-p290 [ i386 ]
Run Code Online (Sandbox Code Playgroud)
在这一点上,每件事情都很好!
但是,如果现在我在Ubuntu和项目目录上打开一个新的终端窗口,然后再次cd运行命令rvm list,我得到:
bookstore/$ rvm list
rvm rubies
ruby-1.9.2-p136 [ i386 ]
ruby-1.8.7-p352 [ i386 ]
ruby-1.8.7-p330 [ i386 ]
ruby-1.8.6-p420 [ i386 ]
ruby-1.9.2-p290 [ i386 ]
Run Code Online (Sandbox Code Playgroud)
在哪里=>表示我之前指定的ruby版本?为什么它再次需要我指定ruby版本?
它总是在我打开一个新的终端窗口时发生.如何让我的项目"记住"我指定的ruby版本?
Bre*_*der 28
戴夫是对的,你应该设置默认值.而且,考虑.rvmrc在每个项目或每个机器的基础上定义文件.我使用特定于项目的rvmrc文件,因此我可以为每个项目使用不同的rubies和gemsets,并且更改到目录会自动切换到该项目的ruby/gemset.
例如,我公司网站项目的rvmrc:
brett@bender:~/Sites/bearded/bearded(master)$ cat .rvmrc
rvm 1.9.3@bearded
Run Code Online (Sandbox Code Playgroud)
编辑:为了显而易见,要使用rvmrc文件解决您的问题,请执行以下操作(假设您已经安装了所需的ruby版本并为此项目的gem创建了gemset):
bookstore/目录中创建一个文件.rvmrc(在您喜欢的编辑器中)rvm ruby-1.9.2-p290到文件并保存(rvm ruby-1.9.2-p290@gemset_name如果您有要默认的gemset,则可以使用)另请注意,如果您的RVM早于1.8.0版,则需要打开rvmrc文件支持(版本1.8.0+默认情况下已打开).如果您愿意,我问题顶部的链接包含说明.
您需要设置默认值.
rvm --default 1.9.2-p290 # Or whichever.
Run Code Online (Sandbox Code Playgroud)
新的shell是一个新的环境; 它(通常)不会从已经打开的终端继承
对于每个项目设置,请使用项目.rvmrc根目录中的文件,例如:
rvm --create gemset use 1.9.2-p0@my_project
Run Code Online (Sandbox Code Playgroud)
在--create将创建宝石,如果它不存在,很方便,如果您或他人在跨机器的同一个项目.
| 归档时间: |
|
| 查看次数: |
14573 次 |
| 最近记录: |