CMU數據庫(15-445)Lab0-環境搭建


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在下一次運行的時候需要先啟動我們的容器。**

  1. 先找到我們命名為bustub_env容器的容器iddocker ps -a
  2. 然后docker start 容器ID 啟動我們的容器
  3. 輸入以下命令進入到這個運行中的容器

docker exec -it 容器id /bin/bash


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM