如何在M1芯片Mac上不依赖Rosetta 2原生安装所有软件及重新配置开发环境?
我刚帮朋友处理过一模一样的M1环境切换问题,给你整理一套彻底的方案,保证全程都是原生Arm64软件:
要完全摆脱Rosetta依赖,得先把所有可能的x86和混合安装的软件都清干净:
清理Homebrew(含x86和Arm版本)
- 先卸载x86版本(如果之前用Rosetta终端装过):右键终端→显示简介→勾选「使用Rosetta打开」,打开后运行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
- 关闭Rosetta终端,打开原生终端(取消Rosetta勾选),卸载Arm版本的brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
- 清理残留文件:
rm -rf /usr/local/Homebrew ~/Library/Caches/Homebrew ~/.brew
清理Miniconda及Python环境
- 删除Miniconda安装目录(默认是
~/miniconda3或~/opt/miniconda3):
rm -rf ~/miniconda3 # 如果是其他路径,替换成对应的即可 rm -rf ~/opt/miniconda3
- 清理shell配置里的conda相关内容:
sed -i '' '/miniconda3/d' ~/.zshrc sed -i '' '/miniconda3/d' ~/.bash_profile
如果用的是fish等其他shell,记得对应清理配置文件。
清理MySQL
- 先停止服务:
brew services stop mysql
如果是通过dmg安装的,打开系统偏好设置→找到MySQL→停止服务,然后卸载dmg里的MySQL。
2. 清理残留文件:
rm -rf /usr/local/mysql /Library/PreferencePanes/MySQL* ~/Library/Application\ Support/com.oracle.MySQL* rm -rf /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
清理Node和npm
- 如果是brew安装的,先卸载:
brew uninstall node
- 如果用了nvm,清理nvm及相关配置:
rm -rf ~/.nvm sed -i '' '/nvm/d' ~/.zshrc
- 清理全局npm残留:
rm -rf ~/.npm ~/.node-gyp /usr/local/bin/node /usr/local/bin/npm
清理gcc和g++
- 卸载brew安装的版本:
brew uninstall gcc
- 清理残留二进制文件:
rm -rf /usr/local/bin/gcc /usr/local/bin/g++
全程使用原生终端(不要启用Rosetta),所有安装都会自动适配Arm64架构:
安装Homebrew(原生Arm版本)
直接运行官方安装命令,原生终端下会自动安装到/opt/homebrew(Arm版专属路径):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,按照终端提示把brew路径加入shell配置,比如:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc source ~/.zshrc
验证:运行brew config,看CPU字段是arm64,说明是原生版本。
安装Miniconda(Arm优化版)
推荐用Miniforge(专为Apple Silicon优化的conda发行版),避免Anaconda的x86兼容问题:
brew install --cask miniforge
安装完成后初始化conda:
conda init zsh
重启终端后,创建的Python环境默认都是Arm64版本,安装的库也会自动拉取Arm源的包。
安装gcc和g++(原生Arm版本)
用brew直接安装,会自动获取Arm64版本:
brew install gcc
brew会把gcc命名为gcc-13(版本号可能随更新变化),可以创建软链接方便直接用gcc命令:
ln -s /opt/homebrew/bin/gcc-13 /opt/homebrew/bin/gcc ln -s /opt/homebrew/bin/g++-13 /opt/homebrew/bin/g++
验证:运行gcc --version,输出里包含arm64-apple-darwin字样就是原生版本。
安装MySQL(原生Arm版本)
用brew安装,全程原生:
brew install mysql # 启动服务 brew services start mysql # 初始化安全设置(按提示操作即可) mysql_secure_installation
验证:运行mysql --version,看输出里的arm64标识。
安装Node和npm(原生Arm版本)
方法1:brew直接安装
brew install node
验证:运行node -p process.arch,输出arm64即为原生版本。
方法2:用nvm管理(更灵活)
先安装原生nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
重启终端后,安装LTS版本的Node(自动适配Arm64):
nvm install --lts
验证同样用node -p process.arch查看架构。
要避免再混入x86软件,记住这几点:
- 永远用原生终端:不要勾选「使用Rosetta打开」终端,所有命令都在原生终端执行。
- 检查brew架构:定期运行
brew config,确保CPU是arm64,安装路径是/opt/homebrew(x86版是/usr/local/Homebrew)。 - 优先用brew/Miniforge安装:尽量通过brew或Miniforge安装软件,它们会自动选择原生版本;如果某个软件暂时没有Arm版,brew会明确提示,这时再考虑是否用Rosetta兼容。
- 验证软件架构:对任何不确定的软件,用
lipo -info $(which <软件名>)检查,比如lipo -info $(which python),输出包含arm64就是原生版本。 - 下载软件选Arm版:手动下载dmg安装包时,优先选「Apple Silicon」或「Arm64」版本,不要选「Intel」版本。
内容的提问来源于stack exchange,提问作者Rishabh Garg




