vagrant FAQ 및 에러 처리 내역
- VirtuaBox 와 vagrant 를 설치하는 운영체제의 로그인 계정이 한글이면 에러가 나므로 반드시 영문 계정을 사용하세요.
- 회사에서 사용하는 보안 프로그램, 백신등이 있을 경우 VirtualBox 가 제대로 동작하지 않을 수 있습니다. 이럴 경우 윈도일 경우 XAMPPP, 맥 일 경우 MAMP 를 사용하여 로컬 개발 환경을 구성해야 합니다.
VirtualBox 5.1 에서 구동 에러
증상
vagran로 구동시 아래 에러 메시지와 함께 구동 실패
$ vagrant up
The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:
Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of
the supported versions listed below to use Vagrant:
4.0, 4.1, 4.2, 4.3, 5.0
A Vagrant update may also be available that adds support for the version
you specified. Please check www.vagrantup.com/downloads.html to download
the latest version.
원인
VirtualBox 5.1 이 설치되었을 경우 Vagrant 에서 인식 불가
처리
E_INVALIDARG - Fail to create host-only adapter
증상
원인
VirtualBox 에 추가된 NDIS6 driver 에 문제가 있음.
처리
- 제어판 -> 네트워크 환경에 가서 VirtualBox Host-only network 설정에 진입
- "NDS6 Bridged Networking Driver" 를 비활성화하고 확인을 눌러서 저장했다가 다시 활성화
Encoding::CompatibilityError
증상
Encoding::CompatibilityError 예외와 함께 인코딩이 잘못되었다는 에러 메시지가 출력되며 vagrant 실행 안 됨.
incompatible character encodings: UTF-8 and CP-949
원인
현재 경로에 한글이 포함되어 있음(윈도에서 한글 로그인명 사용, Homestead 상위 폴더가 한글등)
처리
- 영어로 로그인 계정을 만들고 해당 계정으로 vagrant 구동
- Homestead 폴더를 영어 이름으로 변경
An error occurred while downloading the remote file. HTTP server doesn't seem to support byte ranges. Cannot resume.
여러 가지 이유로 vagrant box add 명령어가 정상적으로 종료되지 않았을 경우 다시 시도하면 다음과 같은 에러가 발생합니다.
이는 예전에 받은 박스 이미지가 남아 있어서 발생하며 사용자 홈 디렉터리의 .vagrant.d\tmp 내 파일을 삭제하고 box add 명령어를 다시 시도하면 됩니다.
A VirtualBox machine with the name 'homestead' already exists.
==> default: Checking if box 'laravel/homestead' is up to date...
A VirtualBox machine with the name 'homestead' already exists.
Please use another name or delete the machine with the existing
name, and try again.
증상
Homestead 폴더에서 vagrant up 실행시 아래와 같은 메시지가 출력되고 homestead 가 실행되지 않음
해결
- vboxmanage list vms 를 실행하여 현재 virtual box 의 id 를 출력
- "homestead" {78bee583-fd6f-4e4f-b58a-1e8c2a769ea7} 와 같은 항목을 찾아서 {와 } 사이의 문자(78bee583-fd6f-4e4f-b58a-1e8c2a769ea7) 를 복사
Linux 라면 다음 명령어 실행
echo '78bee583-fd6f-4e4f-b58a-1e8c2a769ea7' > ~/Homestead/.vagrant/machines/default/virtualbox/id
CODEWindows 는 C:\Users\lesstif\Homestead\.vagrant\machines\default\virtualbox 폴더에 id 라는 파일을 만들고 위에서 복사한 78bee 값을 추가
윈도 사용자는 자신의 계정에 맞게 수정
- 저장하고 Homestead 폴더에서 vagrant up 실행
참고
default: Warning: Authentication failure. Retrying...
vagrant up 하면 아래와 같이 ssh 인증이 실패해서 Code 폴더 마운트등이 제대로 동작하지 않음
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
원인
vagrant 의 공개키가 homestead 에 등록되지 않아서 ssh 로 연결하지 못해서 에러 발생
해결
homestead 부팅
vagrant up
CODEhomestead 에 ssh 로 로그인
ssh vagrant@192.168.10.10
CODEvagrant 공개키 다운로드
curl -O https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
CODEvagrant 의 공개키 추가
cat vagrant.pub >> ~/.ssh/authorized_keys
CODEvagrant 중지후 재기동하여 동작 확인
vagrant halt vagrant up
CODE
The specified host network collides with a non-hostonly network!
vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Clearing any previously set network interfaces...
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.
기본 private network 인 192.168.10.* 대역을 다른 드라이버가 사용중이라 충돌나서 homestead 를 시작하지 못함.
필자의 경우 vmware 도 설치되어 있는데 Vmware 의 NAT 와 같은 대역의 IP 를 사용하여 충돌하여 vmware의 Virtual Network Editor 를 사용하여 NAT 네트워크를 재설정함.