Codex VS Code 插件在 Ubuntu 24.04 上一直无法加载,不一定是账号或模型服务故障。公开社区案例显示,同一台机器从应用菜单启动 VS Code 时 Codex 卡在加载界面,而从终端运行 code . 却能正常打开。这个对照结果指向两种启动方式的可执行文件、环境变量或桌面快捷方式不同;但它只是已报告案例中的解决线索,不能解释所有 Ubuntu 加载故障。
关闭所有 VS Code 窗口,然后在终端进入一个普通本地项目并启动:
cd /path/to/test-project
code .
打开 Codex 侧边栏。官方 IDE 文档说明,图标不可见时可以从命令面板运行 Codex: Open Codex Sidebar。记录侧边栏是否能完成加载、能否登录以及能否新建会话。
随后完全退出 VS Code,再从 Ubuntu 应用菜单或 Dock 中原来的图标启动同一项目。只有“终端正常、图标启动失败”稳定复现时,才进入 desktop entry 排查。两种方式都失败时,直接修改快捷方式通常没有意义。
Linux 图形会话从 desktop entry 的 Exec 字段启动程序,终端则通过 shell 的 PATH 查找 code。它们可能命中不同的可执行文件,也可能携带不同的代理、证书、密钥链或自定义环境变量。
Codex 侧边栏需要扩展成功激活并启动其后台进程。若桌面入口指向的二进制路径与终端实际使用的路径不同,两个启动方式就可能得到不同结果。应通过对比验证,而不是看到 Ubuntu 24.04 就直接认定快捷方式损坏。
command -v code
readlink -f "$(command -v code)"
code --version
记录最终路径和版本。如果机器同时安装了官方 DEB、Snap、Flatpak、Insiders 或其他 VS Code 兼容编辑器,必须先确认当前终端命中的发行渠道。
再检查系统级 desktop entry:
grep '^Exec=' /usr/share/applications/code.desktop
如果该文件不存在,可在以下位置查找候选入口:
find /usr/share/applications ~/.local/share/applications
-maxdepth 1 -iname '*code*.desktop' -print
系统级 desktop entry 可能在软件升级时被覆盖,也需要管理员权限。更稳妥的做法是把它复制到当前用户目录,再修改用户副本:
mkdir -p ~/.local/share/applications
cp /usr/share/applications/code.desktop
~/.local/share/applications/code.desktop
先备份用户副本:
cp ~/.local/share/applications/code.desktop
~/.local/share/applications/code.desktop.bak
现在只需要让 Exec 使用前面通过 command -v code 验证过的路径。社区案例把 /usr/share/code/code 改成了 /usr/bin/code:
sed -i
's|Exec=/usr/share/code/code|Exec=/usr/bin/code|g'
~/.local/share/applications/code.desktop
这条替换命令只适用于文件中确实存在原路径且终端路径确实为 /usr/bin/code 的情况。Snap、Flatpak 和自定义安装不能照抄,应根据实际路径编辑。
一个 desktop entry 往往包含普通启动、新窗口和打开文件等多个动作。修改后检查全部 Exec 行:
grep '^Exec=' ~/.local/share/applications/code.desktop
社区案例期望主要入口类似:
Exec=/usr/bin/code %F
Exec=/usr/bin/code --new-window %F
保留原有的参数占位符,例如 %F、%U 或 --new-window。不要把整行简化到只剩可执行文件,否则“打开方式”和新窗口动作可能失效。
update-desktop-database ~/.local/share/applications
移除 Dock 中旧的 VS Code 图标,再从应用菜单搜索 Visual Studio Code、启动并重新固定。旧图标可能仍关联原 desktop entry,因此只修改文件而不重新固定,测试结果可能不可靠。
若菜单仍使用旧缓存,可以注销并重新登录图形会话。无需为了验证插件而直接重启整台机器;先确认新入口是否真的被使用。
code .,确认 Codex 可以加载。只有图标启动方式由持续失败变为稳定成功,才能说明 desktop entry 调整对这台机器有效。若只是偶尔成功,应继续保留日志,不能把随机恢复当成修复。
公开社区主题还记录了另一类 Ubuntu 24.04 症状:Codex 侧边栏无限转圈,扩展后台进程意外退出,而 Codex CLI 仍能工作。这说明“Ubuntu 上不加载”可能包含不同故障。
| 对照现象 | 下一步 |
|---|---|
| 终端启动正常,应用图标失败 | 核对 desktop entry、二进制路径和环境差异 |
| Codex CLI 正常,IDE 侧边栏失败 | 检查扩展宿主、Codex 输出和后台进程日志 |
| CLI 与 IDE 都无法认证 | 检查登录、网络、代理、证书和系统时间 |
| 仅某个工作区失败 | 检查工作区设置、扩展启用位置和远程环境 |
| 所有项目都无限加载 | 使用干净用户目录和最小扩展集合复现 |
社区原始报告提到,过去重新加载窗口或删除 ~/.codex 曾短暂有效,但后来不再有效。删除该目录会影响本地配置、会话或登录状态,也可能破坏故障现场,因此不应作为首选步骤。
先从 VS Code 的“输出”面板保存 Codex 和扩展宿主输出,再运行 Developer: Open Logs Folder。分享日志前移除令牌、账号、项目路径、提示词和代码内容。
mkdir -p /tmp/codex-code-test/user-data
mkdir -p /tmp/codex-code-test/extensions
code --user-data-dir /tmp/codex-code-test/user-data
--extensions-dir /tmp/codex-code-test/extensions
在临时实例中只安装 Codex,然后测试本地空项目。如果仍无法加载,收集准确的 VS Code、Codex 扩展、Ubuntu 版本和日志;如果临时实例正常,则比较原用户配置、其他扩展和代理环境。
若修改没有帮助,可恢复备份:
cp ~/.local/share/applications/code.desktop.bak
~/.local/share/applications/code.desktop
update-desktop-database ~/.local/share/applications
也可以移走用户副本,让桌面环境重新使用系统级入口。恢复后同样需要从 Dock 移除旧图标并重新固定。
Ubuntu 24.04 本身不是足够具体的根因。在已公开案例中,最有区分度的测试是比较 code . 与应用图标启动:只有前者正常时,才应检查 desktop entry 是否指向了错误或不同的 VS Code 可执行文件。若两种方式都失败,则应转向扩展宿主、后台进程、认证和网络日志,并向 Codex GitHub issue 跟踪器提交最小复现。这样可以修复已知的启动入口问题,同时避免把其他加载故障误诊为快捷方式问题。