centos/7+Vagrant+VirtualBoxでローカル環境中にrsyncでエラーが出て詰まったので解決法です。
なんとも毎回なんだかのエラーに捕まっている気がします。
エラー内容
There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.
Host path: /Users/×××/Vagrant/○○○/
Guest path: /vagrant
Command: "rsync" "--verbose" "--archive" "--delete" "-z" "--copy-links" "--no-owner" "--no-group" "--rsync-path" "sudo rsync" "-e" "ssh -p 2222 -o LogLevel=FATAL -o ControlMaster=auto -o ControlPath=/var/folders/_n/z03bkj3d2z38c0q2hkg57cz00000gq/T/vagrant-rsync-20200731-2137-vy2548 -o ControlPersist=10m -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i '/Users/×××/Vagrant/○○○/.vagrant/machines/default/virtualbox/private_key'" "--exclude" ".vagrant/" "/Users/×/Vagrant/○○○/" "vagrant@127.0.0.1:/vagrant"
Error: symlink has no referent: "/Users/○○○/Vagrant/○○○/frontend-dev-env/node_modules/node-pre-gyp/node_modules/.bin/detect-libc"
symlink has no referent: "/Users/○○○/Vagrant/○○○/frontend-dev-env/node_modules/node-pre-gyp/node_modules/.bin/rc"
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1209) [sender=3.1.3]
Google翻訳さんに翻訳をお願いすると
同期フォルダーをrsyncしようとしたときにエラーが発生してるよ。
詳細については、以下のエラーメッセージを確認してください。
だってよ…rsyncがうまくいってないのはわかったけどさっぱりわからん!
用意されたboxとローカルとのvagrantのversionの違いかな?
解決方法
vagrant-vbguest
プラグインをインストールする
コピー
vagrant plugin install vagrant-vbguest
vagrant-vbguest
プラグインをいれてみましょう。
これは自分の環境にある VirtualBox のバージョンと Boxや にインストールされている Guest Addition のバージョンが違う場合に、VirtualBox のバージョンに合わせて自動で最新化してくれます!
ありがたい。
OK!無事にインストールできました。
再びvagrant up
してみましょう。
コピー
vagrant up
==> default: Checking if box ‘centos/7’ version ‘2004.01’ is up to date…
==> default: Machine already provisioned. Run `vagrant provision` or use the `–provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
無事に起動出来ました〜!良かった。
その他の解決法
上の方法で解決しなかった方、諦めてはいけません。
Vagrantfileにsynce先を指定する
コピー
config.vm.synced_folder "./", "/vagrant", type: "virtualbox"
config.vm.synced_folder "./vmshare", "/vmshare", create: true, type:"virtualbox"
同期できないって言ってるので同期先を指定しちゃいましょう。
追加する場所はVagrantfile内のこの辺りでOKです。
vagrant自体の設定をいじってみよう
Vagrantにバグがあるらしいので
をテキストエディタで開いて以下の部分を削除しちゃいましょう。
コピー
"-o ControlMaster=auto " +
"-o ControlPath=#{controlpath} " +
"-o ControlPersist=10m " +
まとめ
3つの解決法を紹介しました!
プロジェクトの初回でコケると作業が進まないのでどれかで治って動くといいなぁ…