Arch Linux 安装 Codex 桌面版:从 AUR 到 pacman 的完整配置指南
1. Arch Linux 装 Codex 桌面版到底卡在哪AUR 搜不到包与依赖链的真实场景Arch Linux 上装 Codex 桌面版很多人第一反应是pacman -Ss codex或者yay -Ss codex然后发现要么搜出来一堆不相关的东西要么干脆空结果。这不是你关键字打错了而是 Codex 桌面版本身在官方仓库里没有现成包AUR 里的条目也经常因为维护者更新节奏、包名差异、依赖变动而时有时无。我试过在干净安装的 Arch 上直接搜返回的是一堆 codex 相关的字体、文档工具真正的桌面客户端并不在默认索引里。这个场景的核心矛盾在于Codex 桌面版是一个基于 Electron 或类似框架封装的图形客户端它依赖 Node 运行时、系统级 GUI 库、以及一套构建工具链。Arch 的哲学是“你清楚自己装了什么”所以这类第三方桌面封装通常不会进官方仓库而是走 AUR 或者源码构建。AUR 的包如果维护者没跟上上游 release就会出现“昨天还能装今天 404”的情况。所以你需要两条腿走路一条是 AUR 辅助工具直接拉取另一条是克隆仓库本地构建 pacman 包。适合谁看这篇如果你已经在 Arch 上用命令行工具做开发想补一个图形界面的 Codex 客户端方便在桌面环境里快速切换会话、查看历史、管理多个 API Key 通道那这篇就是给你写的。如果你连base-devel都没装过也没关系下面每一步都会给出完整命令和预期输出。整个流程分三块先处理系统依赖和构建工具再分别走 AUR 和源码构建两条路最后配置 TaoToken 的统一 Key/API 通道并验证桌面入口能正常启动。需要提前说清楚的是Codex 桌面版本身只是一个客户端壳它要真正干活得连上模型服务。TaoToken 在这里的角色是提供一个统一的 API 入口你不需要在客户端里分别填多个厂商的 Key而是用一套 Base URL 加一个 Key就能在 Codex 里调用不同模型。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 这两个后面配置时会反复用到。先确认你的系统状态。打开终端执行uname -a cat /etc/os-release预期能看到Arch Linux或基于 Arch 的发行版标识内核版本不限。接着检查base-devel和git是否就位pacman -Qg base-devel git --version如果base-devel组没装全后面make构建会直接报gcc: command not found或者fakeroot缺失。补装命令sudo pacman -S --needed base-devel git这一步会拉几十个包视镜像速度而定。装完后git --version应该输出类似git version 2.4x.x。到这里前置环境就算齐了。接下来进入 AUR 途径的尝试以及为什么它可能失败、失败后怎么切到源码构建。2. TaoToken 前置准备统一 Key 与 API 通道在 Codex 桌面版里的接入位置在动手装桌面版之前先把 TaoToken 这边的 Key 和通道准备好否则装完客户端打开是一片空白你还得回头找配置入口。Codex 桌面版的设置项里通常有API Base URL、API Key、Model三个字段有的版本叫Provider、Endpoint、Token本质一样。你要做的就是拿到一个可用的 Key然后把 Base URL 指向 TaoToken 的 API 地址。先访问控制台创建 Key。打开 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 登录后进入 API Keys 页面点创建。生成的 Key 一般以sk-开头复制下来存到本地临时文件比如echo sk-你的实际Key ~/.config/codex-desktop/taotoken.key chmod 600 ~/.config/codex-desktop/taotoken.key注意目录可能还不存在先建mkdir -p ~/.config/codex-desktop这个 Key 就是后面填进 Codex 桌面版设置里的凭证。TaoToken 的 API 地址是https://taotoken.net/api注意不要加 UTM 参数配置里只写纯 API 路径。模型 ID 方面你可以先在模型对话页面确认当前可用的模型名称入口在 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 页面上会列出模型标识比如gpt-4o、claude-3-5-sonnet这类。把你要用的模型 ID 记下来后面填进客户端。如果你打算长期在 Arch 上用 Codex 做编码和 Agent 任务可以顺带看一下 Coding Plan 的说明入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 它针对持续编码场景有额度安排。不过这一步不影响桌面版安装先记着就行。这里要强调一个常见误区很多人以为装了桌面版就等于有了模型能力其实桌面版只是壳真正的调用走的是 API。所以 Key 和 Base URL 必须配对正确。TaoToken 的统一通道好处是你不用在客户端里维护多个厂商的 Key一个 Key 对应一个 Base URL模型 ID 按需切换。配置片段后面会以 JSON 形式给出路径和字段名会尽量贴近 Codex 桌面版实际读取的配置文件位置。另外如果你之前用过 Claude Code 或者 Codex CLI可能已经有~/.codex/auth.json之类的文件。桌面版有的版本会读取同一套凭证有的则独立存储。为了不混淆建议桌面版单独配置不要直接复用 CLI 的 auth 文件避免 OAuth 刷新逻辑互相干扰。下面进入具体安装环节。3. 可复制配置AUR 与 pacman 双路径安装 Codex 桌面版及 settings 片段这一节是全文操作最密集的部分。先走 AUR 路径再走源码构建路径最后给出桌面版读取的 JSON 配置片段。两条路径不冲突你可以先试 AUR失败再切源码。AUR 路径需要 AUR 辅助工具。如果你还没装yay或paru先装一个。以yay为例sudo pacman -S --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si装完后搜索 Codex 桌面版相关包yay -Ss codex-desktop yay -Ss codex如果返回结果里有codex-desktop或codex-desktop-bin直接装yay -S codex-desktop如果搜不到说明 AUR 当前没有可用条目不要硬等直接走源码构建。源码构建路径来自社区维护的仓库先克隆git clone https://github.com/ilysenko/codex-desktop-linux.git cd codex-desktop-linux进入目录后先看 README 和 Makefile确认构建目标ls cat Makefile | head -40通常会有bootstrap-native、build、install几个目标。执行原生包构建make bootstrap-native这一步会下载 Node 依赖、Electron 运行时、以及打包工具时间取决于网络和机器性能几分钟到十几分钟都正常。构建完成后会生成.pkg.tar.zst包用 pacman 安装sudo pacman -U *.pkg.tar.zst如果你只想生成 AppImage 不装系统包可以找 Makefile 里的 AppImage 目标一般是make build-appimage生成的 AppImage 给执行权限后直接运行chmod x Codex-*.AppImage ./Codex-*.AppImage卸载 pacman 包的命令是sudo pacman -R codex-desktop接下来是配置文件。Codex 桌面版通常读取~/.config/codex-desktop/settings.json或类似路径。先建目录和文件mkdir -p ~/.config/codex-desktop touch ~/.config/codex-desktop/settings.json写入以下 JSON 片段字段名按实际版本可能略有差异但 Base URL、Key、Model 三件套是核心{ apiBaseUrl: https://taotoken.net/api, apiKey: sk-你的实际Key, model: gpt-4o, provider: taotoken, timeout: 60000, stream: true }如果你用的版本读取的是 TOML比如~/.config/codex-desktop/config.toml对应写法[api] base_url https://taotoken.net/api key sk-你的实际Key model gpt-4o provider taotoken timeout 60000 stream true保存后确认权限避免其他用户读到 Keychmod 600 ~/.config/codex-desktop/settings.json桌面入口方面源码构建安装后一般会自动生成.desktop文件到/usr/share/applications/。检查ls /usr/share/applications/ | grep -i codex如果没有手动创建一个~/.local/share/applications/codex-desktop.desktop[Desktop Entry] NameCodex Desktop Exec/usr/bin/codex-desktop Iconcodex-desktop TypeApplication CategoriesDevelopment; Terminalfalse保存后更新桌面数据库update-desktop-database ~/.local/share/applications到这里安装和配置片段就齐了。下一节验证请求是否真的通。4. 验证请求与成功结果从终端 curl 到桌面版首次启动检查装完不等于能用。先别急着点图标用终端发一个最小请求确认 TaoToken 通道和 Key 是通的。用 curl 打模型列表或者一个简单对话请求curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer sk-你的实际Key \ -H Content-Type: application/json | head -40预期返回一个 JSON里面包含data数组和若干模型 ID。如果返回401说明 Key 不对或者没带上Bearer前缀。如果返回local proxy failed之类说明网络层有问题检查你的 DNS 和出口但不要使用任何非正规网络工具保持系统默认网络配置即可。接着发一个对话请求curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的实际Key \ -H Content-Type: application/json \ -d { model: gpt-4o, messages: [{role: user, content: 回复 OK 两个字母}], stream: false }预期返回里choices[0].message.content包含OK。如果返回reading choices相关错误通常是响应结构和你解析的字段不匹配先看原始 JSON 再调整。这一步通了说明 Key、Base URL、模型 ID 三件套正确。然后启动桌面版。命令行启动可以看到日志codex-desktop如果提示找不到命令用完整路径/usr/bin/codex-desktop或者直接跑 AppImage./Codex-*.AppImage首次启动后进入设置页面确认三个字段字段应填值常见错误API Base URLhttps://taotoken.net/api多写斜杠或带 UTM 参数API Keysk-开头完整 Key复制时漏字符或带空格Modelgpt-4o 等有效 ID填了不存在的模型名保存后新建一个会话输入一句测试话比如“用一句话说明当前目录结构”。如果桌面版正常返回内容说明整条链路打通。如果界面一直转圈先看终端日志有没有401或timeout再回查配置文件路径是否被正确读取。有的版本会优先读环境变量比如CODEX_API_KEY如果你之前设过会覆盖配置文件记得检查env | grep -i codex成功的结果是桌面版窗口正常显示会话能流式输出模型返回内容与你在 curl 里看到的一致。到这一步安装和接入就算完成了。5. 本篇常见错排查401、local proxy failed、reading choices 与 OAuth 冲突这一节把最容易撞上的几个报错拆开讲每个都给出触发条件和处理方式。第一个是401 Unauthorized。触发条件通常是 Key 错误、Key 过期、或者请求头没带Authorization: Bearer。检查步骤先确认~/.config/codex-desktop/settings.json里的apiKey字段没有多余空格再确认 Base URL 是https://taotoken.net/api而不是别的路径。如果你在环境变量里也设了 Key用env | grep -i key看有没有冲突。处理方式重新从控制台复制 Key写入配置文件重启桌面版。第二个是local proxy failed。这个报错通常出现在客户端尝试走本地代理端口但代理没起来或者系统代理设置指向了一个不存在的地址。检查~/.config/codex-desktop/settings.json里有没有proxy字段如果有删掉或留空。再检查系统环境变量env | grep -i proxy如果有http_proxy或https_proxy指向本地端口先 unset 再启动桌面版unset http_proxy https_proxy all_proxy codex-desktop注意不要配置任何非正规网络工具保持直连即可。第三个是reading choices相关错误。这通常发生在客户端解析响应时期望的 JSON 结构里没有choices字段或者choices为空。原因可能是模型 ID 填错服务端返回了错误对象而不是正常补全结构。处理方式先用 curl 发同样的请求看原始返回。如果 curl 返回正常但桌面版报这个错说明桌面版版本和 API 响应格式有差异尝试换一个模型 ID或者升级桌面版到最新构建。第四个是 OAuth 冲突。如果你之前配过 Codex CLI 的~/.codex/auth.json桌面版有的版本会尝试读取并刷新 OAuth token导致和你的 API Key 配置打架。表现是启动后提示登录或者 token 无效。处理方式把 CLI 的 auth 文件临时移走mv ~/.codex/auth.json ~/.codex/auth.json.bak然后重启桌面版让它只读settings.json里的 Key。确认桌面版正常后如果你还需要 CLI再单独处理 CLI 的凭证不要让两者共用同一个文件。还有一个容易忽略的点是桌面入口不显示。如果你手动创建了.desktop文件但菜单里找不到检查Exec路径是否真实存在which codex-desktop如果输出为空说明安装时二进制没进/usr/bin用find找一下find / -name codex-desktop -type f 2/dev/null找到后把Exec改成实际路径再update-desktop-database。排查顺序建议先 curl 通再桌面版通先配置文件再环境变量先单模型再多模型。每一步只改一个变量避免同时动多个地方导致定位困难。6. 语义一致 CTAKey、文档与模型对话入口按场景分流装完、配完、验证完后面就是日常使用了。如果你在排障阶段还需要重新生成 Key 或者查接入细节直接去 API Keys 页面和接入文档。API Keys 入口https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档入口https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。这两个页面覆盖了 Base URL 写法、鉴权头格式、常见返回码说明排障时对着看比反复试错快。如果你只是想先验证某个模型在桌面版里能不能正常返回用模型对话页面最快入口https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。在网页里选模型、发一句话确认通道没问题再回桌面版配置能省掉不少来回改配置的时间。如果你打算把 Codex 桌面版长期挂在 Arch 上做编码和 Agent 任务Coding Plan 的入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 适合持续调用场景。控制台总入口在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理、用量查看都在里面。最后给一个实用技巧把桌面版的启动命令写进 shell 别名方便带日志启动echo alias codex-dcodex-desktop --enable-logging ~/.bashrc source ~/.bashrc这样下次直接codex-d就能看到详细日志排障时不用再翻进程。配置文件改完后桌面版一般需要完全退出再启动才会重新读取托盘图标右键退出不算完全退出用pkill codex-desktop确保进程结束再开。