我一直在尝试使用vagrant在Windows上为Rails开发设置一个Ubuntu虚拟机。
我做的是首先创建一个“普通”虚拟机并通过SSH连接到它然后运行我需要的所有命令,例如sudo apt-get install x以确保它们工作(他们做了),然后再放入它们进入shell脚本。
当我尝试使用我所做的shell脚本运行vagrant时,它会出现一个非常长的错误消息,例如stdin:不是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
非常感谢任何帮助。
经过多次尝试后,我意识到甚至没有来自流浪文档(http://docs.vagrantup.com/v2/getting-started/provisioning.html)的演示脚本也能正常工作,这很奇怪,因为当我开始这项工作并试用它时,该脚本肯定能够正常工作。
答案 0 :(得分:6)
/tmp/vagrant-shell: line 5: $'\r': command not found
第5行
echo 'Updating system packages...'
看起来像windows“回车/换行”\r\n
vs unix“new line”\n
考虑在vagrant文件中使用chef-solo选项,需要一点习惯厨师,但可能值得 - http://docs.vagrantup.com/v2/provisioning/chef_solo.html