2025-05-22 為什麼 brew install node 在 macOS 上會花很久

2025-05-22 為什麼 brew install node 在 macOS 上會花很久

這個問題很常見 👍,我幫你分幾個原因來解釋為什麼 brew install node 在 macOS 上會花很久:


1. Homebrew 的安裝流程比較完整

  • brew install node 並不是單純下載一個 .pkg.dmg 安裝檔。

  • 它會:

    1. 檢查依賴 (dependencies)。
    2. 下載 Node.js 的 原始壓縮檔 或預編譯套件。
    3. 驗證檔案完整性 (SHA256)。
    4. 展開、安裝到 /usr/local/opt/homebrew(M1/M2)。
    5. 建立 symlink。

所以比起直接去 Node.js 官網下載安裝檔,brew 的動作會更多。


2. 編譯或解壓縮耗時

  • 大多數情況下,brew 會下載 Node.js 官方的 預編譯二進位檔,速度還算快。

  • 但如果你電腦架構(例如舊的 Intel Mac,或比較老的版本)沒有對應的預編譯包,brew 可能會自動 從原始碼編譯 Node.js

    • Node.js 原始碼很大,編譯過程要跑 clang,這會非常久。

3. 網路速度與 GitHub CDN

  • Homebrew 的套件主要從 GitHub 的 Bottles (二進位包) 或 Node.js 官方 CDN 下載。
  • 在台灣,連 GitHub Release / CDN 偶爾會變慢,甚至被 reset 連線。
  • 如果下載速度掉到幾十 KB/s,當然會拖很久。

4. 磁碟 I/O 或舊機效能

  • 你提到你有舊的 Mac Air,如果是 機械硬碟 (HDD) 或老舊 SSD,解壓縮大檔案(Node.js 安裝包 >50MB)也會明顯變慢。

解決建議:

  1. 如果只是要快速安裝 Node.js(不用管 brew),可以直接下載官方安裝檔:
    👉 Node.js 官方 LTS 版
    安裝好就能用,比 brew 快很多。

  2. 如果堅持用 brew,但下載慢,可以試:

    1
    2
    brew update-reset
    brew cleanup

    然後再安裝,確保用的是最新鏡像。

  3. 也可以換 中科大 Homebrew 鏡像(中國大陸常用),台灣也會快一點。


很好問題 👌,你現在卡在「安裝到一半」的情況,處理方式要看你目前的狀態:


🔍 1. 先檢查安裝狀態

執行:

1
brew list node
  • 如果有輸出一堆檔案 → 代表 Node 已經裝好了(可能還沒連 symlink)。
  • 如果顯示「Error: No such keg: …」 → 代表安裝沒完成。

再試:

1
2
node -v
npm -v
  • 有版本號 → 成功了,不用再裝。
  • 沒有版本號 → 代表還沒裝好。

🛠 2. 如果安裝被中斷了(Ctrl+C 或網路斷掉)

你可以清掉不完整的安裝再重試:

1
2
3
brew uninstall node
brew cleanup
brew install node

🚀 3. 想要快一點(避免卡住)

如果你是舊 Mac 或網路不穩,建議不要讓 Homebrew 自行編譯。
改用下載 官方安裝檔會快很多:
👉 Node.js 官方 LTS 安裝檔
這樣直接裝好,brew 的問題就跳過了。


⚡ 4. 如果想繼續用 brew,但怕再卡住

可以用 --verbose--force-bottle

1
brew install node --verbose --force-bottle

這會強制用官方的預編譯包(bottle),避免 brew 自動跑編譯,速度快很多。


這個問題問得很精準 👍


情況分析

mkdir ~/mcp-server 只是 你自己手動建立的資料夾,裡面可能放:

  • 你之後跑 npm init -y 建的 package.json
  • node_modules/
  • 其他程式碼(例如 server.mjs

不是 Homebrew 安裝的系統套件,所以 不需要用 brew uninstall


✅ 如果你只是練習,想完全刪掉

直接刪掉整個目錄即可:

1
rm -rf ~/mcp-server

這樣就乾淨了,什麼都不會殘留。


⚠️ 注意

  • 如果你裡面有寫好的程式碼(例如 server.mjs),刪掉就沒了,建議先備份。
  • npm install 裝的套件(在 node_modules 裡)也會一併刪掉,不會影響全域系統。

補充

  • Homebrew 套件的卸載要用 brew uninstall <package>
  • npm 全域套件的卸載要用 npm uninstall -g <package>
  • 自己建立的專案資料夾(像 ~/mcp-server)只要 rm -rf 刪掉就好。