JayDoubleu/claude-desktop-fedora
GitHub: JayDoubleu/claude-desktop-fedora
将 Anthropic 官方 Claude Desktop 的 .deb 包原封解压部署到 Fedora/RHEL 上的安装脚本工具。
Stars: 0 | Forks: 0
# Fedora 上的 Claude Desktop
在 Fedora / RHEL 上运行**官方的** [Claude Desktop](https://code.claude.com/docs/en/desktop-linux) 应用程序。
Anthropic 为 Linux 发布的 Claude Desktop 是通过 apt 仓库分发的 `.deb` 包,其文档指出目前仅支持基于 Debian 的发行版(Fedora 和 RHEL 被列为“未来支持”)。不过,该应用程序本身并没有任何特定于 Debian 的内容:它是一个标准的 Electron 应用。本仓库获取 Anthropic 发布的原始、未经修改的 `.deb` 包,并像 `dpkg` 在 Ubuntu 上那样,将其负载部署到 Fedora 上。
没有重新构建,没有打过补丁的二进制文件,也没有第三方镜像。只是将官方原封未动的软件包解压到了它尚未正式支持的发行版上。
## 快速开始
```
./install.sh --launch
```
这会下载最新发布的版本,校验其校验和,安装 Fedora 运行时依赖,将应用程序部署到 `/usr` 目录下,并启动它。首次安装后,您可以从应用程序菜单启动 **Claude**,或者在终端中运行 `claude-desktop`。
要再次卸载它:
```
./uninstall.sh
```
## 安装程序的具体操作
1. **解析最新版本**:从 Anthropic 的 apt 索引(`.../apt/stable/dists/stable/main/binary-/Packages`)获取,并从官方的 `downloads.claude.ai` 主机下载对应的 `.deb` 包。
2. **校验 SHA256**:在对任何文件进行操作之前,根据索引中的值校验下载文件的 SHA256。
3. **解压 `.deb`**:使用 `ar` + `tar`(无需 `dpkg`),并将其负载安装到与 Ubuntu 相同的 `/usr` 路径下,这样启动器符号链接、`.desktop` 条目、图标以及 `claude://` 协议处理程序都能保持原样正常工作。
4. **保留 SUID-root `chrome-sandbox`**:完全按照原始发布时的原样保留该助手程序,从而确保 Chromium 的沙盒保持启用状态。
5. **安装 Fedora 对应的等效包**:通过 `dnf` 安装该软件包在 Debian 上的依赖对应的 Fedora 包(见下表)。如果软件包已经存在,则会静默跳过。
### 特意跳过的内容
官方的 `.deb` 包在其维护者脚本中执行了两个仅限 Debian 的步骤。这两个步骤在此处均被跳过,因为在 Fedora 上它们要么毫无用处,要么是错误的:
- **AppArmor "unconfined userns" 配置文件。** 这只是为了绕过 Ubuntu 24.04+ 的限制而存在的,Ubuntu 设置了 `kernel.apparmor_restrict_unprivileged_userns=1`,如果不这样做,Chromium 的命名空间沙盒就会失效。Fedora 并不限制非特权用户命名空间,因此沙盒开箱即用,该配置文件将是一个无法解析的无用代码。
- **apt 仓库 + 签名密钥注册。** Fedora 没有 apt。更新通过重新运行 `./install.sh` 来处理(见下文)。
## 依赖项
以下是 `.deb` 包本身的依赖项及其对应的 Fedora 软件包名称。在原生的 Fedora Workstation 上,几乎所有必需的依赖都已经安装好了,因此 `dnf` 步骤通常执行极快甚至无操作。传递 `--no-deps` 参数可完全跳过此步骤。
**必需的**(`.deb` 包的 `Depends`,会自动安装):
| Debian 软件包 | Fedora 软件包 | 提供的功能 |
| --- | --- | --- |
| `libgtk-3-0` | `gtk3` | GTK 3 UI 工具包 |
| `libnss3` | `nss` | TLS / 证书处理 |
| `libnotify4` | `libnotify` | 桌面通知 |
| `libatspi2.0-0` | `at-spi2-core` | 无障碍桥接 |
| `libdrm2` | `libdrm` | Direct Rendering Manager (GPU) |
| `libgbm1` | `mesa-libgbm` | GPU 缓冲区管理 (GBM) |
| `libxcb-dri3-0` | `libxcb` | XCB / DRI3 |
| `libsecret-1-0` | `libsecret` | Secret Service (凭证访问) |
| `libxtst6` | `libXtst` | X11 测试/记录 (输入) |
| `libuuid1` | `libuuid` | UUID 生成 |
| `libc6` | `glibc` | C 语言库 (始终存在) |
| `xdg-utils` | `xdg-utils` | `xdg-open`, MIME 助手 |
| `xdg-desktop-portal` | `xdg-desktop-portal` | 桌面 portals (文件对话框等) |
| `xdg-desktop-portal-gtk\|-gnome\|-kde` | `xdg-desktop-portal-gtk` (+ `-gnome` / `-kde`) | 您桌面的 portal 后端 |
| `trash-cli\|gvfs\|...` | `gvfs` | “移至回收站” |
**推荐的**(`.deb` 包的 `Recommends`,默认也会安装):
| Debian 软件包 | Fedora 软件包 | 提供的功能 |
| --- | --- | --- |
| `libasound2 \| pulseaudio` | `alsa-lib` | 音频输出 |
| `libayatana-appindicator3-1` | `libayatana-appindicator-gtk3` | 系统托盘图标 |
| `ca-certificates` | `ca-certificates` | 系统 CA 信任库 |
| `gnome-keyring \| kwalletd` | `gnome-keyring` | Secret Service 的 Keyring 后端 |
**Cowork VM 技术栈**(`Recommends`;仅在使用 `--with-cowork` 时):
| Debian 软件包 | Fedora 软件包 | 提供的功能 |
| --- | --- | --- |
| `qemu-system-x86` | `qemu-kvm` | Cowork 沙盒虚拟机 |
| `ovmf` | `edk2-ovmf` | Cowork 虚拟机 UEFI 固件 |
| `virtiofsd` | `virtiofsd` | Cowork 虚拟机共享文件系统 |
**GNOME 额外组件**(在运行 GNOME 时自动添加):
| Fedora 软件包 | 提供的功能 |
| --- | --- |
| `gnome-shell-extension-appindicator` | 让 GNOME 能够正常显示托盘图标(参见 [托盘图标](#fedora-specific-notes-and-caveats)) |
## 更新
Linux 应用程序不会自动更新,并且在 Fedora 上没有 apt 仓库可供拉取。要更新,只需再次运行安装程序即可:
```
./install.sh
```
它始终会获取最新发布的版本并原地重新安装。在应用程序运行期间执行此操作是安全的:旧二进制文件会继续为正在运行的进程提供服务,直到您将其重启,这就像 `dpkg` 升级一样。
## 选项
`install.sh`:
| 标志 | 效果 |
| --- | --- |
| `--launch` | 安装后启动应用程序。 |
| `--no-deps` | 跳过 `dnf` 依赖项安装步骤。 |
| `--with-cowork` | 同时安装 Cowork 虚拟机技术栈(`qemu-kvm`, `edk2-ovmf`, `virtiofsd`)。 |
| `--deb FILE` | 从本地 `.deb` 文件安装,而不是下载。 |
| `--version X.Y.Z` | 从 apt 索引中安装特定版本。 |
`uninstall.sh`:
| 标志 | 效果 |
| --- | --- |
| `--dry-run` | 显示将要移除的内容,但不进行任何更改。 |
| `--purge` | 同时删除 `~/.config/Claude` 下的本地数据。 |
## 验证可用
- **Fedora Linux 44** (Workstation),Wayland 上的 GNOME,x86_64。
- Claude Desktop `1.17377.0`。
- 聊天、代码 和 Cowork 标签页均可用;当存在 `qemu`/`ovmf`/`virtiofsd` 时,Cowork 虚拟机助手会启动。
## 特定于 Fedora 的说明与注意事项
- **SELinux(强制模式)运行正常。** 该应用程序在您正常的 `unconfined_t` 域中运行,该域已允许 V8 的 JIT 所需的 `execmem`。
- **Wayland。** Electron 默认通过 XWayland 进行渲染,这可以正常工作。如需原生 Wayland,您可以使用 `ELECTRON_OZONE_PLATFORM_HINT=auto claude-desktop` 命令启动。
- **快捷输入 全局热键**在原生 Wayland 上需要您桌面的 GlobalShortcuts portal 支持(这是上游 Linux-beta 的限制,并非 Fedora 特有)。
- **托盘图标。** 该应用程序通过 AppIndicator 绘制其托盘图标。安装程序会引入 `libayatana-appindicator-gtk3` 库,而在 GNOME 上,它还会安装并启用 AppIndicator Shell 扩展(`gnome-shell-extension-appindicator`),因为 GNOME 需要该扩展才能完全显示 status-notifier 图标。由于 GNOME 仅在登录时扫描新安装的扩展,因此在 Wayland 上,您必须在首次安装后**注销并重新登录一次**;如果仍未显示,请使用 `gnome-extensions enable appindicatorsupport@rgcjonas.gmail.com` 手动启用它。KDE 和大多数其他桌面环境仅需该库即可显示图标。
- **Linux beta 版本暂不支持**(任何发行版):Computer Use 和 听写功能。
## 安全性
下载主机是 Anthropic 自己的(`downloads.claude.ai`,HTTPS),并且在安装之前,已根据仓库的软件包索引对 `.deb` 文件进行了校验和验证。为了获得完整的加密信任链,您可以在信任该索引之前,额外使用 Anthropic 的发布签名密钥(指纹为 `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`)验证 apt 仓库的 `InRelease` 签名。
## 路线图
- 原生的 `.rpm` 包(理想情况下还包括 COPR),以便通过 `rpm`/`dnf` 跟踪安装,获得适当的依赖项解析,并通过包管理器进行卸载。本仓库的脚本正是为此奠定基础。
## 许可证
本仓库中的脚本和文档基于 [MIT 许可证](LICENSE) 发布。这仅涵盖此处的打包工具,而不涵盖 Claude Desktop 本身。
## 免责声明
非官方版本。本仓库不包含任何 Anthropic 的代码或二进制文件;它仅在安装时下载官方软件包并解压。Claude Desktop 本身归 Anthropic 所有,受其自身的许可证和条款约束。
标签:Cutter, Electron, Fedora, RHEL, 包管理, 安装脚本, 系统工具