Fixing "The box 'base' could not be found." (Vagrant)
Contents
Vagrant 在啟動虛擬機前,必須先知道要用哪個 box。如果設定裡寫的是 base,但本機根本沒有這個 box,啟動時就會直接報出 The box 'base' could not be found.。這類問題本質上不難,但很適合順手整理一下基本觀念。
先理解 box 是什麼
box 可以把它想成 Vagrant 用來建立虛擬機的基底映像。Vagrantfile 內通常會有類似:
|
|
這代表 Vagrant 會去找一個名字叫 base 的 box。如果你根本沒加進來,自然就起不來。
最常見的原因
- box 根本還沒安裝。
- Vagrantfile 裡寫的名稱和實際安裝名稱不同。
- 之前的環境或快取狀態有殘留,導致你以為它存在。
怎麼確認
先列出目前已安裝的 box:
|
|
這一步很重要,因為它能直接告訴你現在系統裡到底有什麼,而不是靠猜。
怎麼修
如果真的沒有,就先加進來:
|
|
如果你其實已經裝了 box,但名稱不是 base,那就改 Vagrantfile:
|
|
重點是 Vagrantfile 裡的名稱,要和 vagrant box list 看到的一致。
還有一種情況
如果你改來改去還是怪怪的,有時候刪掉專案目錄下的 .vagrant 快取,再重新 vagrant up 也會比較乾淨,因為舊狀態可能還留在裡面。
小結
The box 'base' could not be found. 這個錯誤通常不是什麼深層 bug,而是 box 名稱或安裝狀態不一致。先用 vagrant box list 釐清現況,再決定是補裝 box 還是修正 Vagrantfile,通常很快就能解決。