2

当我运行 Vagrant 时,它正在执行所有配置和诸如此类的操作,然后我看到了错误:

==> default: ERROR:  Error installing puppet:

然后:

==> default: Unable to load puppet. Please install it using native packages for your platform (eg .deb, .rpm, .dmg, etc).
==> default: No such file or directory - puppet

在我的配置文件中,我有:

config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.manifest_file  = "site.pp"
    puppet.module_path = "puppet/modules"
    puppet.hiera_config_path = "puppet/hiera.yaml"
    puppet.options = "--verbose --debug --pluginsync"
  end

在我运行 vagrant up 的文件夹中,有一个名为 puppet 的文件夹,其中包含配置中引用的各种文件和文件夹。

关于为什么这会失败或我如何解决它的任何帮助将是最有帮助的。

编辑:刚刚在调试模式下运行 vagrant,也许它与不够高级的 ruby​​ 版本有关?我不确定它是否直接相关:

DEBUG ssh: stderr: ERROR:  Error installing puppet:
    json_pure requires Ruby version ~> 2.0.

 INFO interface: info: ERROR:  Error installing puppet:
    json_pure requires Ruby version ~> 2.0.
 INFO interface: info: ==> default: ERROR:  Error installing puppet:
==> default:    json_pure requires Ruby version ~> 2.0.
==> default: ERROR:  Error installing puppet:
==> default:    json_pure requires Ruby version ~> 2.0.
4

1 回答 1

1

好的,任何遇到过这个问题的人,或者如果你只是好奇问题是什么。json_pure 是 puppet 的依赖项,当 puppet 安装时,它会尝试安装最新版本的 json_pure。事实证明,json_pure 于 2 天前于 7 月 26 日(2.0.2)发布了一个新版本,它对 ruby​​ 的依赖高于目前在我的 vagrant 设置中运行的 1.9 版本。为了解决这个问题,我强制它使用之前版本的 json_pure (2.0.1)。

为此,只需输入:

gem install json_pure -v 2.0.1

在它安装 puppet 之前的某个地方,它已经有了 json_pure 并且不会尝试安装最新版本作为 puppet 的依赖项。

于 2016-07-28T23:58:46.553 回答