使用木偶脚本在MacOSX中安装解压缩工具时遇到困难



我们正在编写一个木偶清单,该清单将在Mac OS X中安装解压缩和其他一些工具,木偶清单如下所示。

$packages = ['lsof','unzip','sysstat','telnet', 'git', 'less', 'tree', 'zip']
package {
    $packages:
        ensure => installed,
        provider  => 'brew',
}

但当我运行这个程序时,它会给出如下错误,

Error: Failed to apply catalog: Parameter provider failed on Package[lsof]: Invalid package provider 'brew' at /home/rajeevan/appfactory/modules/wso2base/manifests/packages.pp:9
Wrapped exception:
Invalid package provider 'brew'
Wrapped exception:
Invalid package provider 'brew'

然后我们执行命令

brew install unzip

只是为了确保解压工具被安装,但它没有。

我在谷歌上搜索了一下,找到了一个解决方案

$ brew tap homebrew/dupes
$ brew install unzip

这很好,但就木偶而言,如何在我的木偶清单中做到这一点?

我自己在谷歌上的快速搜索表明,如果你使用boxen自制软件模块,你可以编写这样的清单:

homebrew::tap { 'homebrew/dupes': }
->
package {
    $packages:
        ensure => installed,
        provider  => 'homebrew',
}

如果不能做到这一点,您可能会回到exec类型。

exec { 'brew tap homebrew/dupes': ... }
->
package {
   ...
}

但是,您可以为exec声明合适的查询,以确定它何时需要运行,或者它是否已经同步。

最新更新