通过 Ansible 控制 Vagrant 插件依赖项



我有一个 Ansible 剧本,它安装了 Vagrant,然后指示 Vagrant 安装一个特定的插件。流浪者在安装所需的宝石时遇到问题,并说:

安装 nokogiri (1.6.6.2) 时出错,捆绑程序无法继续。在捆绑之前,请确保"sudo gem install nokogiri -v '1.6.6.2'"成功。stdout:安装'vagrant-aws --version '0.5.0''插件。这可能需要几分钟时间...

虽然我在使用以下命令安装Nokogiri时遇到问题:

$ sudo gem install nokogiri -v '1.6.6.2'

就像流浪汉一样,我发现我可以使用以下命令手动安装 Nokogiri:

$ sudo gem install nokogiri -v 1.6.6.2 -- --use-system-libraries --with-xml2-include=/usr/include/libxml2

即使在我手动安装 gem 之后,如果我手动告诉它安装插件,流浪者仍然会失败。

有没有办法更好地控制这些依赖项,以便流浪者不会失败并且我的剧本会完成?

事实证明我缺少一些关键的依赖项:build-essentiallibxslt1-devlibxml2-devzlib1g-dev 。我在这里找到了这条评论:https://github.com/mitchellh/vagrant-aws/issues/163#issuecomment-27603855 非常有帮助。

我相信这是使用 sudo 安装 ruby gem 的问题。

我通过安装 Ruby 版本管理器解决了这个问题,它在您的主目录中安装和管理 gem。

安装

RVM 后,我可以在没有 sudo 的情况下安装 nokogiri,但 vagrant-aws 仍然无法安装,直到我重新安装 vagrant。如果您正在使用 Ansible 构建全新的环境,那么您可能可以在第一次安装 vagrant(或任何其他 ruby 内容)之前安装 RVM。还有其他方法可以修复您的 gem 权限。

以下是我采取的步骤:

安装 Ruby 版本管理器 (https://rvm.io/rvm/install)

curl -sSL https://get.rvm.io | bash -s stable --ruby

在没有须藤的情况下安装野子尻

gem install nokogiri

重新安装流浪汉 (http://www.vagrantup.com/downloads)

相关内容

  • 没有找到相关文章

最新更新