2011-12-29 51 views
2

在Linux中執行Rails工作時,我似乎沒有遇到這個問題,但是由於每次重新啓動機器時都會更改爲OSX,RVM會丟失它的gemset列表,實際上並沒有消失。RVM和OSX Lion在系統重啓時忘記'gemsets'

例如,我有幾個gemsets已經制作好了,我重新啓動了我的電腦。

我運行下面的命令:

$ rvm gemset list 

gemsets for system (found in /Users/evan/.rvm/gems/system) 
* 

當然,這會導致混亂,當我運行rails s啓動我的服務器。

我設法讓gemsets回來的唯一方法是創建一個虛擬的寶石:

$ rvm --create [email protected] 
$ rvm gemset list 

gemsets for ruby-1.9.2-p290 (found in /Users/evan/.rvm/gems/ruby-1.9.2-p290) 
asdasdads 
=> blahblah 
global 
rails3.1 
rails31 
test 
test3 
test6 
whymvc 

這顯示了所有我所創建的gemsets(和需求)的。在這一點上我改變寶石回到一個我想:

$ rvm gemset use rails3.1 
Using /Users/evan/.rvm/gems/ruby-1.9.2-p290 with gemset rails3.1 

在這一點上我回來了,我需要是功能開發,直到下次重新啓動。

我相信我遵循正確的方向在RVM網站,我的.bash_profile文件看起來像這樣:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

我的問題是這樣的:

如何配置RVM以「記住」了我創建的gemsets沒有創建/刪除虛擬的?

編輯#1 - rvm info輸出

運行rvm info產生以下的輸出:

$ rvm info 

system: 

    system: 
    uname:  "Darwin emcummings-pc 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64" 
    bash:  "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)" 
    zsh:   "/bin/zsh => zsh 4.3.11 (i386-apple-darwin11.0)" 

rvm: 
    version:  "rvm 1.10.0-pre by Wayne E. Seguin ([email protected]) [https://rvm.beginrescueend.com/]" 

homes: 
    gem:   "not set" 
    ruby:   "not set" 

binaries: 
    ruby:   "/usr/bin/ruby" 
    irb:   "/usr/bin/irb" 
    gem:   "/usr/bin/gem" 
    rake:   "/usr/bin/rake" 

environment: 
    PATH:   "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/evan/.rvm/bin" 
    GEM_HOME:  "" 
    GEM_PATH:  "" 
    MY_RUBY_HOME: "" 
    IRBRC:  "" 
    RUBYOPT:  "" 
    gemset:  "" 
+0

我沒有這樣的問題。重新啓動後「rvm info」的輸出是什麼? – 2011-12-29 16:00:07

+0

我在'rvm info'上添加了上述結果 - 我在RVM中處於一個非常基本的級別,所以我不確定是否存在問題 – Evan 2011-12-29 16:08:47

回答

10

看來,您的默認RVM紅寶石未設置。

嘗試運行此:

rvm use --default --create [email protected] 

,然後重新啓動。

如果您的寶石已存在,您可以省略--create

rvm use --default [email protected] 
+0

好東西,謝謝!唯一的區別是我刪除了'--create',所以語句看起來像這樣:'rvm use --default 1.9.2 @rails3.1' - 欣賞指導 – Evan 2011-12-29 16:18:21

+0

是的,如果它已經存在,不需要用' --create'。很高興我幫助:-) – 2011-12-29 16:20:47

+0

更新了答案,爲未來的訪客:-) – 2011-12-29 16:22:19