2013-04-28 72 views
9

我一直在尝试在Windows for Rails开发中使用vagrant设置Ubuntu虚拟机。流浪外壳配置不起作用

我所做的是首先创建一个“普通”虚拟机,然后运行所需的所有命令,例如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)的作品,这是很奇怪的,因为该脚本绝对昨天工作时,我开始这项工作,并尝试过了演示脚本。

回答

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

线5

echo 'Updating system packages...' 

看起来像一个窗口 “回车/换行” \r\n VS UNIX “新线” \n

可能的问题,还可以考虑使用在颠沛流离的厨师独奏选项文件,需要一点去习惯厨师,但可能值得 - http://docs.vagrantup.com/v2/provisioning/chef_solo.html

+0

我也注意到,但我驳回它(可能愚蠢)因为文档中的示例shell脚本昨天确实有效。我一直在寻找木偶和厨师,但我一次想到一个新的技巧:)为什么你推荐厨师傀儡顺便? – Lee 2013-04-28 18:10:02

+0

我使用这个技巧来将我的行结束符转换成unix行尾.http://superuser.com/questions/479756/eol-in-notepad-and-notepad。 – Lee 2013-04-28 18:41:31

+0

我不认为你可能会错误地学习任何一个,厨师似乎更容易接受我,厨师独奏和刀使它容易,而不需要提供服务器 - 一些好的博客文章在那里做比较:https:// www.google.com/search?q=chef+or+puppet – house9 2013-04-28 20:04:31