木偶更新包到最新的次要版本?

例如,我已经安装了php-fpm:

Name : php-fpm Arch : x86_64 Version : 5.4.16 Release : 23.el7_0.3 Size : 4.5 M Repo : installed From repo : updates Summary : PHP FastCGI Process Manager URL : http://www.php.net/ License : PHP and Zend and BSD 

目标是让PHP保持最新的5.4版本。 目前我在清单中有这个: ensure => '5.4.16-23.el7_0.3',

这不会更新,如果新版本或释放出来,而我不希望它更新到5.5意外。

我已经尝试了以下内容:

  • ensure => '5.4.16',
  • ensure => '5.4',
  • ensure => '5.4.16-*',
  • ensure => '5.4.*',

所有这些都给了我类似的东西:

change from 5.4.16-23.el7_0.3 to 5.4 failed: Could not update: Failed to update to version 5.4, got version 5.4.16-23.el7_0.3 instead

这是在RHEL / CentOS上,它可能符合要求,只是ensure => latest,对于PHP,我只是使用PHP为例。 我只想知道:

  • 傀儡的方式来pipe理次要版本。 (如果有一个或两个…我读到,至less你可以维护自己的回购,但有一个纯粹的傀儡语法,就像我上面猜到的那样?)
  • 除了PHP以外,显然还有一些软件包,你会怎么用puppet来pipe理那些可能来自不同回购的软件包,或者可能是RHEL / CentOS以外的发行版等等。
  • 我从傀儡参考读取,确保“值可以匹配/./”,是正则expression式还是什么? http://docs.puppetlabs.com/references/3.7.5/type.html#package-attribute-ensure

我在RHEL / CentOS 7上运行开源Puppet 3.7.5。

不,木偶不能更新到最新的未成年人,但只能保证特定的版本,或者可以确保软件包存在或最新。

你应该做的是创build自己的定制仓库,它将只有你的相关性的包(例如5.4系列的PHP),然后在傀儡刚刚设置:

 package { 'php-fpm': ensure => latest } 

这将检查每一个木偶运行,如果有更新。

另外,如果您不使用为您的系统提供更新的PHP软件包的其他软件库,请ensure => latest将按照您的要求运行,因为CentOS更新其软件包的方式。 在CentOS 7中永远不会有php-5.5,但是php会停留在5.4系列。 5.5和任何更新的更新将通过php55,php56等提供 – 这意味着您将不得不在puppet清单中更改包名以反映您想要的版本,例如:

 package { 'php56-fpm': ensure => latest } 

所以,答案是否定的,你必须确保你的存储库只提供你想要的主要版本,然后你可以在puppet中使用ensure => latest

要在存储库中设置,可以使用如下所示的内容:

  • 包括
  • 排除
  • 优先