2017-01-06 69 views
0

我現在需要堅持使用Rails 5.0.0。我使用gemset(rails500)和ruby-2.3.3與rvm。我告訴rvm使用gemset並使用命令'gem uninstall rails'從gemset中卸載了其他Rails版本(5.0.1)。之後,我使用命令'gem install rails --version = 5.0.0'來確保我所需的Rails位於gemset中。僅安裝rails gem version 5.0.0後,命令'rails -v'會打印'Rails 5.0.1'。爲什麼?

現在,當我做'rails -v'時,響應是'Rails 5.0.1'。爲什麼不是'Rails 5.0.0'?當我做一個「gem list | egrep'^ rails'」時,響應是'rails(5.0.0)'。

相關問題:我該如何確定這個版本的rails不是5.0.0?

+0

您必須改用RVM使用所需的紅寶石版本並重新打開終端 – user3775217

回答

0

請點擊此設置你想要的軌道版本:

RVM無關與軌道。 rvm用於管理多個ruby安裝。並且您的每個Ruby安裝都可以與多個gemset關聯。例如,假設你已經安裝了ruby 1.9.3,併爲ruby 1.9.3創建了兩個gemset:gemsetA和gemsetB。如果你告訴rvm使用ruby 1.9.3和gemsetA,那就意味着:

你的ruby程序會被ruby 1.9.3執行。 您的ruby程序可能需要gemsetA中的任何gem(然後允許您的程序使用gemsetA中定義的方法(或類)),但您的ruby程序無法看到gemsetB中的任何寶石。 這裏有一個具體的例子:

~$ rvm list 

    rvm rubies 

    ruby-1.8.7-p370 [ i686 ] 
    * ruby-1.9.3-p194 [ x86_64 ] 
    => ruby-2.0.0-p0 [ x86_64 ] 
    ruby-2.0.0-p247 [ x86_64 ] 

# => - current 
# =* - current && default 
# * - default 


~$ rvm use 1.9.3-p194 
Using /Users/7stud/.rvm/gems/ruby-1.9.3-p194 
. 

〜$ RVM寶石列表(此只列出當前紅寶石版本gemsets)

gemsets紅寶石-1.9.3-P194(在/用戶發現/ 7stud /.rvm/gems/ruby-1.9.3-p194) =>(默認) 全球 編程 rails3tutorial rails4

〜$ RVM寶石使用的編程 使用Ruby-1.9.3-P194與寶石編程 我這樣做後,我的ruby程序將由ruby 1.9.3執行,並且編程gemset中的任何寶石都可能需要到我的ruby程序中。您可以使用快捷方式一步執行這兩個命令:

rvm use ruby​​ [email protected] 您只需將ruby版本和gemset與它們之間的「@」組合起來即可。

$ rails -v Rails 4.0.0 這是因爲當前gemset包含rails 4.0.0的gem。如果你想看到$ rails -v輸出Rails 3.2.14,那麼你需要告訴rvm切換到包含rails 3.2.14 gem的gemset。

但是,您可以讓rvm自動切換到適合您的rails項目的rails版本和gemset。在你的Gemfile,紅寶石版本後添加評論:

紅寶石「2.0.0」

紅寶石寶石= railstutorial4_gems

然後當你切換到該目錄包含您的Rails項目,RVM自動將將當前的ruby切換到ruby 2.0.0,將當前的gemset切換到railstutorial4_gems。如果你改變你的rails應用程序的目錄,rvm會將當前的ruby和當前的gemset改回原來的樣子。

我只是一個初學者的軌道,但這裏的步驟我用它來創建一個新的項目,這是直出railstutorial書(http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

1)

.../rails_projects $ rvm使用@ --create

eg

.../rails_projects $ RVM使用[email protected]_gemset --create 2)

.../rails_projects $創業板安裝導軌 - 版本3.2.14 因爲目前gemset是myapp gemset,該命令將rails 3.2.14 gem安裝到myapp gemset中。

3)

.../rails_projects $軌新的myapp .../rails_projects $ CD MYAPP 目前的寶石仍然是myapp_gemset。

4)

.../rails_projects/MYAPP $軌-v 的Rails 3.2.14 如果有人想知道究竟發生了什麼以下兩個gemsets都是關於:

gemsets紅寶石-1.9.3-P194(在/Users/7stud/.rvm/gems/ruby-1.9.3-p194找到)

=>(默認) 全球 RVM爲您安裝每一個Ruby版本創建這兩個gemsets 。在安裝ruby版本之後,如果您沒有爲該ruby版本自己創建gemset,並且安裝了gem,那麼該gem會進入(默認)gemset。而且,如果您希望所有寶石包含某種寶石,則可以切換到全局寶石鑲嵌並在其中安裝寶石。

更新:-------

要保持與其它紅寶石版本兼容性的經理,你可以在不同的文件,而不是在Gemfile中指定項目紅寶石版本和寶石名稱:

$ CD〜/ rails_projects/MYAPP

〜/ rails_projects/MYAPP $回聲2.0.0> .ruby版本 〜/ rails_projects/MYAPP $回聲myapp_gemset> .ruby-寶石 你仍然得到同樣的自動ruby版本和gemset切換,當你cd到你的項目目錄。請參閱此處的rvm文檔。

+0

我不知道不管我的問題不清楚,或者你讀錯了。我說我運行了命令從當前gemset卸載Rails版本(5.0.1),並在其位置安裝Rails 5.0.0版本。現在'rails -v'和'gem list'爲rails打印不同的版本號。 –