本文操作用于完成CSAPP实验,如果仅为了安装x86版的CentOS,忽略有关实验的操作即可。 如果描述有错漏,欢迎指正。
前言
看了华为鲲鹏云 KBengine arm64编译问题实践报告这篇文章,决定不折腾了,索性直接创建x86版本的CentOS。
安装docker
在Docker官网下载Apple-Chip版本的Docker,手动安装(避个坑,我最初尝试了brew install docker 和brew install docker --cask 两种方法,均不能正常使用)。
下载CSAPP实验代码
在CSAPP官网下载实验对应的代码,本文默认安装在~/download 解压
cd ~/download
mkdir csapp
tar xvf datalab-handout.tar
mv datalab-handout csapp
cd csapp
ls -al
环境搭建
拉取CentOS系统
docker pull centos
创建CentOS(x86)容器
因为Docker默认创建的是arm架构的CentOS,如果没有指定为amd64,将无法执行yum install glibc-devel.i686 ,gcc -m32 等命令,具体可看前言部分
docker run -it --platform linux/amd64 -v "$PWD:/csapp" --name=csapp centos /bin/bash
$PWD 是为了将当前目录挂载以实现同步,从这个角度上来说,除了编译以外的一些操作,如写代码等,均可直接通过本机进行
解决Failed to download metadata for repo ‘AppStream’ [CentOS]错误
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum update -y
安装一些必要的工具和库
yum install sudo
yum install make automake gcc gdb kernel-devel
yum install glibc-devel.i686
yum install vim wget
通过wget获取其他Lab代码
以bomb lab为例
wget http://csapp.cs.cmu.edu/3e/bomb.tar
tar xvf bomb.tar
cd bomb
Ps:因为挂载了目录的原因,可以直接在本机进行下载操作
启动和关闭
利用下面的命令找到NAME 为CSAPP 的CONTAINER ID
docker ps -a
我这里是9a73e13c5742
启动
docker start 9a73e13c5742
docker exec -it 9a73e13c5742 /bin/bash
关闭
exit
参考文章
[1] Run x86 (Intel) and ARM based images on Apple Silicon (M1) Macs? [2] Failed to download metadata for repo ‘AppStream’ [CentOS] [3] CSAPP:Lab1 -DataLab 超详解
|