惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
Jina AI
Jina AI
C
Check Point Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
Last Week in AI
Last Week in AI
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
博客园 - 聂微东
月光博客
月光博客
博客园 - 司徒正美
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog

HelloDog

字节跳动和TikTok内推 nftables代替iptables的新一代防火墙配置指南 新加坡女佣申请中国签证 新加坡信用卡cashback和miles的使用心得 关于AI的基础知识和第三方AI应用 新加坡政府小学报名和学区房义工的选择分析 新加坡幼儿园和托儿所的报名准备经验分享 新加坡政府学校和国际学校的上学路径分析 新加坡聘请女佣的流程和注意事项 AdGuard过滤规则分享 新加坡宽带套餐选择推荐和路由器配置经验分享 使用GitHub和Hexo搭建免费静态Blog macOS使用iterm2启用rz与sz功能 Git常用命令和Git团队使用规范指南 新加坡保险和理财规划 新加坡生娃和养娃的重要时间线记录 新加坡申请LTVP的流程介绍 MySQL使用mysqldump导出和导入数据常用命令 新加坡生小孩的医院和流程费用介绍
MacBook从mac intel升级到apple silicon
wsgzao · 2024-10-03 · via HelloDog

前言

本文主机记录从MacBook 从 mac intel 升级到 apple silicon M1 M2 M3 芯片的通用经验

更新历史

2024年10月03日 - 初稿

阅读原文 - https://wsgzao.github.io/post/macbook-from-mac-intel-to-apple-silicon/

时间线备注

系统升级建议

拿到MacBook Pro M3的时候OS版本为Sonoma 14.6.1 (23G93),此时系统升级有2个选择

  1. 升级小版本至macOS Sonoma 14.7
  2. 升级大版本至macOS Sequoia 15.0

个人建议是这样

  1. 如果是生产力工具,小版本升级问题不大,刚发布的大版本一般等迭代N个小版本猴观察稳定性口碑再升级,避免成为小白鼠影响日常办公体验,通常没有遇到重大安全漏洞公司很少强制要求立即升级
  2. 自用电脑随意吧

数据备份迁移

尽管苹果 Mac 自带迁移助理,但升级跨度较大且很多App也无法直接从Intel平滑迁移到M系列芯片,为了降低不可控风险顺便重温下macOS生产力工具初始化流程,还是选择手动迁移

有实力的同学付费走iCloud或者NAS私有化,不想特别折腾可以参考以下方案

  • Dropbox,文件实时同步备份,免费用户18G空间足够了,国内类似产品有坚果云,百度网盘同步空间等
  • LocalSend,免费、开源、跨平台的局域网文件传输工具,大文件迁移的首选方案
  • Notion,代替Evernote作为新一代的笔记同步工具
  • Enpass,简单易用的跨平台密码管理器,买断性价比高于LastPass、1Password等订阅制吧
  • Google Chrome,浏览器用户习惯和扩展同步,某种程度上也可以代替密码管理器了
  • Google Authenticator,双因素动态口令身份验证器,自从学习微软Microsoft Authenticator允许在线同步数据后,担心隐私泄露风险的同学可能也都转投阵营了

常用软件

搜狗输入法Mac版 - https://pinyin.sogou.com/mac/

LocalSend - https://localsend.org/

iTerm2 - https://iterm2.com/

Tabby - https://tabby.sh/

Rectangle - https://rectangleapp.com/

PDF Expert - https://pdfexpert.com/

OmniPlayer - https://okaapps.com/product/1470926410

MacZip - https://ezip.awehunt.com/

qBittorrent-Enhanced-Edition - https://github.com/c0re100/qBittorrent-Enhanced-Edition

国光的 macOS Ventura 13 软件清单

https://www.sqlsec.com/2023/09/softmac.html

https://www.sqlsec.com/macsoft.html

独立配置

国光的 macOS Ventura 13 优化配置(基于 ARM 平台)

https://www.sqlsec.com/2023/07/ventura.html

Homebrew

Homebrew - https://brew.sh/

Install Homebrew - https://mac.install.guide/homebrew/3

Homebrew国内源 - https://gitee.com/cunkai/HomebrewCN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


==> Next steps:
- Run these two commands in your terminal to add Homebrew to your `$PATH`:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"


/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"


/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"


brew install iterm2 wget git


brew install cask


brew install qlmarkdown


brew install syntax-highlight


brew install autojump

