我正在尝试安装两件事:
一个名为“mongo”的PHP-PECL模块,以及一个名为“mongo”的yum包。他们需要使用“name”变量来知道包的真实名称是什么,但使用此名称创建的别名puppet使得无法处理多个提供者。
我知道我必须给他们不同的资源名称,所以很自然地,我这样做了:
package { "php-mongo" :
ensure => installed,
provider => 'pecl',
name => 'mongo'
}
package { "yum-mongo" :
ensure => installed,
provider => 'yum',
name => 'mongo'
}
因为我收到错误:
Cannot alias Package[php-mongo] to ["mongo"] at /etc/puppet/environments/testing/modules/packages/manifests/install.pp:52; resource ["Package", "mongo"] already declared at /etc/puppet/environments/testing/modules/packages/manifests/install.pp:52
如何在不修补stdlib的情况下完成这项工作?我是否需要修改我的提供程序,因此如果我将其包含在名称中以避免冲突,他们可以删除前置的“php-”?这看起来很蠢!
经过研究,这是一个古老的老虫,但我找不到任何方法!
谢谢!