当前位置 博文首页 > 周小伦:CMU数据库(15-445)Lab0-环境搭建

    周小伦:CMU数据库(15-445)Lab0-环境搭建

    作者:周小伦 时间:2021-01-30 18:31

    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

    bk