vagrant 新增帶版本號的 box

2021-09-13 07:42:01 字數 3314 閱讀 2703

眾所周知,vagrant新增box需要訪問國外的伺服器,然而國外的伺服器總是那麼的慢慢慢.....但是那個速度真的是不想吐槽。所以就有了本地新增box的需求,所以就有了以下的內容。

為什麼一定要強調版本號呢?如果使用過homestead的朋友們,那麼你就會知道其中的酸爽。

以下內容完全從零開始的,如果只是特定問題,可直接跳過會的內容,從問題出看起。
初始化乙個虛擬機器

$ vagrant init centos/7
在執行上面的目錄處會多以下檔案:

vagrantfile就是vagrant的配置檔案,我們也可以直接配置該檔案對虛擬機器進行初始化。

$ vagrant up
以上命令用於啟動虛擬機器,如果你的pc上沒有安裝過centos/7(可以通過vagrant box list命令檢視是否安裝過),就會從centos/7,如果有centos/7就會從本機獲取。
執行完上面的命令後,會出現以下內容:

bringing machine 'default' up with 'virtualbox' provider...

==> default: box 'centos/7' could not be found. attempting to find and install...

default: box provider: virtualbox

default: box version: >= 0

==> default: loading metadata for box 'centos/7'

default: url:

==> default: adding box 'centos/7' (v1809.01) for provider: virtualbox

default: downloading:

default: download redirected to host: cloud.centos.org

default:

注意著的版本號為:v1809.01,下面我們會用到。

作者這裡使用的是:
vagrant的命令中,我們可以知道vagrant box add [options]這個乙個命令。我們

vagrant box add centos/7 ./virtualbox.box
然後我們使用以下命令檢視:

$ vagrant box list

centos/7 (virtualbox, 0)

我們可以看到centos/7已經新增到了本地,那麼這個有什麼問題呢?

問題

注意到(virtualbox, 0),這個0就是指的版本號,這跟它真是的版本號不符。

那麼我們該怎麼做才能新增正確的版本號呢?有兩種方案:

作者使用的是win10作業系統,對使用mac os的朋友們的情況不是很清楚。
開啟資源管理器(俗稱我的電腦),在你的c盤下的使用者名稱下有乙個.vagrant.d/boxes目錄,新增的box會載入到這來,結果如下:

這裡的centos-vagrantslash-7就是我們剛才新增的box,開啟目錄:

這裡的0就是版本號,我將它修改為:1809.01(上面有記載),然後使用命令檢視:

$ vagrant box list

centos/7 (virtualbox, 1809.01)

注意到上面的版本號,就由原來的0變成了現在的1809.01

如果執行過常規方案的,使用以下方式清除box

$ vagrant box remove centos/7
]}]}

metadata.json準備完成後,執行以下命令新增:

$ vagrant box add metadata.json
輸出以下結果:

==> box: loading metadata for box 'metadata.json'

box: url: file://d:/vagrant/box/metadata.json

==> box: adding box 'centos/7' (v1809.01) for provider: virtualbox

box: downloading: ./centos7.box

box:

==> box: successfully added box 'centos/7' (v1809.01) for 'virtualbox'!

檢視新增的box列表:

$ vagrant box list

centos/7 (virtualbox, 1809.01)

就此,整篇文件就到此結束了,我們總結下要領:

vagrant 本地新增box 支援帶版本號

一般處理方案 vagrant box add boxname downloadboxname.boxboxname 新增之後的box 名稱正常這樣基本上就可以將box新增上去了。不過,這樣新增的box版本號是0,大部分場景版本號影響也不大。但我在使用lar el homestead的時候,這邊會有版...

seajs版本號新增

with 24 comments 用 seajs 組織專案,上線後,經常需要更新特定檔案或所有檔案的時間戳,以清空瀏覽器快取。最簡單的方式是 define function require,exports 這種方式很簡單直觀,弊端也很明顯 檔案一多,時間戳會分散在各個檔案,維護起來不方便。第二種方式...

golang程式新增版本號

這段時間專案經常發布版本,導致我們版本管理混亂。特別是在真實環境上面,沒有了版本控制軟體協助版本管理,我們無法確認程式到底是新版本還是舊版本。這給我們排查問題帶來了很大困擾。於是,我就想給程式本身打上版本號,通過程式就可以看到程式是新版本還是舊版本了。檢視資料發現golang不能像c 那樣通過巨集定...