2014-10-24 2 views
1

Я хочу настроить бродягу на моем Ubuntu, когда «бродячий вверх», он всегда дает мне следующую ошибку: синтаксическая ошибка, неожиданный ':', ожидающий kEND config.vm. Provision: shell, path: "vagrantprov.sh"Ruby неожиданный ':', ожидающий kEND

Я проверил Vagrantfile, все должно быть в порядке, может ли кто-нибудь сказать мне, где ошибка? Благодарю.

# -*- 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.box = "ubuntu/trusty64" 

    # Share an additional folder to the guest VM. The first argument is 
    # the path on the host to the actual folder. The second argument is 
    # the path on the guest to mount the folder. And the optional third 
    # argument is a set of non-required options. 
    # config.vm.synced_folder "../data", "/vagrant_data" 

    config.vm.provider "virtualbox" do |vb| 
    vb.customize ["modifyvm", :id, "--memory", "1024"] 
    end 

    config.vm.provision :shell, path: "vagrantprov.sh" 
end 

ответ

3

Какая версия Ruby вы используете? Синтаксис названных аргументов (path: "...") поддерживается с 1,9 и выше, возможно, у вас более низкая версия Ruby?

(1,8)

1.8.7 :001 > puts "a", b: 1 

SyntaxError: compile error 
(irb):1: syntax error, unexpected ':', expecting $end 

(1,9)

1.9.3p429 :001 > puts "a", b: 1 
a 
{:b=>1} 
=> nil 
+0

My default ruby ​​is 1.8.7, теперь я обновил его до 1.9.1, и он работает, спасибо! –

4

Ruby < 1,9? Старомодный стиль синтаксиса хэша требуется для старой версии Ruby

config.vm.provision :shell, :path => "vagrantprov.sh" 
+0

My default ruby ​​- 1.8.7, теперь я обновил его до 1.9.1, и он работает, спасибо! –

0

< Рубин 1.9:

:a => 1 

Рубин> = 1.9:

a : 1 
Смежные вопросы