You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在M1芯片Mac上不依赖Rosetta 2原生安装所有软件及重新配置开发环境?

我刚帮朋友处理过一模一样的M1环境切换问题,给你整理一套彻底的方案,保证全程都是原生Arm64软件:

第一步:彻底清理现有混合环境

要完全摆脱Rosetta依赖,得先把所有可能的x86和混合安装的软件都清干净:

清理Homebrew(含x86和Arm版本)

  1. 先卸载x86版本(如果之前用Rosetta终端装过):右键终端→显示简介→勾选「使用Rosetta打开」,打开后运行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
  1. 关闭Rosetta终端,打开原生终端(取消Rosetta勾选),卸载Arm版本的brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
  1. 清理残留文件:
rm -rf /usr/local/Homebrew ~/Library/Caches/Homebrew ~/.brew

清理Miniconda及Python环境

  1. 删除Miniconda安装目录(默认是~/miniconda3~/opt/miniconda3):
rm -rf ~/miniconda3
# 如果是其他路径,替换成对应的即可
rm -rf ~/opt/miniconda3
  1. 清理shell配置里的conda相关内容:
sed -i '' '/miniconda3/d' ~/.zshrc
sed -i '' '/miniconda3/d' ~/.bash_profile

如果用的是fish等其他shell,记得对应清理配置文件。

清理MySQL

  1. 先停止服务:
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

  1. 如果是brew安装的,先卸载:
brew uninstall node
  1. 如果用了nvm,清理nvm及相关配置:
rm -rf ~/.nvm
sed -i '' '/nvm/d' ~/.zshrc
  1. 清理全局npm残留:
rm -rf ~/.npm ~/.node-gyp /usr/local/bin/node /usr/local/bin/npm

清理gcc和g++

  1. 卸载brew安装的版本:
brew uninstall gcc
  1. 清理残留二进制文件:
rm -rf /usr/local/bin/gcc /usr/local/bin/g++
第二步:重新安装原生Arm64软件

全程使用原生终端(不要启用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,确保CPUarm64,安装路径是/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

火山引擎 最新活动