Mac M1(Apple silicon) 安装 homebrew 和 nodejs 遇到的坑和解决办法

安装 Homebrew 和 Nodejs 对于程序员来说可能没什么难度,但是对我这个学习前端的设计师来说有点难度,另外考虑到 M1 更是难上加难,遇到了各种问题,求助搜索引擎和朋友,历时3个小时完成,为了避免后来人踩坑,特此记录遇到的问题和解决方案。

安装 homebrew

我是按少数派教程(链接:https://sspai.com/post/63935)来做的。参考多个教程的朋友注意有些命令是不能重复输入的,否则会出现奇奇怪怪的各种问题。

另外一定要先在 Mac Store 下载 Apple Developer 和 XCode,XCode 要先启动一次然后同意协议。


如果在输入:

curl -L <https://github.com/Homebrew/brew/tarball/master> | tar xz --strip 1 -C homebrew

出现了诸如:

tar: could not chdir to 'homebrew'
curl: (23) Failed writing body (0 != 1370)
curl: (6) Could not resolve host: homebrew


之类的错误,记得把目录切回到 /opt,即:

cd /opt

再执行 “curl”就没问题了。

安装 node.js


如果在遇到执行:

brew install node

出现诸如:

Updating Homebrew...

或者出现:

Cloning into '/opt/Homebrew/Library /Taps/homebrew/homebrew-core'...

等了好久还没反应的问题。这一般是国内连接 homebrew 服务器速度太慢导致的。解决办法是关掉 homebrew 的自动更新,然后把 homebrew 的服务器改为国内的镜像。

可以直接按 “control+c“ 结束当前终端的代码,然后进行下面的操作。

cd /opt/homebrew/Library/Taps
mkdir homebrew
cd homebrew
git clone <https://mirrors.ustc.edu.cn/homebrew-core.git>
git clone <https://mirrors.ustc.edu.cn/homebrew-cask.git>

关闭homebrew自动更新

在终端执行以下命令即可。

echo "export HOMEBREW_NO_AUTO_UPDATE=true" >> ~/.zshrc
source ~/.zshrc

替换 homebrew 源


如果按网上的教程,用:

cd "$(brew --repo)"
git remote set-url origin <https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git>

是肯定会报错:

fatal: No such remote 'origin'

解决办法是,在“cd”之后先执行:

git remote add origin <https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git>

再执行“set-url”就正常了。


如果遇到:

error: Not a valid ref: refs/remotes origin /master

试试“set-url”其他源试试。


如果遇到:

fatal: not a git repository (or any of the parent directories): .git

输入以下命令即可解决。

git init


如果遇到:

Error: Could not 'git stash' in /opt/homebrew!
Please stash/commit manually if you need to keep your changes or, if not, run:
  cd /opt/homebrew
  git reset --hard origin/master

其实解决办法就在报错命令里了:

cd /opt/homebrew
git reset --hard origin/master


如果执行:

cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask

出现错误:

cd: no such file or directory: /opt/homebrew/Library/Taps/homebrew/cask

无视即可。可能是因为M1的配置和之前的不一样,没有 cask 这个目录。


执行:

cd /opt/homebrew/Library/Taps/
mkdir homebrew
cd homebrew
git clone <https://mirrors.ustc.edu.cn/homebrew-core.git>

正式安装 node

解决完以上问题,先输入以下命令更新 homebrew。

brew update

再输入以下命令装 node 应该就没问题了。

brew install node

node 即使安装成功,中间也会出现很多警告,这个可以无视,之后遇到问题了可以看警告中提供的解决方案。

Warning: You are running macOS on a arm64 CPU architecture.
We do not provide support for this (yet).
Reinstall Homebrew under Rosetta 2 until we support it.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels. You are responsible for resolving
any issues you experience while you are running this
unsupported configuration.

==> Downloading <https://mirrors.cloud.tencent.com/homebrew-bottles/bottles/icu4c>
######################################################################## 100.0%
Error: SHA256 mismatch
Expected: 0d03423f2a4a557fc04a021fad963ab71d05b9129693887522dde996aff8c9f9
  Actual: e055a567ca6c52d45b0a07cd9c0182591ece5984b20a0a6f1d6dd2e8ed5d3d0a
    File: /Users/dengjiangling/Library/Caches/Homebrew/downloads/7a6b1f9f807a76760bf7490facaa94b765c3c720fb218cabe5c3f329b3c85ba7--icu4c-67.1.arm64_big_sur.bottle.tar.gz
To retry an incomplete download, remove the file above.
Warning: Bottle installation failed: building from source.
==> Downloading <https://github.com/unicode-org/icu/commit/715d254a02b0b22681cb6f>
######################################################################## 100.0%
==> Downloading <https://github.com/unicode-org/icu/releases/download/release-67->
==> Downloading from <https://github-production-release-asset-2e65be.s3.amazonaws>
######################################################################## 100.0%
==> Downloading <https://mirrors.cloud.tencent.com/homebrew-bottles/bottles/node->
######################################################################## 100.0%
==> Installing dependencies for node: icu4c
==> Installing node dependency: icu4c
==> Pouring icu4c-67.1.arm64_big_sur.bottle.tar.gz
==> Caveats
icu4c is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS provides libicucore.dylib (but nothing else).

If you need to have icu4c first in your PATH run:
  echo 'export PATH="/opt/homebrew/opt/icu4c/bin:$PATH"' >> ~/.zshrc
  echo 'export PATH="/opt/homebrew/opt/icu4c/sbin:$PATH"' >> ~/.zshrc

For compilers to find icu4c you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/icu4c/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/icu4c/include"

验证安装结果

如果homebrew和node安装成功后,在终端里输入:

file /opt/homebrew/bin/node

如果看到:

/opt/homebrew/bin/node: Mach-O 64-bit executable arm64

"arm64"就说明安装的 node 确实是原生支持 M1 的版本。

另外不要因为安装了最新版的 node 沾沾自喜,为了稳定运行,建议安装 nvm 然后用 “arch -x86_64 zsh” 启动兼容模式安装 LTS 版本的node,否则会出现一堆后续问题,这个之后我再慢慢和大家讲。

总之 M1 原生模式还不适合做前端开发。

安装过程中如果遇到其他问题你解决了,记得写文章发表,便于后来者搜索寻找解决方案。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容