通过Ansible控制Vagrant插件依赖性

问题描述 投票:3回答:2

我有一本Ansible剧本,它安装了Vagrant,然后指示Vagrant安装特定的插件。 Vagrant无法安装所需的宝石,并说:

安装nokogiri(1.6.6.2)时发生错误,并且Bundler无法继续。捆绑之前,请确保`sudo gem install nokogiri -v'1.6.6.2'`成功。标准输出:安装'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,但如果我手动告诉它安装插件,vagrant仍然会失败。

有没有一种方法可以更好地控制这些依赖关系,以使流浪汉不会失败并且我的剧本将会完成?

ruby vagrant ubuntu-12.04 nokogiri ansible
2个回答
1
投票

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


0
投票

我相信使用sudo安装ruby gem是一个问题。

我通过安装Ruby Version Manager解决了这个问题,该版本会在您的主目录中安装和管理gems。

安装RVM后,我可以不使用sudo来安装nokogiri,但是在重新安装vagrant之前,vagrant-aws仍然无法安装。如果您要使用Ansible构建全新的环境,则可以在首次安装流浪汉(或任何其他红宝石产品)之前先安装RVM。也有other ways to fix your gem permissions

这是我采取的步骤:

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

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

不使用sudo安装nokogiri

gem install nokogiri

重新安装无业游民(http://www.vagrantup.com/downloads

© www.soinside.com 2019 - 2024. All rights reserved.