9

我一直在尝试使用 vagrant 在 Windows 上设置一个 Ubuntu 虚拟机来进行 Rails 开发。

我所做的是首先创建一个“普通”虚拟机并通过 SSH 连接到其中,然后运行我需要的所有命令,例如 sudo apt-get install x 以确保它们正常工作(他们确实这样做了),然后再将它们放入 shell脚本。

当我尝试使用我制作的 shell 脚本运行 vagrant up 时,它会出现一条非常长的错误消息,其中包含诸如 stdin: is not a tty 和其他同样神秘的错误消息。

我的流浪文件如下所示:

Vagrant.configure("2") do |config|

  config.vm.box = "precise32"
  config.vm.provision :shell, :path => "Vagrant.sh" 
  config.vm.network :forwarded_port, host: 3003, guest: 3000,  auto_correct: true

end

我的 shell 脚本在这里(因为它有点长而且 GitHub 提供语法高亮): https ://gist.github.com/leebrooks0/5477591

控制台输出在这里: https ://gist.github.com/leebrooks0/5477627

任何帮助将不胜感激。


经过更多尝试后,我意识到即使是 vagrant docs ( http://docs.vagrantup.com/v2/getting-started/provisioning.html ) 中的演示脚本也不起作用,这很奇怪,因为该脚本昨天确实有效我开始了这项工作并进行了尝试。

4

1 回答 1

6
/tmp/vagrant-shell: line 5: $'\r': command not found

第 5 行

echo 'Updating system packages...'

看起来 Windows“回车/换行”\r\n与 unix“新行”可能存在问题\n

还考虑在 vagrant 文件中使用 chef-solo 选项,需要一些时间来适应厨师,但可能值得 - http://docs.vagrantup.com/v2/provisioning/chef_solo.html

于 2013-04-28T18:03:22.707 回答