首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >木偶-使用确保包‘版本’和‘举行’

木偶-使用确保包‘版本’和‘举行’
EN

Server Fault用户
提问于 2012-03-15 21:54:36
回答 2查看 18.4K关注 0票数 3

概述:

刚开始使用Puppet,并使用下面的数组“确保”,因此安装了一个特定版本的Apache (而不是最新版本)和它的“持有”(这意味着它不会在标准apt-get dist-upgrade上升级到最新版本)。

问题:

当使用下面的代码时,Puppet只考虑到“确保”数组中的第一个值。因此,当下面的代码被执行时,它会安装正确版本的Apache,但是包不会被设置为容纳(通过运行dpkg --get-selection检查)。

如果交换数组中的值,则包被保存,但安装了最新版本。

代码:

代码语言:javascript
复制
package { 'apache2':

        ensure => [ "2.0.64", held ],
 }

感谢你对这篇文章的指点!

谢谢。

EN

回答 2

Server Fault用户

发布于 2012-03-15 22:11:07

据我所知,通过阅读源代码,“可保留”功能是有根本缺陷的。“确保”(请参阅ensurable.do,第50行)不能接受一个选项数组。因此,包不能同时安装在特定版本并使用dpkg标记保存。我假设解析器的默认行为是这样的,如果它接收到一个不受支持的数组,则使用第一个值。这就解释了你的结果。

在我看来,版本和/或可保留的特性应该作为一个新变量重新实现,例如:

代码语言:javascript
复制
package { 'apache2'
  ensure => installed,
  version => '2.0.64',
  hold => true,
}

我建议你提交一份错误报告。在此期间,你可以:

代码语言:javascript
复制
package { 'apache2':
  ensure => '2.0.64',
}

exec { 'hold-apache2-version':
  command => 'dpkg ...',
  require => Package['apache2'],
}
票数 6
EN

Server Fault用户

发布于 2012-11-22 17:20:35

我使用这个木偶模块来管理我的系统上的apt。它提供了一个"preferences_snippet“定义,它可以用于将包固定到特定的版本或版本(见自述)。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/370266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档