質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.45%
Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

511閲覧

パスに日本語が含まれているために?git-bashからvagrant upするとエラーになる

intron

総合スコア36

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2023/01/31 11:41

編集2023/02/01 11:19

ホストOS:Windows 10 pro
VirtualBox: 6.0.16
Vagrant: 2.2.6

Vagrant+VirtualBox で作成した開発用の仮想マシン(①)を使用していて、その環境とは異なるPHPのバージョンの環境が必要になったので、

  1. ①からboxを作成する(vagrant package)。
  2. 作成したboxから今までの仮想マシンとは別なフォルダで新たな仮想マシン(②)を作成する(vagrant box add mycentos7 package.box)。
  3. ②を起動する(vagrant init mycentos7 vagrant up)。
  4. 仮想マシンにsshでログインしPHPバージョンを上げる。

ということをやろうとしました。git-bash でコマンドを入力します。
実際にやってみたところ、1,2のvagrantコマンドは成功したのですが、3の vagrant up がエラーになり仮想マシンが起動しませんでした。それだけでなく今まで起動できていた①の仮想マシンも起動しなくなりました。

ググって調べると Vagrangfile のパスに日本語が含まれるのが問題のようなのですが
(Vagrantfileがあるフォルダのパスは J:\開発環境\namae\centos7 のような感じです)
事情があってパスを変更することができません。
コマンドプロンプトからであれば VAGRANT_HOME 環境変数に日本語を含まないパスを設定すれば vagrant up で起動できたのですが、できることなら git-bash から起動したいです(コマンドプロンプトは不便なので)。
ここからどうすれば git-bash から vagrant up が成功するようになるでしょうか。

vagrant up のエラーメッセージ

vagrant_error.log $ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Clearing any previously set forwarded ports... C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/version_5_0.rb:388:in `split': invalid byte sequence in UTF-8 (ArgumentError) from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/version_5_0.rb:388:in `read_forwarded_ports' from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/version_5_0.rb:601:in `block in read_used_ports' from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/version_5_0.rb:593:in `each' from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/version_5_0.rb:593:in `read_used_ports' from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:12:in `call' from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/lib/vagrant/action/warden.rb:50:in `call' from C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/lib/vagrant/action/builtin/before_trigger.rb:23:in `call' …

Vagarantile

VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "mycentos7" config.ssh.username = "vagrant" config.ssh.password = "vagrant" config.vm.network :private_network, mac: "xxxxxxxxxxxx", ip: "192.168.223.10" config.vm.network :forwarded_port, host: 80, guest: 80 config.vm.network :forwarded_port, host: 443, guest: 443 config.vm.synced_folder "./https", "/home/admin/www.cpsdev.local/https", disabled: true config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.provision :shell, :inline => <<-EOS EOS config.vm.boot_timeout = 600 config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"] vb.customize ["modifyvm", :id, "--cpus", "4"] vb.customize ["modifyvm", :id, "--memory", "2048"] end end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

エラーが起きている C:/HashiCorp/Vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/version_5_0.rb の388行目を下記のように書き換えたところ、gib-bashからの vagrant up でエラーが出なくなりました。
参考ページ①は中国語のページで force_encoding() の引数が gb2312 ですが windows-31j に変えました。

info.force_encoding("windows-31j").split("\n").each do |line|

Vagrantそのもののプログラムコードを書き換えるのは怖いのですが(rubyわからないし)、とりあえずこれで仮想マシンが立ち上がったので解決とします。

参考ページ:
https://vps123.top/vagrant-startup-error-invalid-byte-sequence-utf8-argumenterror-solved.html
https://takesako.hatenablog.com/entry/2022/04/23/225038

投稿2023/02/01 10:31

intron

総合スコア36

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.45%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問