当我在我的系统上列出Ruby的所有版本时,我得到了这个:
$ rvm list rubies
rvm rubies
ruby-1.8.7-p370 [ i686 ]
ruby-1.9.2-p0 [ x86_64 ]
ruby-1.9.2-p320 [ x86_64 ]
* ruby-1.9.3-p194 [ x86_64 ]
=> ruby-1.9.3-p392 [ x86_64 ]
ruby-2.0.0-p0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
Run Code Online (Sandbox Code Playgroud)
当我在项目的新终端窗口中列出gemset时,我看到:
$ rvm gemset list
gemsets for ruby-1.9.3-p392 (found in /.rvm/gems/ruby-1.9.3-p392)
(default)
=> myapp
boso
global
Run Code Online (Sandbox Code Playgroud)
所以,我改变了1.9.3我想要使用的版本:
$ rvm use 1.9.3-p194
Using /.rvm/gems/ruby-1.9.3-p194
$ rvm gemset list
gemsets for ruby-1.9.3-p194 (found in /.rvm/gems/ruby-1.9.3-p194)
=> (default)
myapp1
myapp2
myapp3
myapp4
global
Run Code Online (Sandbox Code Playgroud)
然后我尝试将gemset的默认值设置为myapp1version 1.9.3-p194并将其设置为默认值,这似乎有效:
$ rvm use 1.9.3-p194@myapp1 --default
Using /.rvm/gems/ruby-1.9.3-p194 with gemset myapp1
Run Code Online (Sandbox Code Playgroud)
但是当我启动一个新的终端窗口时rvm gemset list,我最终回到了第1个方位 - 使用了不同的红宝石 - 即1.9.3-p392代替-p194.
$ rvm gemset list
gemsets for ruby-1.9.3-p392 (found in /.rvm/gems/ruby-1.9.3-p392)
(default)
=> myapp
boso
global
Run Code Online (Sandbox Code Playgroud)
这是否发生是因为我在打开新的终端窗口之前没有关闭我之前的终端窗口?我是否必须强制RVM为所有会话或其他东西保存它?
我错过了什么?
我也试过rvm --default use 1.9.3.-p194@myapp1,这给了我同样的问题.
如果你想要每个项目的特定gemset和ruby版本,只需.rvmrc直接在根项目中手动创建一个文件.在该文件中添加:
ruby-1.9.3-p362@gemset-name --create
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想手动创建它,您可以让rvm为您执行此操作.cd进入项目的根目录并创建如下.rvmrc文件:
$ rvm use ruby-1.9.3-p194@gemset-name --create --rvmrc
Run Code Online (Sandbox Code Playgroud)
确保该.rvmrc文件包含与此类似的行,格式如下:
environment_id="ruby-1.9.3-p392@gemset-name"
Run Code Online (Sandbox Code Playgroud)
更新:
在使用RVM时,用于设置ruby版本和每个项目的gemset的约定是在项目的根目录中使用.ruby-version文件和.ruby-gemset文件.
一个.ruby-version文件应该是这样的:
ruby-2.0.0-p598
Run Code Online (Sandbox Code Playgroud)
一个.ruby-gemset文件应该是这样的:
my_gemset_name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2550 次 |
| 最近记录: |