claude code 支援 sandbox 已經一段時間了,對於 linux 與mac 非常友善,windows 環境就
需要費點心力,紀錄一下...
一聽說 claude code 推出 sandbox 就很興奮,立刻去試用,但是輸入關鍵字啥都沒有
是的 windows 環境需要透過 WSL2
詢問AI 如何安裝
1. 安裝 WSL2 + Ubuntu
用系統管理員身分開啟 PowerShell 或 Windows Terminal,執行:
powershell
> wsl –install
這個指令會自動:
啟用 WSL2 所需的 Windows 功能(虛擬機器平台、Windows 子系統 for Linux)
安裝預設的 Ubuntu 發行版
安裝完成後通常會要求重新開機
2. 重開機後的設定
重開機後,Ubuntu 會自動開啟一次讓你設定:
建立一組 Linux 使用者名稱 / 密碼(跟 Windows 帳號無關,可以自訂)
3. 確認安裝成功
在 PowerShell 執行:
powershell
> wsl -l -v
應該會看到類似:
NAME STATE VERSION
Ubuntu Running 2
確認 VERSION 是 2(不是 1),/sandbox 功能需要 WSL2。
4. 回到 Windows Terminal
重新開啟 Windows Terminal,下拉選單這時應該就會出現 Ubuntu 這個新分頁選項了。
開啟 Ubuntu
接著要切換目錄到專案,由於WSL/Ubuntu 裡,Windows 的磁碟機會掛載在 /mnt/ 底下,規則是:
/mnt/專案目錄(d:\ 需要換成 d/)
故若專案放在 d:\project\payment,對應的指令就會是(若目錄有中文,請使用 “” 包起來)
cd “/mnt/d/project/payment”
但此時執行 claude 還是出錯,出現 not found
詢問AI後,說明雖然我之前有安裝 node ,但是那是在 windows 環境,需要在 WSL/Ubuntu
裡重新安裝
1.先確認 WSL 裡有沒有裝 Node.js:
> node -v
如果顯示 not found,需要先裝 Node(或讓 Claude Code 的安裝腳本自動附帶
2.官方建議用 curl 安裝
> curl -fsSL https://claude.ai/install.sh | bash
若WSL 裡沒有裝 Node.js。裝 Node 最推薦的方式是用 nvm
1. 安裝 nvm
> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
2. 讓 nvm 生效(安裝完成後,關掉重開終端機分頁,或執行)
> source ~/.bashrc
3. 用 nvm 安裝 Node.js LTS 版本
> nvm install --lts
4. 確認安裝成功
> node -v
npm -v
5. 接著安裝 Claude Code
> curl -fsSL https://claude.ai/install.sh | bash
6. 開新分頁或重新整理 PATH,確認抓到的是 WSL 版本
> hash -r
which claude
claude --version
開啟 Ubuntu 終端機分頁,輸入 /sandbox 還是出錯,畫面上看起來有三個相依套件要安裝
1. 安裝 bubblewrap(沙盒核心)
> sudo apt update
sudo apt install bubblewrap -y
2. 安裝 socat(網路控制輔助工具)
> sudo apt install socat -y
3. 安裝 seccomp filter(阻擋 unix domain socket 用)
> npm install -g @anthropic-ai/sandbox-runtime
全部裝完後,回到 Claude Code 裡再次執行,輸入 sandbox 指令,應該就可以正常
但是還是出錯了,再次詢問 AI,說明 settings.json 檔案中需要設定路徑
執行第二個指令看看套件裡實際有哪些檔案
> ls -la /home/usename/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/
> find /home/username/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/ -iname "*seccomp*"
接著將 seccomp 節點設定 bpfPath、applyPath 路徑
"sandbox": {
"seccomp": {
"bpfPath": "/home/username/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/x64/unix-block.bpf",
"applyPath": "/home/username/.nvm/versions/node/v24.19.0/lib/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/x64/apply-seccomp"
},
"enabled": true,
"autoAllowBashIfSandboxed": true,
"network": {
"allowLocalBinding": true,
"allowedDomains": [
"registry.npmjs.org",
"*.npmjs.org",
"*.github.com",
"github.com",
"*.githubusercontent.com"
]
}
}
接著回到 Ubuntu 環境輸入 sandbox 就發現正常運作了
參考
沒有留言:
張貼留言