保持APT缓存跟上时代的
虽然这不是一个回答你的问题,我可以希望为您提供一个答案,你的实际问题(这是一个很常见的一个BTW):
的apt食谱,你应该在你运行列表之前,您使用package
资源会自动拉回购。
为了避免在每次厨师运行期间拉回购,其默认情况下每天只吸取一次,而此最小延迟可通过node['apt']['periodic_update_min_delay']
进行配置。
因此,至少对于我在过去几年厨师的使用案例,我认为我从来不需要通知一个资源做apt-get update
。增加一个额外的容易库即使,这很容易做到如下:
apt_repository 'security-ubuntu-multiverse' do
uri 'http://security.ubuntu.com/ubuntu'
distribution 'trusty-security'
components ['multiverse']
deb_src 'true'
end
与apt_repository
资源巧妙的是,它会自动触发apt-get update
运行。
触发资源的气味运行之前
(由与原创作者的许可,贡献的@Tensibai)
为什么一个:before
是一个虚假的“好主意” 99%的时间:
当你在一个孤立的软件包安装上考虑它时,它听起来要走,要求软件包通知执行以前运行apt-get update
。
现在,当您将其扩展到N个包(1个或更多配方)时,如果必须安装apt-get update
,那么您将希望确保每个包都运行apt-get update
。
这是龙的来了,我们打电话多少次apt-get update
?直接:before, :immediately
它会被称为N次,每次包装之前,这是愚蠢的,但可能是你的愿望。
你可能反对它应该只做一次,而作为:delayed
它应该排队,但什么时候?在编译时,我们不知道是否需要安装软件包,这假设增加了一个新的“编译”阶段来测试这些资源并构建“预先通知”队列。
这是Puppet的一部分,当你希望完全控制执行顺序时,它会出现问题。
这个here
新:immediately_before
资源
现在我说为什么它应谨慎使用,这里的好消息更多细节:
新:immediately_before
在它的途中到厨师在近在厨师12.6加入每rfc-154未来,这PR
你想解决的实际问题是什么?首先更新所有软件包?或者你的意思是'apt-get update'而不是'upgrade'? – StephenKing
哈,对不起,意思是'apt-get update' ...我已经更新了这个问题 –
我现在注意到你已经有了一个'include_recipe'apt''。所以一切都应该没有任何通知,不是吗? – StephenKing