Vagrant 的 shell provisioner 在 Mac 主机上失败,但在 Windows 主机上正常运行

3
我有如下的vagrant文件,其中包含一个shell provisioner,在Windows 7 VirtualBox上运行良好,但在我的MacBook Pro OSX 10.9.2上运行失败。 更具体地说,该provisioner似乎无法安装requirements.txt。如果我以root身份SSH登录到框中并重新运行bootstrap.sh,它将正常工作。我知道长错误消息会很有帮助,但我认为问题是针对了解为什么虚拟框设置在一个环境下工作而在另一个环境下不工作。尤其是在启动这种简单的shell脚本时。 非常感谢任何想法或建议!
Vagrant File
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.hostname = "test-box"

  config.vm.box = "hashicorp/precise64"

  config.vm.provision :shell, :path => "bootstrap.sh"
end

bootstrap.sh

#!/usr/bin/env bash

apt-get update
apt-get install -y build-essential curl git libffi-dev python-dev python-pip \
libxml2-dev libxslt1-dev python-software-properties g++ make

pip install --upgrade distribute
pip install -r /vagrant/requirements.txt

requirements.txt

Scrapy>=0.18.2
Twisted>=13.1.0
lxml>=3.2.3
queuelib>=1.0
w3lib>=1.3

我能够无问题地运行这个。有更新吗?你能发布一下你看到的错误信息吗? - nsfyn55
我查看了两个系统中的虚拟机,发现MBP的内存非常低。 - Andres
1个回答

0

分配给虚拟机的内存与主机可用内存有关。在这种情况下,MBP有4GB内存,而VM默认为约300MB。这不足以成功安装requirements.txt。解决方法是增加Vagrant文件中所需最小内存的大小,例如:

config.vm.provider :virtualbox do |vb|

vb.memory = 2048
vb.cpus = 2

end

这个教训是要确保在Vagrant文件中尽可能详细地设置,以便在不同系统之间准确复制。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接