2013-02-02 33 views
1

寶石rubygems-update做什麼?手冊說這是對寶石的更新,但不清楚這意味着什麼。我已經在我的電腦上安裝了gem(版本1.8.25),但是我能夠在版本1.8.25(與gem相同的版本號)上安裝rubygems-update,導致gem版本1.8.25。那是什麼意思?是做什麼的區別:什麼是`rubygems-update`?

gem update --system 

update_rubygems 

回答

3
  1. 是什麼寶石的rubygems更新辦: 對於安裝了舊版本的RubyGems的,它是在兩個步驟中的兩個步驟如下做了什麼?

    rubygems-update是包含gem命令的gem,它安裝到您的ruby bin目錄中,因此您可以使用像gem install等命令。

  2. 這是什麼意思,您可以安裝與您撥打gem --version時出現的版本號相同的版本號的寶石rubygems-update

    RubyGems的更新的版本號爲版本號當記者問到gem命令推出。如果你cd到的rubygems-update內容,並轉到文件command_manager.rb,你會發現上線138以下幾點:

    when '-v', '--version' 
    say Gem::VERSION 
    terminate_interaction(0) 
    

    所以,你要安裝rubygems-update能力,這是什麼意思?導致第三個問題:

  3. gem update --systemupdate_rubygems有什麼區別?

    有一點。其實,gem update --system [VERSION]僅僅是以下兩個命令的包裝:

    gem install rubygems-update -v [VERSION] 
    update_rubygems 
    

    要看到實際的代碼執行gem update --system,cd到的rubygems-update內容,並期待在文件update_command.rb。你可以做gem update --system -v以獲得它正在做的詳細輸出。

+0

我不認爲你的3.是正確的。我多次完成'gem update --system',但是我仍然可以通過執行'gem instlal ruby​​gems-update'來安裝'rubygems-update',這意味着'gem update --system'沒有安裝'rubygems -update'。 – sawa

+0

@sawa'gem install'命令總是安裝gem afaik,如果源代碼可用,它不會從遠程獲取。如果你使用'gem uninstall ruby​​gems-update',刪除它的所有版本,然後執行'gem install ruby​​gems-update -v 1.8.20'(例如,稍後可以再次升級),然後執行'gem update - 系統1.8.20',你會看到gem不是從遠程獲取的(因爲源已經存在),如果你直接使用'gem update --system 1.8.20'就會發生這種情況。另外'gem update --system'的輸出顯示它的確在安裝gem。 –

+0

謝謝。似乎是我的誤解。 – sawa

4

正如你所知道的RubyGems是Ruby和寶石包管理框架是相同的更新。

gem update --system 

這是正常的升級策略。

gem install rubygems-update 
update_rubygems 
+0

雖然你寫的可能是正確的,但它不能回答我的問題。 – sawa

+0

@sawa請詳細說明你想知道的。 –

+0

我給出了三個清晰的疑問句。你沒有回答他們。我不會再詳述它。 – sawa

相關問題