0.寫在前面
從這篇文章開始。開一個新坑,記錄以下自己做cmu資料庫實驗的過程,同時會分析一下除了要求我們實作的代碼之外的實驗自帶的一些代碼。争取能夠對實作一個資料庫比較了解。也希望能寫進履歷。讓自己履歷豐富一些。2020年課程的網址如下
https://15445.courses.cs.cmu.edu/fall2020/index.html
在這裡可以找到課上的視訊和
ppt
以及一些
notes
實驗一的說明位址如下 https://15445.courses.cs.cmu.edu/fall2020/project1/
實驗一的github位址如下 https://github.com/cmu-db/bustub
1.環境搭建
這裡我們使用docker搭建環境是以請大家先下載下傳docker(docker所有系統都可以下,而且操作基本類似)
1.1 docker下載下傳
在mac-os下我們可以利用homebrew很容易的安裝docker。
brew install docker
當然去官網下載下傳也很容易
https://www.docker.com/
進入官網之後按照如下步驟操作
然後點選docker的圖示就可以運作了
你的電腦右上角會出現這個小标志
輸入
docker --version
如果成功的話就表示安裝成功了
(base) > docker --version
Docker version 19.03.13, build 4484c46d9d
2. 配置docker鏡像
按照上面的點選順序來配置鏡像
把之前文本框裡的内容用下面的替換
{
"experimental": false,
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
],
"features": {
"buildkit": true
}
}
輸入docker info 如果能找到類似下面的内容則表示安裝成功
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
Product License: Community Engine
1.2 正式實驗環境的搭建
先在
github
中把整個實驗clone到本地。這裡方法随意可以用git也可以直接下載下傳。
進入整個實驗在本地的位址。
這裡需要在終端進入這個位址
cd /Users/zhouxiaolun/offer/cmu-db/bustub
然後執行下面的兩條指令
$ docker build . -t bustub
$ docker create -t -i --name bustub -v $(pwd):/bustub bustub bash
随後執行這一條指令
docker start -a -i bustub
這個時候就可以進入我們的容器裡。這個容器就是我們的實驗環境啦。
随後就可以配置檔案環境了。
在bustub檔案中執行這一條指令
build_support/packages.sh
mkdir build
cd build
cmake ..
make
1.3 配置本地目錄挂載
最後一步我們需要配置以下docker和本地目錄的挂載來實作在本地修改在docker中自動同步
執行下面的指令
docker container run -it -v /Users/xxxx/yourFilePath:/bustub --name=bustub_env bustub /bin/bash
/Users/xxxx/yourFilePath 請替換成你自己想要進行同步的目錄 :/bustub 也請替換成你自己想要命名的目錄
這裡的bustub目錄就是和你本地目錄同步的目錄
同步完成之後可以發現在docker下的bustub目錄和我們的yourFilePath檔案實作了同步
完成上面的操作之後我們的配置就算完成了。
接下來我們可以在本機的編譯器編寫我們的代碼。然後在docer中的虛拟容器上編譯和運作我們的代碼。✅
** 注意每次關閉docker在下一次運作的時候需要先啟動我們的容器。**
- 先找到我們命名為bustub_env容器的容器id
docker ps -a
- 然後docker start 容器ID 啟動我們的容器
- 輸入以下指令進入到這個運作中的容器
docker exec -it 容器id /bin/bash