每次我在我的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