2013-10-23 37 views
2

我想幫助修補由最近版本的VirtualBox(4.3.0r89960)和Vagrant(1.3.5)引起的vagrant-persistent-storage plugin中的錯誤。是否可以確定流浪者插件中的VirtualBox版本?

具體而言,似乎VirtualBox已棄用vboxmanage storagectl命令中的--sataportcount標誌,對於更簡潔的--portcount標誌。

我一般不熟悉vagrant插件的開發,但是如果我能夠準確地確定正在使用的VirtualBox的版本,可以很容易地修復問題標誌。

  • 是否有可能在一個流浪的插件中比較VirtualBox的版本,以保持與舊版VirtualBox版本的向後兼容性?
  • 如果沒有,是否有任何其他vagrant插件必須使用命令行響應 vboxmanage -v作出版本特定的決定?我寧願不必重新發明輪...

在此先感謝您的任何提示!

更新:我發現,這是可能得到的版本爲VirtualBox的供應商插件中的字符串:

module VagrantPlugins 
    module ProviderVirtualBox 
    module Driver 
     class Base 
     @version 

然而這僅僅是VirtualBox的版本號的字符串表示('4.3.0')不是一個適當的版本號(4.3.0),這將允許嚴格的比較。我意識到我可以自己做這個比較,但似乎應該有一種方法(在Vagrant中)管理VirtualBox /提供程序依賴關係。

回答

0

Ruby已經可以將版本作爲字符串進行比較。像這樣:

irb(main):001:0> '4.3.0' < '4.3.1' 
=> true 
irb(main):002:0> '1.2.3' < '4.3.0' 
=> true 
irb(main):003:0> '4.2.17' > '4.3.0' 
=> false 

如果你需要的東西更先進,嘗試versionmy紅寶石寶石:https://github.com/dazuma/versionomy

+0

這不會是像''4.3.0''串有用。 –

+0

你是對的,解決了這個問題。 – Irving

相關問題