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

CMU数据库(15-445)Lab0-环境搭建的更多相关文章

  1. Unix/Linux环境C编程入门教程(15) BT5开发环境搭建

    1. Backtrack 是处于世界领先地位的渗透测试和信息安全审计发行版本.有着上百种预先安装好的工具软件,并确定能完美运行,Backtrack5 提供了一个强大的渗透测试平台--从Web hack ...

  2. VS2017离线安装与Oracle数据库开发环境搭建

    记得之前使用VS2015打开老的MVC4项目,不能右键创建控制器和添加视图,让我非常不习惯!找遍了网络无果,最后只能回到VS2013,但我就是不喜欢用旧的VS,这是不是病... 1.将VS2017离线 ...

  3. 有关WAMPSERVER 环境搭建 如何修改端口,MySQL数据库的修改

    环境搭建 http://share.weiyun.com/88896747fedd4e8b19afebea18f7684c 一.修改Apache的监听端口 1.在界面中选Apache,弹出隐藏菜单选项 ...

  4. 数据库--PHP环境搭建

    一: 1.PHP的架构 LAMP :Linux  阿帕奇  MySQL  PHP WAMP:Linux 阿帕奇  Mysql  PHP (集成的环境搭建软件),一键搭建PHP开发环境工具 2.修改数据 ...

  5. postgresql数据库异步流复制hot standby环境搭建

    生命不息,test不止. 最近组里面修改了几个postgresql的bug,要进行回归测试,除了前面提到的WAL的RT测试和Mirroring Controller的RT测试,还要测试下postgre ...

  6. 026 SSM综合练习02--数据后台管理系统--数据库表创建及SSM环境搭建

    1.数据库准备 本项目我们Oracle数据库,Oracle 为每个项目创建单独user,oracle数据表存放在表空间下,每个用户有独立表空间. (1)采用数据库管理员账号:SYSTEM,再配合数据库 ...

  7. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  8. Hibernate 系列 02 - Hibernate介绍及其环境搭建

    引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归 ...

  9. 最新版ssh hibernate spring struts2环境搭建

    最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...

随机推荐

  1. Spring Boot 日志各种使用姿势,是时候捋清楚了!

    @ 目录 1. Java 日志概览 1.1 总体概览 1.2 日志级别 1.3 综合对比 1.4 最佳实践 2. Spring Boot 日志实现 2.1 Spring Boot 日志配置 2.2 L ...

  2. vue 属性绑定 v-bind

    属性绑定 v-bind 可以通过v-bind将属性值与数据绑定,这样就可以统一化管理 通过这样我们就可以直接访问跳转到百度页面 同样的这个值我们也可以通过事件进行改变 这样就可以方便我们做一些其它的操 ...

  3. CVE-2019-0708_RDP漏洞利用

    可以说是2019年影响比较大的一个漏洞了, 简述下这个漏洞: Windows系列服务器于2019年5月15号,被爆出高危漏洞,该漏洞影响范围较广如: windows2003.windows2008.w ...

  4. kali linux没有ip解决办法

    故障情况 今天打开kali202001复测环境,发现自启动ssh竟然连不上. 上到kali主机使用命令:ifconfig 查看发现没有ethh0网卡显示,看来是kal获取不到ip地址导致的 继续查看发 ...

  5. MySQL高可用(二)主备延时如何解决?

    从上篇文章我们知道主备同步是依赖于 binlog,主库负责生产 binlog,备库负责消费 binlog,从而实现主备同步. 今天我们来学习一下主备同步里的一个重点的问题:主备延时. 主备延时,简单来 ...

  6. "Date has wrong format. Use one of these formats instead: %, Y, -, %, m, -, %, d." DateField使用input_formats参数

    错误写法 : publish_date = serializers.DateField(format="%Y-%m-%d", input_formats="%Y-%m-% ...

  7. HCIP --- MPLS BGP 实验

    实验要求: 实验拓扑: 一.配置IP地址 二.给AS 2配置OSPF 1.R2-R7配置相同: 查看路由表: 可以看到,业务网段学的是32位的 修改:在R2-R7上都修改 [R2]int loo1[R ...

  8. C# 多态virtual标记重写 以及EF6 查询性能AsNoTracking

    首先你如果不用baivirtual重写的话,系统默认会为du你加new关键字,他zhi的作用是覆盖,而virtual的关键作用在dao于实现多态 virtual 代表在继承了这个类的子类里面可以使用o ...

  9. Android OpenGL ES 开发:绘制图形

    OpenGL 绘制图形步骤 上一篇介绍了 OpenGL 的相关概念,今天来实际操作,使用 OpenGL 绘制出图形,对其过程有一个初步的了解. OpenGL 绘制图形主要概括成以下几个步骤: 创建程序 ...

  10. java中token的生成和验证

    package com.zjn.token; /** * token编码工具类 * @author ouyangjun */ public class TokenEncryptUtils { // 编 ...