6.824-运行环境配置(Centos)

虚拟机环境

安装 Centos 7

阿里云站点 使用下载镜像创建虚拟机

安装Golang

官网下载,注意下载版本,6.824对于go的版本的要求You should use Go 1.15 or any later version. 此处我选择的是1.17.7

1
2
3
4
5
6
7
8
9
10
11
# 将go压缩包放在/usr/local下并解压
cd /usr/local
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.7.linux-amd64.tar.gz

# 在 /etc/profile 中添加环境变量(对所有用户有效)
# 或在用户主目录下 .bash_profile 中添加环境变量(仅对该用户有效)
vi /etc/profile
export PATH="$PATH:/usr/local/go/bin"

# 查看版本
go version

安装Git

1
2
3
4
5
# 安装Git
yum -y install git

# 查看版本
git --version

Git常见操作

安装Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 配置Docker的yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Dokcer
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置Docker开机自启
systemctl enable docker
# 设置容器开机自启
docker update --restart=always 容器名称

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

打开阿里云镜像加速器,复制镜像加速地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建目录
mkdir -p /etc/docker

# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

Ubuntu下可安装goland

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Goland 版本为 2021.1.3
sudo tar -zxvf goland-2021.1.3.tar.gz -C /usr/local
sudo mv /usr/local/GoLand-2021.1.3/ /usr/local/GoLand

# 配置为全局启动
# 将启动脚本goland.sh加入用户的 /usr/bin/ 目录下,可以在任意位置执行goland.sh启动 GoLand IDE
cd /usr/local/GoLand/bin/
sudo ln -s $(pwd)/goland.sh /usr/bin/goland.sh

# 配置启动命令别名并独立运行
# 通过重命名alias的方式简化启动命令,并独立运行(这样IDE不随terminal关闭而退出)
vim /etc/bash.bashrc
# 在末尾添加如下语句
alias goland='nohup goland.sh & >/dev/null'

本地环境

官网下载并安装Goland或VSCode,使用ssh远程开发,连接至虚拟机即可

Getting started

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 克隆源码
git clone git://g.csail.mit.edu/6.824-golabs-2020 6.824

# 安装 make 工具(默认安装在 /usr/bin/make)
yum -y install make
# 安装gcc
yum -y install gcc

# 编译运行
go build -buildmode=plugin ../mrapps/wc.go
go run mrsequential.go wc.so pg*.txt

# 查看结果后删除
more mr-out-0
rm mr-out*

环境配置成功!