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

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
L
LangChain Blog
I
Intezer
N
News and Events Feed by Topic
C
Check Point Blog
MyScale Blog
MyScale Blog
I
InfoQ
Last Week in AI
Last Week in AI
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
T
Threatpost
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
The GitHub Blog
The GitHub Blog
V
Vulnerabilities – Threatpost
NISL@THU
NISL@THU
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Martin Fowler
Martin Fowler
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
A
Arctic Wolf
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
T
Tenable Blog
The Hacker News
The Hacker News
博客园_首页
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
Microsoft Security Blog
Microsoft Security Blog
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
V2EX
G
Google Developers Blog
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
WordPress大学
WordPress大学
P
Palo Alto Networks Blog
T
Threat Research - Cisco Blogs

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"