歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Vagrant改變boxes存放路徑

Vagrant改變boxes存放路徑

日期:2017/2/27 15:56:19   编辑:Linux教程
box存放在哪裡?
談到Vagrang的一些基本內容,不過如果磁盤規劃不好,而使用的boxes越來越多,悲劇的發現磁盤沒空間了。那麼Vagrant的boxes存放在哪裡的呢?

翻看文檔,發現boxes默認是放在~/.vagrant.d/boxes下面的,如果根目錄空間不大,很快沒空間了。怎麼辦?
修改box存放路徑

趕緊SO和Google,還真發現兩篇文章(一,二)講這玩意,就簡要說一下步驟好了

copy ~/.vagrant.d/下面的目錄到新目錄
cp ~/.vagrant.d/   /path/to/vagrant_home/

設置環境變量
$ grep 'VAGR' ~/.bashrc
export VAGRANT_HOME='/path/to/vagrant_home'

就這樣,重新登錄shell後,boxes的存放目錄就在 /path/to/vagrant_home/boxes 下面了
僅僅如此?

這個也太簡單了吧,也太神秘了吧,但是為什麼呢? Vagrant是開源的,窺窺源代碼去

當我們運行"vagrant box list"的時候,該命令可以列出所有boxes的名字。既然boxes存放地址已經知道了,查看存放路徑可以發現,"vagrant box list"僅僅把該路徑的文件夾的名字顯示出來。可以試試在目錄新建一個空文件夾,然後運行"vagrant box list"看看

既然這樣,我們搜一下源代碼看看
$ find . -name *.rb |xargs grep "\.vagrant\.d"
./embedded/gems/gems/vagrant-1.0.5/lib/vagrant/environment.rb:    DEFAULT_HOME = "~/.vagrant.d"
    ....

哈,第一條就是,趕緊看看啥玩意
def setup_home_path
      @home_path = Pathname.new(File.expand_path(@home_path ||
                                             ENV["VAGRANT_HOME"] ||
                                             DEFAULT_HOME))

在代碼裡發現變量DEFAULT_HOME只在一個地方用到,雖然ruby語法不懂,但是看這代碼還是很好理解的。這也是為什麼我們設置了環境變量VAGRANT_HOME後,"vagrant box list"命令首先查找VAGRANT_HOME的路徑,如果沒有找到才查找DEFAULT_HOME的路徑。

終於真相大白了,其實也不是很神秘的
Copyright © Linux教程網 All Rights Reserved