IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Mac M1配置Docker CentOS(x86)的CSAPP实验环境 -> 正文阅读

[系统运维]Mac M1配置Docker CentOS(x86)的CSAPP实验环境

本文操作用于完成CSAPP实验,如果仅为了安装x86版的CentOS,忽略有关实验的操作即可。
如果描述有错漏,欢迎指正。

前言

看了华为鲲鹏云 KBengine arm64编译问题实践报告这篇文章,决定不折腾了,索性直接创建x86版本的CentOS。
在这里插入图片描述

安装docker

Docker官网下载Apple-Chip版本的Docker,手动安装(避个坑,我最初尝试了brew install dockerbrew 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.i686gcc -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:因为挂载了目录的原因,可以直接在本机进行下载操作

启动和关闭

利用下面的命令找到NAMECSAPPCONTAINER 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 超详解

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:19:35  更:2022-04-22 19:23:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:30:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码