事情的起因很简单:我想在 Linux 上用 WorkBuddy,但 Wine 跑不起来。
WorkBuddy 是腾讯基于 VS Code 开发的 AI 编程助手,目前只有 Windows 和 macOS 版本。作为一个 Linux 用户,我第一反应当然是用 Wine 来跑——毕竟 Electron 应用理论上跨平台兼容性不错。
但现实给了我一记响亮的耳光。
一、Wine 的"坑"有多深
安装好 Wine,装好 WorkBuddy,打开——界面出来了,一切看起来都很美好。
直到我点了登录按钮。
没反应。
不是卡顿,不是加载中,是纯粹的、安静的、毫无反应的没反应。
打开日志一看,错误信息很明确:
Loginfailed:connectUNKNOWN120.53.74.30:443
Wine 里的 Electron 连不上腾讯的服务器。
开始疯狂折腾
接下来就是经典的技术人日常——疯狂搜索、疯狂尝试。
我用qwen code做了以下所有事情:
- 修复系统 ping 权限
- 安装 winbind
- 配置 Wine DNS 和 hosts
- 尝试各种 Electron 启动参数
结果呢?
错误一模一样。connect UNKNOWN 120.53.74.30:443
二、放弃 Wine,直接移植
折腾到这个时候,一个念头冒了出来:
WorkBuddy 是基于 Electron 的,Electron 本身就是跨平台的,为什么我要在 Wine 里绕圈子?为什么不直接跑 Linux 原生版本?
可行性分析
打开 Wine 的安装目录一看,心里有了底:
- 应用资源没有打包成 asar
- Electron 本身就是跨平台框架——Windows 和 Linux 用的都是同一个 Electron 内核
- 基于 VS Code 开源项目开发
挑战也有:
- 20 多个 Windows 原生模块(
.node 文件) - Windows 专属的 Electron 二进制文件
但整体来看,这事儿能干。
三、移植过程(核心步骤)

Step 1:复制应用资源
从 Wine 目录里把 WorkBuddy 的应用资源拷出来,排除掉 Windows 专属的 .exe 和 .cmd 文件:
rsync-av\--exclude='*.exe'\--exclude='*.cmd'\--exclude='bin/'\~/.wine-workbuddy/drive_c/.../WorkBuddy/resources/\~/workbuddy-linux/resources/
Step 2:下载 Linux 版 Electron
WorkBuddy 用的是 Electron 34.5.1,去淘宝镜像站下载 Linux 版本:
wget"https://npmmirror.com/mirrors/electron/v34.5.1/electron-v34.5.1-linux-x64.zip"
💡 小技巧:用国内镜像下载 Electron,速度比官方快几十倍。
Step 3:删除 Windows 原生模块
这是最关键的一步。应用里有大量 Windows 专属的 .node 文件,在 Linux 上根本不能用。
手动删太慢,写了个命令一键清理:
find.-name"*.node"-typef-execfile{}\;|grep"PE32"|cut-d:-f1|xargsrm-f
删掉的东西包括:
windows-foreground-lovewindows-registrywindows-mutexwindows-process-treewindows-ca-certs
这些都是 Windows 专属功能,Linux 上根本不需要。
Step 4:创建 Linux 启动脚本
WorkBuddy 没有 Linux 启动入口,自己写一个:
#!/bin/bashAPP_DIR="$(cd"$(dirname"$0")"&&pwd)"ELECTRON="$APP_DIR/electron"exportWORKBUDDY_DATA_DIR="$HOME/.config/WorkBuddy"mkdir-p"$WORKBUDDY_DATA_DIR"exec"$ELECTRON"\--app="$APP_DIR/resources/app"\--user-data-dir="$WORKBUDDY_DATA_DIR"\--no-sandbox\--disable-gpu\"$@"
Step 5:重新编译原生模块
有些 Node.js 原生模块需要在 Linux 上重新编译:
# 安装编译依赖sudoapt-getinstall-ybuild-essentialpython3libsqlite3-dev# 重新编译npxelectron-rebuild--version34.5.1
输出 Rebuild Complete 的那一刻,我知道——成了。
四、成功运行
启动脚本,回车:
./run-workbuddy.sh
窗口出来了。
进程监控显示 24 个 Electron 进程正常运行,日志系统工作正常,数据目录 ~/.config/WorkBuddy/ 自动创建。
Wine 里死活连不上的网络,在 Linux 原生环境下完全没问题——因为问题从来不是网络,是 Wine 和新版 Electron 之间的兼容性缺陷。
五、这次移植教会我的事
1. Wine 不是万能药
很多人遇到 Linux 上没有的软件,第一反应就是 Wine。但 Wine 本质上是 Windows API 的兼容层,越复杂的应用,兼容性问题越多。
特别是新版 Electron + Wine 的组合,这是一个已知的兼容性深坑。
2. Electron 应用移植其实不难
如果你的应用是基于 Electron 开发的,移植到 Linux 的核心工作其实就三件事:
- 换 Electron 二进制
- 删 Windows 专属模块:去掉
.node 文件中的 Windows 依赖 - 重新编译原生模块
整个过程,从决定移植到成功运行,不到一天时间。
3. 日志是最好的调试工具
整个排查过程,最关键的一步是去看日志。
如果一开始就看日志,直接发现是网络兼容性问题,能省下好几个小时的折腾。
遇到问题,先看日志。这是工程师最重要的习惯之一。
4. AI 是个好搭档
这次移植过程中,我大量使用了 AI 来:
不是 AI 替我做决定,而是 AI 帮我加速执行。 决策还是我的,但执行效率翻了不止一倍。
六、目前的限制
移植成功不代表完美运行,目前还有一些已知问题:
- 部分原生模块:如
@vscode/sqlite3、node-pty(终端功能)需要进一步测试 - 登录功能:Wine 版本因为网络问题无法登录,Linux 版本网络栈正常,理论上可以登录(待最终验证)
- Windows 专属功能缺失:注册表集成、Windows 进程树等功能在 Linux 上不可用(但本来也不需要)
七、后续计划
短期要做的事:
中期想做的事:
长期希望:
- 联系腾讯 WorkBuddy 团队,建议发布官方 Linux 版本
- 由于 WorkBuddy 基于 VS Code 开源项目,官方支持 Linux 应该不难
写在最后
作为一个 Linux 用户,经常遇到"这软件只有 Windows 版"的无奈。
但这次的经历让我意识到:很多所谓的"不支持",其实只是没人做而已。
WorkBuddy 的移植难度远低于我的预期——核心原因当然是 Electron 本身的跨平台特性。但更重要的是,有一个好的 AI 搭档,能把"想试一试"变成"真的做成了"。
希望腾讯 WorkBuddy 团队能看到这篇文章,Linux 开发者们真的需要一个官方的 Linux 版本。
在此之前,这个移植方案先给大家提供一个参考。如果你也想在 Linux 上跑 WorkBuddy,可以试试这个方法。
由于不适合开源,我就不开源了,环境感兴趣的朋友私信交流。