Macへ引っ越し!vagrantのbox追加でハマったときの解決方法

MacBookProを購入してから開発環境のお引っ越しをしました。

その際、vagrantのbox追加でハマりました。

なんとか解決できたのでまとめておきます。

 

今回のお引越しのケースと作業フロー

今回のお引越しのケースは以下になります。

  • Windowsにて、VagrantとVirtualBoxで構築した開発環境をMacへお引っ越し

 

引越し作業は次のように進めました。

  1. WindowsPCにて、開発環境のクローン(.box)を作成
  2. 開発環境のクローン(.box)とVagrantfileをMacへコピー
  3. Vagrant add boxか〜ら〜の〜vagrant up
  4. PHPとかWordPressの動作確認

 

WindowsPCにて開発環境のクローン(.box)を作成する

コマンドプロンプトで「vagrant package」と打ちます。

クローン(.box)がカレントディレクトに生成されます。

cd /myvm/mycentos ←vagrantfileが置かれているディレクトリへ移動します。
vagrant package ←このコマンドでクローンを作成します。

 

開発環境のクローン(.box)とVagrantfileをMacへコピー

作成されたクローン(package.box)とVagrantfileが置かれているフォルダをコピーしてMacの適当な階層下に移します。

私はホームユーザーフォルダ直下に置きました。

ホームユーザーフォルダはターミナルを起動した時、最初に設定されているディレクトリなので、カレントディレクトリの移動が楽なんです。

Vagrantfile置き場所

 

vagrant box add か〜ら〜の〜 vagrant up

ターミナルを起動して次の手順で処理します。

  1. Vagrantfileの配置場所へカレントディレクトリを移動。
  2. vagrant box addでクローンのboxを追加。
  3. vagrant upで起動。

 

ボックス追加のコマンドは次のように打ちます。

vagrant box add [仮想マシンの名前] [/クローンのボックスが置いてあるパス/クローンのboxの名前]

クローンのボックスをあらかじめVagrantfileと同じ場所に置いておけば、下記コマンドを打って。

$vagrant box add mycentos package.box

 

あとは次のコマンドを打つだけで起動します。

$vagrant up

 

Vagrantfileを使わない場合は3番をやる前に初期化します。

vagrant init [仮想マシンの名前]

$vagrant init mycentos

 

よく分からんエラーでハマったという話と解決方法

前述の方法で私のMacは問題ありませんでしたが、友人のMacでは下記エラーが発生しました。
==> box: Box file was not detected as metadata. Adding it directly…
==> box: Adding box ‘mycentos’ (v0) for provider:
box: Unpacking necessary files from: file:///Users/○○○/MyVM/MyCentOS/package.box
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
この問題の解決にあたってはいろんなことを試しましたが、最終的には下記フォルダ場所の「curl」というファイルを一旦除去することで、無事修復できました。
/opt/vagrant/embedded/bin/curl
除去するには、下記コマンドをターミナルで打ってあげます。

$rm /opt/vagrant/embedded/bin/curl

 

場合によっては.vagrantフォルダの除去も必要です。.vagrantはVagrantfileと同じ場所にあります。

rm -rf .vagrant

 

まとめ

引っ越しは面倒でしたが、無事に完了してよかったよかった。

コメントを残す

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

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください