389 字
2 分钟

opencode编译指导

OpenCode 编译指导#

本文记录在 Ubuntu 24.04 上生成 OpenCode 桌面端 .deb 安装包的步骤与常见问题排查。

环境信息#

  • OS: Ubuntu 24.04
  • Python: 3.12.12
  • Node: v22.21.0
  • Bun: 1.3.5

目标#

生成 OpenCode Desktop 的 .deb 安装包。

编译命令#

  1. 安装依赖(仓库根目录)
Terminal window
bun install
  1. 生成 .deb 包(桌面端 Tauri 构建)
Terminal window
bun run --cwd packages/desktop tauri build --bundles deb

可选:如果构建过程中打开文件过多,先把构建并发降到 1:

Terminal window
CARGO_BUILD_JOBS=1 bun run --cwd packages/desktop tauri build --bundles deb

遇到的问题#

构建时报错:

thread '<unnamed>' panicked at crates/tauri-cli/src/interface/rust.rs:148:8:
called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 24, kind: Uncategorized, message: "Too many open files" }), paths: [] }
error: script "tauri" was terminated by signal SIGABRT (Abort)
Aborted (core dumped)

问题原因#

Too many open files 通常由以下原因引起:

  • 进程或系统打开文件数过多
  • inotify 限制(max_user_watches / max_user_instances)过低
  • 即使提高 ulimit -n,内核级 inotify 限制仍会触发报错

在本机上检测到:

  • fs.inotify.max_user_watches = 65536
  • fs.inotify.max_user_instances = 128

这两个值偏低,容易导致 Tauri 构建时触发报错。

解决办法#

1. 临时提高 inotify 限制(需要 sudo)#

Terminal window
sudo sysctl -w fs.inotify.max_user_watches=524288
sudo sysctl -w fs.inotify.max_user_instances=1024

2. 降低构建并发(可选)#

Terminal window
CARGO_BUILD_JOBS=1 bun run --cwd packages/desktop tauri build --bundles deb

3. 若需要永久生效#

创建配置文件:/etc/sysctl.d/99-opencode.conf

fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=1024
fs.nr_open=1048576

然后执行:

Terminal window
sudo sysctl --system

补充排查#

如果系统运行很久,可能存在进程打开文件数过多的问题,可以查看前 15 个进程:

Terminal window
lsof -n -P | awk 'NR>1{print $1}' | sort | uniq -c | sort -nr | head -n 15

关闭占用异常高的进程后再重试编译。

赞助支持

如果这篇文章对你有帮助,欢迎赞助支持!

赞助
opencode编译指导
https://jkwei.com/posts/knowledge/opencode编译指导/
作者
Jacky
发布于
2026-02-05
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-02-05,距今已过 6 天

部分内容可能已过时

目录