bundle exec vagrant free-memoryでエラーが出る時の対処方法

すっごい悩んだのでメモしておく。
Vagrantで遊んで、O’REILYから出ている「実践Vagrant」を読んでプラグインを作ろうってなって、書籍の通り進めたつもりなのにエラーが出て進めなかった。
試したのはWindows 8環境です。

bundle exec Vagrant free-memory

って実行すると、次のようなエラーが出て解決できない!

/home/thoraxe/.gem/ruby/1.9.1/bundler/gems/vagrant-d81af187eae3/lib/vagrant/pre-rubygems.rb:16:in `require_relative’: /home/thoraxe/.gem/ruby/1.9.1/bundler/gems/vagrant-d81af187eae3/lib/vagrant/bundler.rb:188: syntax error, unexpected tPOW (SyntaxError)
    def internal_install(plugins, update, **extra)
                                            ^
/home/thoraxe/.gem/ruby/1.9.1/bundler/gems/vagrant-d81af187eae3/lib/vagrant/bundler.rb:257: class definition in method body
/home/thoraxe/.gem/ruby/1.9.1/bundler/gems/vagrant-d81af187eae3/lib/vagrant/bundler.rb:273: syntax error, unexpected keyword_end, expecting $end
        from /home/thoraxe/.gem/ruby/1.9.1/bundler/gems/vagrant-d81af187eae3/lib/vagrant/pre-rubygems.rb:16:in `<main>’

解決方法

原因は恐らくRubyのバージョン問題ちっく。
試行錯誤しすぎて環境がよごれまくっているので、下記対応だけで良いのか、正しいのかは結構怪しいけど、まぁ自分の環境で最後にやった作業ってことで。

RubyInstallerでRubyとRubyGemsをインストールしようっとP.120に書かれているのだけど、それが不要(かも)。代わりに、Vagrantに梱包されているRubyを使うように環境変数をセットしてあげる。

「C:\HashiCorp\Vagrant\embedded\bin」にPathを通してあげると、上記エラーは出なくなった!やったね。
本当に正しいのかは一抹の不安を感じるが。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です