gpt4 book ai didi

ruby - 是否可以在 vagrant 插件中确定 VirtualBox 版本?

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:54 25 4
gpt4 key购买 nike

我想帮助修补 vagrant-persistent-storage plugin 中的错误这是由最新版本的 VirtualBox (4.3.0r89960) 和 Vagrant (1.3.5) 引起的。

具体来说,似乎 VirtualBox 已经弃用了 vboxmanage storagectl 命令中的 --sataportcount 标志,为了更简洁的 --portcount旗帜。

我一般不熟悉 vagrant 插件开发,但如果我能够准确确定正在使用的 VirtualBox 的版本,则可以很容易地修复有问题的标志。

  • 是否可以在 vagrant 插件中比较 VirtualBox 的版本以保持与旧 VirtualBox 版本的向后兼容性?
  • 如果不是,是否有任何其他 vagrant 插件必须使用 vboxmanage -v 的命令行响应来做出特定于版本的决定?我宁愿不必重新发明轮子...

提前感谢您的任何提示!

更新:我发现可以在 VirtualBox 提供程序插件中将版本作为字符串获取:

module VagrantPlugins
module ProviderVirtualBox
module Driver
class Base
@version

然而,这只是 VirtualBox 版本号 ('4.3.0') 的字符串表示,而不是允许严格的版本号 (4.3.0)比较。我意识到我可以自己进行这种比较,但似乎应该有一种方法(在 Vagrant 中)来管理 VirtualBox/提供程序依赖项。

最佳答案

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

如果您需要更高级的东西,请尝试我的 ruby​​ gem 版本:https://github.com/dazuma/versionomy

关于ruby - 是否可以在 vagrant 插件中确定 VirtualBox 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com