我想帮助修补vagrant-persistent-storage plugin中由最近版本的VirtualBox(4.3.0r89960)和Vagrant(1.3.5)引起的错误。
具体来说,似乎VirtualBox已经从--sataportcount
命令中弃用了vboxmanage storagectl
标志,以获得更简洁的--portcount
标志。
我一般不熟悉vagrant插件开发,但是如果我能够准确地确定正在使用的VirtualBox的版本,那么可以很容易地修复有问题的标志。
vboxmanage -v
的命令行响应来进行版本特定的确定?我宁愿不必重新发明轮子...... 提前感谢任何提示!
更新:我发现可以在VirtualBox提供程序插件中将该版本作为字符串获取:
module VagrantPlugins
module ProviderVirtualBox
module Driver
class Base
@version
然而,这只是VirtualBox版本号('4.3.0'
)的字符串表示,而不是允许严格比较的正确版本号(4.3.0
)。我意识到我自己可以进行这种比较,但似乎应该有一种方法(在Vagrant中)来管理VirtualBox / provider依赖项。
答案 0 :(得分: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 ruby gem:https://github.com/dazuma/versionomy