记一次 OpenCode 在 Windows 上“Segmentation fault”的踩坑与修复之路

背景

前几天想在 Windows 11 上体验一下 OpenCode 这个 AI 辅助开发工具,结果安装后一运行就直接崩溃:

bash

复制代码
PS E:\...\listener> opencode
============================================================
Bun v1.3.13 (bf2e2cec) Windows x64 (baseline)
...
panic(main thread): Segmentation fault at address 0x7FF78FFB07DA
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

每次都是这个 Segmentation fault,连个正常输出都没有。错误报告建议我去 GitHub 提 issue,但作为一个急性子,我决定自己先折腾看看。

排查过程:我踩过的三个坑

第一次尝试:升级 Bun(失败)

按照错误提示,我以为是 Bun 版本太低有 bug,于是尝试升级到最新的 canary 版:

bash

复制代码
bun upgrade --canary

结果直接给我来个 ConnectionClosed

text

复制代码
Downloading [5.56MiB] Bun upgrade failed with error: ConnectionClosed
Please upgrade manually: powershell -c 'irm bun.sh/install.ps1|iex'

网络问题,挂代理、换 DNS 都没用。手动运行那个 PowerShell 脚本倒是能下载,但安装后版本依旧是 v1.3.13,似乎没覆盖成功。

第二次尝试:重装 OpenCode(没用)

既然升级 Bun 不顺利,那我试试重装 OpenCode 本身:

bash

复制代码
npm uninstall -g opencode-ai
npm install -g opencode-ai   # 重新安装最新版

再次运行 opencode,一模一样的内存访问错误------说明问题不在版本新旧,而是 OpenCode 内置的那个 Bun 运行时在 Windows 下根本不稳。

第三次尝试:切换后端(终于搞定)

在 OpenCode 的 GitHub Issues 里翻到一个讨论,有人提到可以强制让 OpenCode 使用 Node.js 后端而不是内置的 Bun。抱着试试看的心态:

bash

复制代码
opencode config set runtime backend node

再次运行 opencode,终于不再崩溃了!虽然启动速度慢了一点点,但至少能用了。

最终解决方案(亲测有效)

如果你也遇到一模一样的 Segmentation fault,按以下步骤大概率能解决:

步骤一:用 npm 重装 OpenCode

用包管理器来管理,而不要依赖它自带的安装程序:

bash

复制代码
npm uninstall -g opencode-ai
npm install -g opencode-ai

步骤二:强制切换后端为 Node.js

这是最关键的一步:

bash

复制代码
opencode config set runtime backend node

步骤三:验证

bash

复制代码
opencode --version   # 正常输出版本号
opencode doctor      # 运行健康检查

看到正常的输出界面,就代表成功了。

如果你也遇到了 ConnectionClosed

这个主要是网络问题。在 Windows 下可以尝试:

  1. 用管理员 PowerShell 运行官方脚本:

    powershell

    复制代码
    powershell -c "irm bun.sh/install.ps1 | iex"
  2. 配置代理(如果你有):

    powershell

    复制代码
    $env:HTTPS_PROXY="http://127.0.0.1:7890"
  3. 直接放弃 Bun,全程用 npm 管理 OpenCode(我就是这样做的)。

总结与建议

遇到的现象 根本原因 有效解决方案
Segmentation fault OpenCode 内置的 Bun 运行时与 Windows 存在底层兼容性 bug opencode config set runtime backend node
bun upgrade --canaryConnectionClosed 国内网络访问 GitHub Releases 不稳定 用 npm 管理 OpenCode,不依赖独立 Bun
升级后问题依旧 默认后端仍是 Bun 手动修改配置文件或执行上述命令

最后给 Windows 用户两个忠告:

  1. 不要迷信"自带 Bun 更快"------在它稳定之前,老老实实切 Node.js 后端。

  2. 实在搞不定就上 WSL2------在 Ubuntu 子系统中装 OpenCode 没有任何段错误,省心。

希望这篇踩坑记录能帮你少花一下午时间。如果你有其他奇怪的错误,欢迎评论区交流~

环境:Windows 11 22H2,Node.js v20.11.0,OpenCode v1.14.34

相关推荐
夜郎king2 小时前
PostgreSQL 16 搭配 PgVector:Windows 11 完整安装教程
数据库·windows·postgresql
慵懒的猫mi3 小时前
从 Windows 到 deepin:Electron 软件无损移植实战
linux·windows·deepin
码农阿强3 小时前
OpenAI Codex 全平台详细安装与配置教程(Windows/Mac/Linux)
linux·windows·macos·ai
思麟呀3 小时前
C++工业级日志项目(四)日志落地
linux·开发语言·c++·windows
玖釉-4 小时前
单词搜索:二维网格中的 DFS 回溯与剪枝优化
c++·windows·算法·深度优先·剪枝
诸葛务农4 小时前
如何用windows自带的录音机录制(内录)电脑播放的音乐
windows·电脑
中议视控4 小时前
网络中控主机控制电脑开关机:开机可以利用网络唤醒和通电自启,Windows关机利用OY-PWCC关机软件,国产麒麟统信等操作系统利用OY-PCI开关机控制卡
网络·windows·电脑
阿昭L4 小时前
Windows用户态下常见的DLL注入技术总结
windows·逆向工程·dll注入
半月夏微凉5 小时前
win11下不能预览pdf的问题解决方法
windows·pdf
XLYcmy5 小时前
Agent身份与权限系统设计方案
windows·网络安全·ai·llm·飞书·api·agent