Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Puppet未卸载软件包_Puppet_Rpm_Configuration Management_Puppet Enterprise - Fatal编程技术网

Puppet未卸载软件包

Puppet未卸载软件包,puppet,rpm,configuration-management,puppet-enterprise,Puppet,Rpm,Configuration Management,Puppet Enterprise,我正试图用puppet卸载packageA,但是puppet没有卸载 我的包资源如下所示: package { 'packageA': ensure => absent, provider => rpm, alias => 'packageA', name => 'packageA', uninstall_opt

我正试图用puppet卸载packageA,但是puppet没有卸载

我的包资源如下所示:

  package {
    'packageA':
      ensure            => absent,
      provider          => rpm,
      alias             => 'packageA',
      name              => 'packageA',
      uninstall_options => ['--nodeps'],
  }
以下是该软件包的
--debug
傀儡日志:

Debug: /Package[packageA]: Provider rpm does not support features targetable; not managing attribute command


Debug: Executing: '/bin/rpm --version'
Debug: Executing '/bin/rpm -qa --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n' | sort'
Debug: Executing: '/bin/rpm -q packageA --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n'
Debug: Executing: '/bin/rpm -q packageA --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n --whatprovides'
Debug: /Package[packageA]: Nothing to manage: no ensure and the resource doesn't exist
我没有看到puppet在任何地方执行
rpm-e--nodeps packageA
。我错过什么了吗

请注意,如果在
exec
资源中有
rpm-e packageA--nodeps
,它将卸载该包。但是我想知道上面的包资源有什么问题

提前谢谢

我没有看到木偶在任何地方执行rpm-e——nodeps packageA。我错过什么了吗

是的,不是,也许

你看到了吗

??这说明Package
packageA
一开始就没有安装。在这种情况下,木偶不需要做任何事情来使它缺席。特别是,它不会对(最初)未安装的包执行
rpm-e
命令

然而,这条信息也表示“不保证”。这可能显示了一个bug,但它似乎在告诉您,它所应用的
没有表示
sure
属性,这意味着所显示的输出与所显示的代码不符。不过,这并没有改变上一段中的任何内容。

试试这个

package { 'packageA':
  ensure            => absent,
  alias             => 'packageA-<version or arch>',
  uninstall_options => ['--nodeps'],
}
package{'packageA':
确保=>缺席,
别名=>“packageA-”,
卸载\u选项=>['--nodeps'],
}
不指定提供程序是一种很好的做法,Puppet的优点之一是抽象层,它会为您找到正确的提供程序,这样您的代码就可以在任何操作系统上运行,您可能会发现Puppet通过yum成功地删除了此包。把这种复杂性留给木偶来解决

只有当包可能被称为不同名称时,才需要别名,yum info应该告诉您这一点或
rpm-qa-packageA
,这对于添加到原始问题中很有用

通常不需要指定名称,因为它默认为资源标题

package { 'packageA':
  ensure            => absent,
  alias             => 'packageA-<version or arch>',
  uninstall_options => ['--nodeps'],
}