codex-desktop-linux打包体系揭秘一套源码如何产出deb/rpm/pacman/AppImage/Nix五种格式【免费下载链接】codex-desktop-linuxUnofficial ChatGPT desktop app for Linux (formerly the Codex app), built locally from OpenAI’s official macOS app. Includes Chat, Work, and Codex. Packages for Debian/Ubuntu (.deb), Fedora/openSUSE (.rpm), Arch (pacman), Nix/NixOS, and AppImage, with Wayland and X11 support.项目地址: https://gitcode.com/gh_mirrors/co/codex-desktop-linuxcodex-desktop-linux 是一个为 Linux 打造的非官方 ChatGPT 桌面应用含 Chat、Work 与 Codex 三大模块它把 OpenAI 官方签名 Linux 包作为唯一上游经过校验、可选特性补丁后用同一套构建流水线产出deb、rpm、pacman、AppImage、Nix五种安装包并原生支持 Wayland 与 X11。本文带你完整看懂这套 Linux 打包体系的设计与执行过程帮你在自己的发行版上一键装好。 先看懂整体官方 .deb 进五种安装包出整套打包体系的核心思路是单一上游 多路输出上游只认一种格式OpenAI 官方签名的 Linux.deb包支持 amd64 / arm64无论最终产出什么格式原料都来自它。中间产物统一先构建出本地应用树codex-app/官方 Electron 运行时、原生模块、内置codex与rg命令行工具全部原样复用。五种输出各自封装每个格式由独立脚本负责但共用同一套内容暂存逻辑保证五种包里装的东西一致。官方签名 .deb ──► 校验/解包 ──► codex-app/ 应用树 ──┬──► .deb (Debian/Ubuntu/Mint) ├──► .rpm (Fedora/openSUSE) ├──► pkg.tar (Arch/Manjaro) ├──► .AppImage (任意发行版) └──► Nix flake (NixOS/Nix)构建入口是根目录的 Makefile所有命令都围绕它展开。 第一步构建应用树签名校验是硬性关卡运行make build-app后install.sh 会执行一条严格的安全链路使用仓库内置的固定密钥assets/openai-codex-linux-repository-key.gpg.base64逐级验证InRelease → Packages → 安装包 SHA-256解包并记录版本、架构、SHA-256 到.codex-linux/build-info.json构建元数据若启用了 Linux 特性才会解包resources/app.asar打补丁未启用任何特性时app.asar 与官方包逐字节一致。你也可以用UPSTREAM_DEB/path/to/xxx.deb make build-app指定一个已下载的官方包仍会校验包名、架构与完整性。详细规则见 docs/build-and-packaging.md。️ 五种格式五条构建命令git clone https://gitcode.com/gh_mirrors/co/codex-desktop-linux cd codex-desktop-linux make bootstrap-native # 推荐自动装依赖 构建 打包 安装 # 或者分别构建指定格式 make deb make rpm make pacman make appimage所有产物统一输出到dist/目录。下面逐个拆解每种格式的实现要点。deb 包dpkg-deb 直建依赖直接继承官方包scripts/build-deb.sh 的工作流创建dist/deb-root暂存目录调用公共逻辑铺入应用内容渲染 packaging/linux/control 模板——其中的Depends、Recommends等字段直接从官方包的 control 元数据继承保证运行依赖与官方一致生成DEBIAN/postinst / prerm / postrm维护脚本含 AppArmor 策略加载执行dpkg-deb --root-owner-group --build完成打包。rpm 包rpmbuild spec 模板版本号智能拆分scripts/build-rpm.sh 使用 packaging/linux/codex-desktop.spec 模板有几个值得注意的细节RPM 版本号不允许含脚本会把形如2.1.2abc123的版本号自动拆分为 version 与 release支持MAX_BUILD_THREADS8参数切换zstdio多线程压缩加快打包架构映射x86_64 →x86_64aarch64 →aarch64。pacman 包PKGBUILD 模板渲染scripts/build-pacman.sh 基于 packaging/linux/PKGBUILD.template 渲染出临时 PKGBUILD并配合 packaging/linux/codex-desktop.install 钩子脚本安装后刷新桌面菜单最后交给makepkg产出pkg.tar.zst。版本号策略与 RPM 相反后缀保留在pkgver中pkgrel留给发行版重建。AppImage免安装便携版最轻的一条路AppImage 构建最简见 scripts/build-appimage.sh核心文件在 packaging/appimage/ 目录AppRun 负责自解压后调用start.sh启动器复用官方内置的codexCLI 与运行时库不会自动添加--no-sandbox——系统若禁用用户命名空间会给出诊断提示而非不安全回退不包含更新器服务删除文件即卸载适合原子化桌面如 Fedora Silverblue与不确定发行版的场景。Nix flake哈希钉死一切的终极可复现Nix 输出走的是完全独立的一条可复现构建链路入口是 flake.nix用pkgs.fetchurl按 nix/upstream-linux-packages.json 中钉死的 SRI 哈希下载官方包在派生构建内执行同一个install.sh再用 nix/elf-runtime.cjs 审计并修复 ELF 动态链接器路径patchelf确保官方二进制能在 Nix store 中运行启用特性时按需编译 Rust 原生助手computer-use、read-aloud、record-replay 等并支持 cachix 二进制缓存加速NixOS 下还有一个定制的 bubblewrap 包装器处理沙箱环境。常用输出包括codexDesktop、computerUse、remoteMobile等可override变体文档见 docs/nix.md。 隐藏的功臣一份公共暂存层统一五种包五种格式虽然构建脚本各写各的但包内内容完全同源——都来自 scripts/lib/package-common.sh 中的stage_common_package_files内容安装位置说明应用本体/opt/codex-desktop官方运行时 启动器 特性资源命令入口/usr/bin/codex-desktop转发到start.sh桌面项codex-desktop.desktop菜单名ChatGPT Community与官方 ChatGPT 明确区分图标assets/codex-linux.png带蓝色 C 标识的社区图标AppArmor 策略/etc/apparmor.d/由模板按包名动态渲染更新器codex-update-manager用户服务见 packaging/linux/codex-update-manager.service此外启用任一 Linux 特性时公共层还会运行该特性的打包钩子run_linux_feature_package_hooks把特性声明的依赖与文件自动合并进对应格式的依赖清单——这是特性框架 × 五种格式能同时工作的关键机制。 原生包自带更新器事务式更新 一键回滚三种原生包默认内置 Rust 编写的codex-update-manager源码在 updater/src/用户级 systemd 服务轮询同一份签名 APT 元数据按 版本/架构/SHA-256 缓存官方包用当前启用的特性重新构建本地原生包等应用完全退出后再晋升保留上一个受管版本随时codex-update-manager rollback回滚。不想要自动更新PACKAGE_WITH_UPDATER0 make package即可产出纯手动更新版本桌面菜单中的检查更新项也会自动移除。✅ 质量保障跨格式冒烟测试由于五种格式共享应用树与公共暂存层任何一处改动都可能波及全部格式。仓库为此提供两级验证bash tests/scripts_smoke.sh # 快速冒烟 ./scripts/ci-local.sh all # 完整本地 CI 套件最终包还会人工/自动核查官方 ELF 是否完整、干净app.asar是否逐字节一致、桌面项是否显示ChatGPT Community、架构是否匹配构建机、是否未混入 OpenAI 的 APT 源配置。 常见问题速答Q1五种格式选哪个Debian/Ubuntu 系选make debFedora/openSUSE 选make rpmArch/Manjaro 选make pacmanNixOS 选 flake其余发行版含原子化桌面选 AppImage。make package会自动探测发行版选择对应格式。Q2为什么包名叫 codex-desktop 而菜单显示 ChatGPT Community包标识保持codex-desktop、安装路径保持/opt/codex-desktop方便脚本化运维菜单名与带蓝 C 的图标则让用户一眼区分官方ChatGPT包与社区版两者可共存但不应同时运行。Q3构建需要什么环境Bash、curl、gpgv、dpkg-deb、Node.js 20、Python 3、C/C 工具链Rust 用于更新器与特性原生助手。bash scripts/install-deps.sh支持 apt / dnf / zypper / pacman 四种源自动装齐。总结codex-desktop-linux 的打包体系是一份源码、五种格式的典范设计单一上游保证所有格式的内容基线与官方完全一致未启用特性时 app.asar 逐字节相同公共暂存层scripts/lib/package-common.sh 消除格式间的内容漂移特性打包钩子让 30 个可选 Linux 特性自动适配每一种包格式事务式更新器 冒烟测试守住安装后的持续可靠性。对普通用户你只需要记住一句话装好依赖后执行make bootstrap-native剩下的交给 Makefile。【免费下载链接】codex-desktop-linuxUnofficial ChatGPT desktop app for Linux (formerly the Codex app), built locally from OpenAI’s official macOS app. Includes Chat, Work, and Codex. Packages for Debian/Ubuntu (.deb), Fedora/openSUSE (.rpm), Arch (pacman), Nix/NixOS, and AppImage, with Wayland and X11 support.项目地址: https://gitcode.com/gh_mirrors/co/codex-desktop-linux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Clawdbot 配置豆包1.8模型:settings.json 骨架与连通性验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:17:59
13万条菜谱数据拆包:三张SQL表撑起食谱库 简介:这是一份面向餐饮类应用开发者、数据分析学习者与菜谱网站搭建者的MySQL菜谱数据库资源,可用于美食推荐系统、菜谱检索平台或数据挖掘练习等场景。压缩包共4个文件,以3个sql脚本和1个txt说明为主,整体约52.48MB,其… · 2026/9/26 0:17:53
毕业设计实战:沙县小吃点餐系统从业务建模到部署避坑全指南 简介:沙县小吃点餐系统完整源码与毕业论文打包,面向计算机相关专业毕业设计或课程设计人群,可作为基于JavaWeb与MySQL的典型管理系统开发参考。资源覆盖管理员、用户及前台首页三个操作端,涉及小吃信息、门店信息、预约信息、订单… · 2026/9/26 0:53:03
QQ通讯组件做网页在线客服:临时会话原理与接入避坑指南 先说个很常见的场景:一个访客点开你网站上的“在线客服”,浏览器立刻唤起本机QQ,弹出一个聊天窗口,对方不用加好友、不用下载任何插件,直接就能和你对话。这种体验,其实就是“QQ通讯组件”在网页里的典型应… · 2026/9/26 0:52:57
Django大数据选品实战:直播带货商品评分模型与可视化全解析 我做直播电商相关系统也有几年了,去年带学生做毕业设计时,选了“基于Django大数据在直播带货商品选品中的应用”这个方向。这个题目乍一看有点“拼盘”:Django是大数据?选品用什么大数据?实际上把一个真实的小型数据决… · 2026/9/26 0:52:32
深入 Agent Sprite Forge 后处理引擎:洋红泛洪、连通域切帧与 GIF 编码原理 深入 Agent Sprite Forge 后处理引擎:洋红泛洪、连通域切帧与 GIF 编码原理 【免费下载链接】agent-sprite-forge Agent Skill for generating 2D sprite sheets and map, transparent PNG frames, and animated GIFs from prompts. 项目地址: https://gitcode.co… · 2026/9/26 0:52:32
命令行批量下载抖音无水印视频:从单条到主页归档实战 1. 为什么我放弃了图形工具,转回命令行做抖音视频归档做内容运营或者素材收集的朋友,大概率都遇到过这样的场景:刷到一个特别对味的账号,想把ta主页的视频全部存下来做参考,结果一条条点开、复制链接、打开解析网站、等… · 2026/9/26 0:52:26
UE5 GAS框架实战:构建可扩展ARPG战斗系统的核心方法 1. 先别急着写代码:ARPG战斗框架到底在解决什么问题如果你在UE里做过ARPG,一定体会过战斗系统写到后期的那种窒息感。普攻连段、闪避无敌帧、受击硬直、怪物AI、伤害数字、BUFF叠层、技能打断、镜头冲击……表面上每个功能都不难,但一旦它们互… · 2026/9/26 0:52:20
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46