| Puppet Version: 7.18.0 Puppet Server Version: N/A OS Name/Version: CentOS 7, Alma Linux 8, Oracle Linux 8 When checking whether a package is already present, Puppet queries RPM using the package name and also using '–whatprovides' in case the requested object is a virtual package provided by some other. When the virtual package is provided by multiple installed RPMs, Puppet fails with the following message: "Could not evaluate: no implicit conversion of Array into Hash" Easily reproduced by trying to apply this simple manifest on a system from RedHat family with both curl and wget installed: package { 'webclient': ensure => installed, } (We use 'webclient' here to provide an easily reproducible case. Our real issue is with 'perf' package on Oracle Linux that is provided by kernel-uek and a system can have several kernels installed.) Desired Behavior: Puppet understands that the requested object is already present from multiple sources and does nothing. Actual Behavior: Puppet fails with error:
- puppet apply -e "package { 'webclient': }"
Notice: Compiled catalog for XX in environment production in 0.02 seconds Error: /Stage[main]/Main/Package[webclient]: Could not evaluate: no implicit conversion of Array into Hash
|