Oh My ZSH

Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。

  • iTerm2: 代替默认的 Terminal,提供了很多高级设置,例如自动补全、高亮等
  • oh-my-zsh: 可以自定义主题、Git 显示、Tab 补全等

http://ohmyz.sh/

https://www.haoyep.com/posts/zsh-config-oh-my-zsh/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions


git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting


plugins=(git autojump zsh-autosuggestions zsh-syntax-highlighting)


echo "DISABLE_MAGIC_FUNCTIONS=true" >> ~/.zshrc


echo " zstyle ':omz:update' mode disabled" >> ~/.zshrc


with_proxy(){
HTTPS_PROXY=http://xxx:6666 HTTP_PROXY=http://xxx:6666 "$@"
}

你可以在内置主题样式截图中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载。

1
2
3
4
5
6
7
8
cd ~/.oh-my-zsh/themes && ls


vi ~/.zshrc

ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"
ZSH_THEME="dracula"

根据 What’s the best theme for Oh My Zsh? 中的排名,以及自定义化、美观程度,强烈建议使用 powerlevel10k 主题。

Dracula Theme for Zsh - https://draculatheme.com/

配合iTerm2主题系统自带主题Colors我推荐Smoooooth,或者其他主题如Dracula

Dracula Theme for iTerm - https://draculatheme.com/iterm

https://iterm2colorschemes.com/

Shell

Bash
Bash是最常见的Linux Shell,如果你在Mac上打开终端(直到macOS Mojave为止)

Zsh
zsh相对于bash 高可配置、高扩展。目前是mac上的默认的shell工具。推荐它的主题网址:https://ohmyz.sh/

通过扩展可以获得如下功能:

  • 自动补全
  • 语法高亮
  • 插件系统(插件管理)
  • 命令行提示(git仓库)
  • 颜色主题

Fish
官网:https://fishshell.com/

相比于zsh,fish会有很多自动化的配置,默认的安装即可。
特点:

  • 命令历史
  • 自动补全、自动搜索
  • 语法高亮
  • 运算+逻辑
  • 运行行颜色设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

zsh --version
zsh 5.9 (x86_64-apple-darwin23.0)


brew install zsh

cat /etc/shells





/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh


chsh -s /bin/zsh


echo $SHELL

Vim

macOS 自带的 vim 是没有任何配色的,以下是常用的配色方案,先在用户目录下新建一个 vim 的配置文件:

1
2
3
4
5
vim ~/.vimrc

set nu " 显示行号
colorscheme desert " 颜色显示方案,其他方案查看:ls /usr/share/vim/vim*/colors
syntax on " 打开语法高亮

VimConfig - https://vimconfig.com/
My .vimrc - https://chrisyeh96.github.io/2017/12/18/vimrc.html

Python

pyenv 是一个强大 Python 包管理工具,可以灵活地切换各种 Python 版本,Linux 和 macOS 强烈建议使用 pyenv 来管理我们的 Python 版本,优雅高效且不会破坏掉系统自带的 Python 环境

https://github.com/pyenv/pyenv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

brew install pyenv


echo 'eval "$(pyenv init -)"' >> ~/.zshrc


pyenv versions


pyenv version


pyenv install -l


pyenv install 3.12
pyenv global 3.12.6
pyenv uninstall 3.12




pyenv global <python版本>


pyenv shell <python版本>

pyenv shell --unset


pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

Java

无论是 Oracle JDK 还是近期比较流行的 Azul Zulu JDK,我们都可以先自己安装一遍,默认都在安装在**/Library/Java/JavaVirtualMachines** 目录下

这里推荐使用 jenv 来切换我们的 Java 版本,类似于 pyenv 一样很优雅

https://www.jenv.be/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

brew instal jenv


echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc


jenv version


jenv add /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/


jenv versions


jenv global <java 版本>


jenv shell <java 版本>

jenv shell --unset


jenv local <java 版本>

ssh用法技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
vim ~/.ssh/config

Host *
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
UserKnownHostsFile /dev/null
CheckHostIP no
StrictHostKeyChecking no
TCPKeepAlive yes
ForwardAgent yes
HostKeyAlgorithms +ssh-rsa
ServerAliveCountMax 3
ServerAliveInterval 15
SendEnv *VOLC*

Host test
HostName xxx
User root
Port 2222

Host test-jump
HostName xxx
User root
ProxyCommand ssh jumpserver nc -q0 %h %p 2> /dev/null


Host jumpserver
HostName jumpserver.xxx.com
User xxx


[all:vars]
ansible_ssh_args="-A -J jumpserver"