Claude Code 成功让 Adobe Lightroom 在 Linux 上运行

Lobsters Hottest 工具

摘要

一个 GitHub 仓库记录了如何使用 Wine 在 Linux 上运行 Adobe Lightroom CC,其中包含由 Claude Opus 4.7 通过 Claude Code 创建的脚本和补丁。

<p><a href="https://lobste.rs/s/l34yuj/claude_code_managed_get_adobe_lightroom">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/05/17 13:24

sander110419/lightroom-cc-on-linux 来源:https://github.com/sander110419/lightroom-cc-on-linux # 在 Linux 上通过 Wine 运行 Adobe Lightroom CC 状态: ✅ 截至 2026-05-16,Wine 11.8 staging,Lightroom CC 9.3.1 正常工作。 本仓库记录了如何在 Linux 上通过 Wine 安装和运行 Adobe Lightroom CC(云同步照片应用,有时称为“Lightroom Desktop”——不是 Lightroom Classic)。 Lightroom 编辑面板在 Wine 中运行 ## 你能获得什么 - 完整的 Creative Cloud 桌面应用可在 Wine 下工作(登录、应用面板、从目录安装其他 Adobe 应用) - Lightroom CC 可启动,显示云同步照片库,编辑模块渲染正常,包含所有面板(光、颜色、效果、细节、光学、几何……) - 移除/修复工具正常工作——画笔、蒙版、应用(截至 2026-05-16;相对于本指南的早期草稿,这需要额外的 Media Foundation 补丁——参见 GUIDE.md 第 6.5 节) ## 仍然不工作的地方 请参见 KNOWN_ISSUES.md。简而言之:某些特定对话框(如“新增功能”)可能崩溃,一些高级 GPU 加速功能可能不完全—但核心编辑工作流是正常的。 ## 前提条件 - 64 位 Linux 发行版,内核 6.x 或更新 - Wine 11.8 staging 或更新(wine --version 应显示 wine-11.8 (Staging) 或类似) - winetricks 20240105 或更新 - 具有 Vulkan 驱动的 NVIDIA、AMD 或 Intel GPU(我们测试了 NVIDIA,但 DXVK 适用于所有三者) - 包含 Lightroom CC 的有效 Adobe Creative Cloud 订阅 - 约 10 GB 可用磁盘空间用于前缀 + Adobe 安装 - mingw-w64 用于构建存根 DLL(sudo apt install mingw-w64) - 如果要从源码重建修补后的 d2d1.dll 而不是使用我们预构建的版本,则需要 build-essentialgit 和 wine 构建依赖 ## 快速开始 bash git clone https://github.com/sander110419/lightroom-cc-on-linux.git cd lightroom-cc-on-linux ./scripts/setup.sh # 约30分钟,主要是下载 然后从(登录到您的 Adobe 账户)下载 ACCCx*.zip,将其放入 installers/,并运行: bash ./scripts/install-cc.sh ./scripts/install-lightroom.sh ./scripts/run-lightroom.sh ## 工作原理 请参见 GUIDE.md 获取完整指南——每个修复的解释,它所解决的 wine 差距,以及如何回滚。六个不明显的部分: 1. DXVK 虚拟组合交换链,以便 WebView2(Adobe 的 Electron UI 外壳)能够渲染。 2. 禁用 AdobeGrowthSDK.dll——Adobe 的 A/B 测试库调用了未实现的 SetThreadpoolTimerEx 并导致整个 CC 进程树崩溃。 3. 修补的 d2d1.dll,注册了 Lightroom 所需的 CLSID_D2D1ColorManagement 内置效果。构建说明在 stubs/sources/ 中。 4. 修补的 mfplat.dll,带有 MFCreateSampleCopierMFT 转发器,使得移除/修复工具不再崩溃。注意:修补后的 DLL 必须放入两个位置——system32/ Adobe 捆绑的副本 Program Files/Adobe/Adobe Lightroom CC/mfplat.dll,因为 Adobe 自带了它的版本,优先级高于 wine 的版本。 5. 小型存根 DLL,用于 NDFAPI.DLLwkscli.dllext-ms-win-uiacore-l1-1-2.dll(wine 11.8 未提供这些,但 Lightroom 静态导入它们)。 6. 小写符号链接,针对 Adobe 捆绑的 DLL,以便 wine 区分大小写的 PE 加载器能找到它们。 ## 本仓库是如何构建的 整个仓库——脚本、存根 DLL 源码、修补后的 DLL、文档、指南以及本 README——均由 Claude Opus 4.7 (https://www.anthropic.com/claude/opus) 自主研究、编写和验证。 具体来说,是模型 claude-opus-4-7 通过 Claude Code CLI 代理完成的。 人类贡献者 (sander110419 (https://github.com/sander110419)) 设定了目标(“让 Lightroom CC 在 Linux 上运行,然后发布可重现的配方”)并回答了偶尔的澄清问题;其余工作由 Claude 完成。 代理的工作循环: 1. 读取崩溃转储、Wine 日志、Adobe 二进制文件(使用 winedumpobjdump、原始 PE 解析(Python))。 2. 对比系统中每个相关 mfplat.dll 的导出表——wine 内置版、Proton 版、Adobe 捆绑版——与 winegstreamer 延迟加载的导入,以精确定位缺失的单个函数(MFCreateSampleCopierMFT)。 3. 直接修补二进制文件(参见 scripts/patch_mfplat.py):追加一个新的 PE 节,其中包含一个新的导出目录,包含所有原始导出以及一个指向 mf.MFCreateSampleCopierMFT 的转发器。 4. 在运行的 Lightroom 中验证:使用 ImageMagick 的 import 截图,通过像素检测(Pillow)算法定位 UI 元素,使用 xdotool 驱动鼠标点击移除工具,并观察是否弹出窗口或崩溃转储出现在 ~/AppData/LocalLow/Adobe/CRLogs/。当点击由于像素偏差(图标坐标检测多次迭代后仍差几个像素)而失败时,代理重新截图、重新运行检测器、调整并重试——全部自主完成。 5. 通过失败的验证发现:修补后的 system32/mfplat.dll 根本没有被加载,因为 Adobe 在 Lightroom 安装目录中提供了自己的 mfplat.dll,而 Windows DLL 搜索顺序优先考虑应用程序目录。将修补后的 DLL 复制到 Adobe 安装目录后,重新启动,点击移除工具流程,通过截图确认“以您想要的方式移除”出现,“立即尝试”点击进入画笔 UI,画笔笔触已注册,“移除”按钮应用且未崩溃。 6. 记录有效的内容,保存内存笔记供下次会话使用,以便将 Adobe 捆绑 DLL 的陷阱记录为一个通用的可迁移经验(其他 Adobe 应用可能也有同样的问题)。 二进制文件中没有 LLM 的模糊表述:stubs/binaries/ 中的每个修补 DLL 都是代理在发布时验证可在 Lightroom 前缀中工作的逐比特副本。GUIDE.md 中的 md5 值与仓库中的字节一致。 📖 完整的构建历史时间线——每个 Claude 会话的每一步、每个死胡同、每个差异、每个由截图驱动的 UI 验证——都在 history_methodology.md 中。约 1750 行,分为两部分: - 第一部分从实时日志文档、截图和 wineprefix 取证中重构了早期会话(DXVK 设置、SetThreadpoolTimerEx 级联、D2D 效果 CLSID 扫描、d2d1 ColorManagement 补丁、三类缺失 DLL 修复)。早期的代理已不存在,但它们留下了足够的记录。 - 第二部分是移除/修复工具修复和发布流程的实时记录,由代理在发生时编写。如果想了解自主多天调试的内部视图,请阅读它。 ## 致谢 - PhialsBasement (https://github.com/PhialsBasement/wine-adobe-installers) — 带有补丁的 wine 分支,修复了 CC 安装程序的 mshtml/msxml3 问题。我们最终没有使用其二进制文件,但他们的工作证明了安装程序路径是可行的。 - Wine 项目 (https://www.winehq.org/) 提供了修补 DLL 所基于的 d2d1、mfplat 和 mf 实现(LGPL-2.1+)。 - Proton GE (https://github.com/GloriousEggroll/proton-ge-custom) 提供了具有额外 MF 函数体的 mfplat 基线,修补副本继承自它。 - sander110419 (https://github.com/sander110419) — 设定目标、审查代理的工作、提供 Adobe 订阅并托管此仓库。 - Claude Opus 4.7 (claude-opus-4-7,通过 Claude Code (https://claude.com/claude-code)) — 进行了数小时的调试,编写了补丁,运行了由截图驱动的 UI 验证,并撰写了本仓库中的每个文件。 ## 许可证 我们的脚本和存根使用 MIT 许可。修补后的 d2d1.dllmfplat.dll 是 wine 的衍生作品,保持 LGPL-2.1+——完整的 wine 源码位于 。Adobe 的二进制文件仍归 Adobe 所有;本仓库不重新分发它们中的任何一个。

相似文章

Darktable

Hacker News Top

darktable 是一款开源摄影工作流应用和原始图像处理软件,为摄影师提供虚拟灯箱和暗房,管理数字底片,并支持利用 GPU 加速进行非破坏性原始图像处理。

Diolinux/PhotoGIMP

GitHub Trending (daily)

PhotoGIMP 是一个免费的社区补丁,将 GIMP 转换成类似 Adobe Photoshop 的布局,包括重新组织的工具和键盘快捷键,专为从 Photoshop 过渡的用户设计。