小编mic*_*hal的帖子

为什么即使已经安装了包,Puppet 还要继续安装?

我使用 packageinstall属性来确保X安装了给定的包。

但是,即使安装了软件包,也会puppet尝试重新安装它,当然会以异常退出(“X 已安装”)。当包名称与服务名称匹配时不会发生这种情况。我使用本地 RPM 和 RPM 提供程序。

我如何避免这种异常?


我还实施了一个解决方法:如果我成功安装 RPM,我会创建一个名为/X_DONE. 然后我根据该文件安装依赖项,而不是包。

处理这种情况的正确方法是什么?

编辑:失败的清单:

 file {"$tmp_dir/$php_pdo":
   ensure => present,
   source => "puppet:///files/services/$php_pdo"
 }

 package {"php_pdo":
   require => File["$tmp_dir/$php_pdo"],
   ensure => installed,
   provider => rpm,
   source => "$tmp_dir/$php_pdo"
 }
Run Code Online (Sandbox Code Playgroud)

和例外:

err: /Stage[main]/Apache-php/Package[php_pdo]/ensure: change from absent to present failed: Execution of '/bin/rpm -i --oldpackage /tmp/puppet/php-pdo-5.1.6-27.el5_5.3.x86_64.rpm' returned 1:     package php-pdo-5.1.6-27.el5_5.3.x86_64 is already installed
Run Code Online (Sandbox Code Playgroud)

linux rpm installation puppet

5
推荐指数
1
解决办法
9483
查看次数

标签 统计

installation ×1

linux ×1

puppet ×1

rpm ×1