Mac 系统快速迁移记录(M1 Max)

Posted 幻灰龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac 系统快速迁移记录(M1 Max)相关的知识,希望对你有一定的参考价值。

开箱大图(有图有真相)








系统迁移(大约4个小时,取决于传输数据大小)

定义:

  • A=新Mac电脑
  • B=旧Mac电脑

迁移(https://support.apple.com/zh-cn/HT204350):

  1. A,B系统本身都升级到最新,保持一致,升级后重启
  2. B电脑打开【实用工具】->【迁移助理】,启动后选项选择【至另一台Mac】,点击【继续】
  3. A电脑打开【实用工具】->【迁移助理】,启动后选项选择【从Mac、时间机器备份或启动磁盘】,点击【继续】
  4. B、A电脑会显示安全码,确认都一致后,在B、A上都点击【继续】
  5. A电脑上显示【选择要传输到信息】,一定要等待列表计算每个条目大小计算结束
  6. A电脑要传输的信息大小计算完毕后,点击【继续】
  7. 大约等待几个小时后迁移完成

网络配置(15分钟,取决于你的代理配置麻烦程度)

  1. 配置可用的网络代理
  2. 没有配置代理安装开发环境会寸步难行,可以说这是浪费程序员时间的杀手

快捷键配置(2分钟)

  1. 快捷键配置里把【聚集搜索】关掉,否则Command+Space会默认弹出搜索框
  2. 配置输入法切换的快捷键为Command+Space
  3. 关于Siri功能,电脑上用什么Siri

安装终端(10分钟)

Mac自带的终端功能弱了一些,安装 item2: https://iterm2.com/downloads.html

安装 brew(30-60分钟,取决于网络)

  1. 安装 brew: https://brew.sh/
  2. 但是网络问题大概率会导致安装失败,使用清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

安装 fish shell(5分钟)

带有命令记忆和自动完成功能的 shell 可以节省大量的时间。因此

  1. 安装 fish shell:https://fishshell.com/
  2. 但是使用 brew 就可以安装: brew install fish

安装 nodejs(5分钟)

  1. NodeJs 安装最新的长期支持版本即可:https://nodejs.org/en/
  2. 使用 npm 安装下 node 版本管理器:npm install -g nvm

安装 rust(5分钟)

本机有多个 Rust 源码,还是需要编译

  1. 安装rustup: brew install rustup-init
  2. 初始化 rustup: rustup-init -y
  3. 验证版本: rustc --version

安装 python 包管理软件(miniforge),(1-5小时,取决于什么时候果断放弃不可行通路)

  1. 原来使用 pyenv 管理 python 版本,但是发现 Mac M1 上 pyenv 的支持很差,经过一番折腾放弃。
  2. 改用 conda,但是使用的是对 Mac M1 支持的 miniforge: https://github.com/conda-forge/miniforge
  3. 验证 conda: conda --version

安装 python 3.8(3分钟)

  1. 原来项目配置使用的是3.8版本的 python,最好还是安装这个版本。
  2. 使用 conda 创建一个环境:conda create -n python38 python=3.8
  3. 在 fish shell 下初始化 conda:conda init fish
  4. 在 fish shell 下使用 conda 激活 python3.8: conda activate python38
  5. 验证 python 版本:python -V
  6. 验证 pip 版本:pip -V

安装 tensorflow(10分钟)

  1. tensorflow 是必须安装的,这也是使用 miniforge 的原因
  2. 安装 conda install -c apple tensorflow-deps
  3. 安装 python -m pip install tensorflow-macos
  4. 安装 python -m pip install tensorflow-metal
  5. 验证版本:pip list|grep tensorflow

安装 paddle 失败(10分钟,取决于是否果断放弃不可行通路)

  1. 项目依赖 paddle
  2. 尝试安装失败, paddle还没有支持M1

配置Rosetta 2 环境(15分钟)

  1. 解决办法是临时使用 Rosetta 2 转译机制配置一个 conda 的环境
  2. 根据 make it run / make it correct / make it fast 的原则,优先配置一个可运行的环境是更好的,原生支持M1的可以慢慢折腾。
  3. 使用 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
  4. 在这个基础上,对原 python 项目直接安装包依赖:pip install -r requirements.txt

小结(30分钟,取决于记录的快慢)

  1. 尽量使用成熟的工具解决问题:
    • 使用 Mac 的迁移助理
    • 使用 brew
    • 使用 fish shell
    • 使用 conda
  2. 解决网络问题(Connection Timeout Hell)
    • 配置必要的国内镜像
    • 源代码可以使用 gitcode.net 上的镜像仓库
    • 开发者必要的代理,我们的程序员在这层上平均浪费的时间不计其数,无力吐槽。
  3. 优先配置一个稳定的环境
    • 原生支持 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

快速查看 Mac 应用程序是不是与 M1兼容的方法

iOS小知识:如何使用教育商店购买Apple M1 Max

iOS小知识:如何使用教育商店购买Apple M1 Max

Mac Silicon M1 编译安装 PHP8 & Swoole4.6 ARM64 全过程记录