Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新puppet中的包?_Python_Linux_Ubuntu_Puppet - Fatal编程技术网

Python 更新puppet中的包?

Python 更新puppet中的包?,python,linux,ubuntu,puppet,Python,Linux,Ubuntu,Puppet,我正在尝试使用ubuntu服务器通过puppet更新已经安装的包。 但是没有更新也没有发生 在puppet清单文件中,我们包含了收集器包,如下所示 if !defined(Package['package name']) { package { 'package name': } } else { package { 'package name': ensure => latest,

我正在尝试使用ubuntu服务器通过puppet更新已经安装的包。 但是没有更新也没有发生

在puppet清单文件中,我们包含了收集器包,如下所示

if !defined(Package['package name'])
{
        package { 'package name': }
}
else
{
         package { 'package name':
                        ensure => latest,
                        require  => Exec['apt-get update'],
          }
}
你能解释一下这句话吗!definedPackage['package name']或
如何升级软件包。假设我想安装php,而下一次部署需要更新到最新版本…您可以共享代码吗???

首先,您应该避免使用定义的函数,因为它将创建依赖解析的行为,这是不建议的

你可能没有做你认为它做的事情。仅当包已定义时,它才会进入else分支。在这种情况下,您应该看到一个错误,因为您正在重新定义它,这是禁止的


这意味着没有定义包,您定义包时没有任何选项。您可能希望查看可以配置为在每个软件包安装之前运行apt get update的,并且通常会使管理ppa、自定义软件源等变得更容易。

'if!definedPackage['package name']{package{'package name':确保=>latest,require=>Exec['apt-get update'],}}}'为什么需要检查包是否已定义?这最终会导致错误,因为此函数依赖于解析顺序。要么在别处定义了它,并且应该在那里添加正确的确保,要么没有定义它,并且不需要检查。