Mac 系统快速迁移记录(M1 Max)
Posted 幻灰龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac 系统快速迁移记录(M1 Max)相关的知识,希望对你有一定的参考价值。
开箱大图(有图有真相)
系统迁移(大约4个小时,取决于传输数据大小)
定义:
- A=新Mac电脑
- B=旧Mac电脑
迁移(https://support.apple.com/zh-cn/HT204350):
- A,B系统本身都升级到最新,保持一致,升级后重启
- B电脑打开【实用工具】->【迁移助理】,启动后选项选择【至另一台Mac】,点击【继续】
- A电脑打开【实用工具】->【迁移助理】,启动后选项选择【从Mac、时间机器备份或启动磁盘】,点击【继续】
- B、A电脑会显示安全码,确认都一致后,在B、A上都点击【继续】
- A电脑上显示【选择要传输到信息】,一定要等待列表计算每个条目大小计算结束
- A电脑要传输的信息大小计算完毕后,点击【继续】
- 大约等待几个小时后迁移完成
网络配置(15分钟,取决于你的代理配置麻烦程度)
- 配置可用的网络代理
- 没有配置代理安装开发环境会寸步难行,可以说这是浪费程序员时间的杀手
快捷键配置(2分钟)
- 快捷键配置里把【聚集搜索】关掉,否则
Command
+Space
会默认弹出搜索框 - 配置输入法切换的快捷键为
Command
+Space
- 关于Siri功能,电脑上用什么Siri
安装终端(10分钟)
Mac自带的终端功能弱了一些,安装 item2: https://iterm2.com/downloads.html
安装 brew(30-60分钟,取决于网络)
- 安装 brew: https://brew.sh/
- 但是网络问题大概率会导致安装失败,使用清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/
安装 fish shell(5分钟)
带有命令记忆和自动完成功能的 shell 可以节省大量的时间。因此
- 安装 fish shell:https://fishshell.com/
- 但是使用 brew 就可以安装:
brew install fish
安装 nodejs(5分钟)
- NodeJs 安装最新的长期支持版本即可:https://nodejs.org/en/
- 使用 npm 安装下 node 版本管理器:
npm install -g nvm
安装 rust(5分钟)
本机有多个 Rust 源码,还是需要编译
- 安装rustup:
brew install rustup-init
- 初始化 rustup:
rustup-init -y
- 验证版本:
rustc --version
安装 python 包管理软件(miniforge),(1-5小时,取决于什么时候果断放弃不可行通路)
- 原来使用 pyenv 管理 python 版本,但是发现 Mac M1 上 pyenv 的支持很差,经过一番折腾放弃。
- 改用 conda,但是使用的是对 Mac M1 支持的 miniforge: https://github.com/conda-forge/miniforge
- 验证 conda:
conda --version
安装 python 3.8(3分钟)
- 原来项目配置使用的是3.8版本的 python,最好还是安装这个版本。
- 使用 conda 创建一个环境:
conda create -n python38 python=3.8
- 在 fish shell 下初始化 conda:
conda init fish
- 在 fish shell 下使用 conda 激活 python3.8:
conda activate python38
- 验证 python 版本:
python -V
- 验证 pip 版本:
pip -V
安装 tensorflow(10分钟)
- tensorflow 是必须安装的,这也是使用 miniforge 的原因
- 安装
conda install -c apple tensorflow-deps
- 安装
python -m pip install tensorflow-macos
- 安装
python -m pip install tensorflow-metal
- 验证版本:
pip list|grep tensorflow
安装 paddle 失败(10分钟,取决于是否果断放弃不可行通路)
- 项目依赖 paddle
- 尝试安装失败, paddle还没有支持M1
配置Rosetta 2 环境(15分钟)
- 解决办法是临时使用 Rosetta 2 转译机制配置一个 conda 的环境
- 根据 make it run / make it correct / make it fast 的原则,优先配置一个可运行的环境是更好的,原生支持M1的可以慢慢折腾。
- 使用 conda 配置
- 创建一个可以安装intel包的环境:
CONDA_SUBDIR=osx-64 conda create -n python38r python=3.8
- 激活:
conda activate python38r
- 配置:
conda env config vars set CONDA_SUBDIR=osx-64
- 重启:
conda deactivate
,conda activate python38r
- 测试安装:
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
- 创建一个可以安装intel包的环境:
- 在这个基础上,对原 python 项目直接安装包依赖:
pip install -r requirements.txt
小结(30分钟,取决于记录的快慢)
- 尽量使用成熟的工具解决问题:
- 使用 Mac 的迁移助理
- 使用 brew
- 使用 fish shell
- 使用 conda
- 解决网络问题(Connection Timeout Hell)
- 配置必要的国内镜像
- 源代码可以使用 gitcode.net 上的镜像仓库
- 开发者必要的代理,我们的程序员在这层上平均浪费的时间不计其数,无力吐槽。
- 优先配置一个稳定的环境
- 原生支持 M1 的开发环境还不成熟
- 先保证开发环境流程的稳定
我的第一台 Mac 的历史超过10年了,中间被水洒过,苹果店直接认为没有办法,拿到普通小店拆开搞搞又好了,续命作为办公机用到了现在。第二台Mac有5年+的使用时间了,中间电池鼓包过,键盘崩出,也是在普通小店直接拆了换了电池和键盘,键盘已经被我再次用的随时崩出再塞回去继续码代码的节奏。对于程序员来说,即使在今天很多资源都云化的时代,一个省心的「终端」机器是重要的生产力,本次换机器,以我的习惯估计是再用个5-10年的节奏,希望它能在我手里产出更多的高质量的代码、数据、文字、以及理念。
以上是关于Mac 系统快速迁移记录(M1 Max)的主要内容,如果未能解决你的问题,请参考以下文章
迁移到 M1 Mac 后在 iOS 上运行 Flutter App 时出错
Mac M1 -- 在 iPhone 12 Pro Max 上启动应用程序时出错。(Flutter.h 和 AMSupportURLConnectionDelegate、AMSupportURLSes