为什么傀儡每次运行时都检查一些软件包?

每次我在我的Ubuntu服务器上运行puppet时,我都会得到这个:

注意:/ Stage [main] / MyCompany :: Role :: MyApp / Package [ncurses-dev] / ensure:确保已更改'已清除'为'present'

每一个。 单。 时间。 为什么它为这个特定的包,而不是其他的,出现在相同的代码块?

Package { ensure => present } package { [ "openjdk-6-jre-headless", # for SOLR "ncurses-dev", # for varnishstat built from buildout, used by munin "pkg-config", "nfs-common", "gettext", # for building PO @deployment "libpcre3", "libpcre3-dev", # for varnish build / to be removed "libevent-dev", # for beantalk buid / to be removed "ffmpeg", # for thumbnails "gpac", # contains MP4Box, for making mp4 pseudo-streamables ]:; } 

编辑 :在详细/debugging模式下运行木偶显示此:

debug:Puppet :: Type :: Package :: ProviderApt:执行'/ usr / bin / dpkg-query -W –showformat $ {Status} $ {Package} $ {Version} \ n ncurses-dev'

debug:Puppet :: Type :: Package :: ProviderApt:执行'/ usr / bin / apt-get -q -y -o DPkg :: Options :: = – force-confold install ncurses-dev'

执行第一个命令给出了这个:

N [DEMO]根@ UCDB:〜#

在提示之前注意n

让我们承认这是一个debugging选项的格式化问题,这是我得到的一些修复时运行它:

/ usr / bin / dpkg-query -W –showformat ='$ {Status} $ {Package} $ {Version} \ n'ncurses-dev

未知的确定没有安装ncurses-dev

这里是我运行aptitude search ncurses-dev时获得的aptitude search ncurses-dev

v ncurses-dev

包是虚拟的…

出现此错误是因为ncurses-dev是一个虚拟包。

 # apt-cache show ncurses-dev N: Can't select versions from package 'ncurses-dev' as it is purely virtual N: No packages found 

你或者想要这两个之一:

 libncurses5-dev - developer's libraries for ncurses libncursesw5-dev - developer's libraries for ncursesw 

要知道你正在使用哪一个,你可以这样做:

 apt-cache showpkg ncurses-dev | sed '/Reverse Provides/,$!d' Reverse Provides: libncurses5-dev 5.9-4