当前位置:首页>Linux>我用AI把workbuddy移植到了Linux上

我用AI把workbuddy移植到了Linux上

  • 2026-09-10 03:03:00
我用AI把workbuddy移植到了Linux上

事情的起因很简单:我想在 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 的安装目录一看,心里有了底:

  1. 应用资源没有打包成 asar
    ,是解压后的源码结构——这意味着我能看到所有文件
  2. Electron 本身就是跨平台框架
    ——Windows 和 Linux 用的都是同一个 Electron 内核
  3. 基于 VS Code 开源项目开发
    ——架构上是支持 Linux 的

挑战也有:

  • 20 多个 Windows 原生模块(.node 文件)
  • Windows 专属的 Electron 二进制文件
  • 可能存在的 Windows 路径和 API 调用

但整体来看,这事儿能干。


三、移植过程(核心步骤)

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-love
    (窗口前景控制)
  • windows-registry
    (注册表访问)
  • windows-mutex
    (互斥锁)
  • windows-process-tree
    (进程树)
  • windows-ca-certs
    (Windows CA 证书)

这些都是 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 二进制
    :用 Linux 版替换 Windows 版
  • 删 Windows 专属模块
    :去掉 .node 文件中的 Windows 依赖
  • 重新编译原生模块
    :用 electron-rebuild 重新编译

整个过程,从决定移植到成功运行,不到一天时间。

3. 日志是最好的调试工具

整个排查过程,最关键的一步是去看日志。

如果一开始就看日志,直接发现是网络兼容性问题,能省下好几个小时的折腾。

遇到问题,先看日志。这是工程师最重要的习惯之一。

4. AI 是个好搭档

这次移植过程中,我大量使用了 AI 来:

  • 分析日志、定位问题
  • 生成移植脚本
  • 排查原生模块依赖
  • 编写启动脚本和配置

不是 AI 替我做决定,而是 AI 帮我加速执行。 决策还是我的,但执行效率翻了不止一倍。


六、目前的限制

移植成功不代表完美运行,目前还有一些已知问题:

  • 部分原生模块
    :如 @vscode/sqlite3、node-pty(终端功能)需要进一步测试
  • 登录功能
    :Wine 版本因为网络问题无法登录,Linux 版本网络栈正常,理论上可以登录(待最终验证)
  • Windows 专属功能缺失
    :注册表集成、Windows 进程树等功能在 Linux 上不可用(但本来也不需要)

七、后续计划

短期要做的事:

  1. 测试登录功能是否正常工作
  2. 测试编辑器、AI 对话、文件操作等核心功能
  3. 创建 .desktop 文件,集成到系统菜单

中期想做的事:

  1. 用 AppImage 或 deb 打包,方便分发
  2. 完善所有原生模块的编译

长期希望:

  1. 联系腾讯 WorkBuddy 团队,建议发布官方 Linux 版本
  2. 由于 WorkBuddy 基于 VS Code 开源项目,官方支持 Linux 应该不难

写在最后

作为一个 Linux 用户,经常遇到"这软件只有 Windows 版"的无奈。

但这次的经历让我意识到:很多所谓的"不支持",其实只是没人做而已。

WorkBuddy 的移植难度远低于我的预期——核心原因当然是 Electron 本身的跨平台特性。但更重要的是,有一个好的 AI 搭档,能把"想试一试"变成"真的做成了"。

希望腾讯 WorkBuddy 团队能看到这篇文章,Linux 开发者们真的需要一个官方的 Linux 版本。

在此之前,这个移植方案先给大家提供一个参考。如果你也想在 Linux 上跑 WorkBuddy,可以试试这个方法。

由于不适合开源,我就不开源了,环境感兴趣的朋友私信交流。

最新文章

随机文章