---
title: 安装
description: 在 Fedora 上用 RPM 安装 Pika，或者从源码构建两半组件；含系统要求、构建依赖、运行时依赖，以及 Flatpak 的现状说明。
---

## 系统要求

- **GNOME 50 / Wayland** —— 目前实际验证过的只有这一个组合（Fedora 44）。
  扩展的 `metadata.json` 里也列了 48 和 49，但那是推断，没有实测。
- X11 会话不支持，也没有计划支持。

:::note
GNOME 扩展的 `shell-version` 是**白名单不是下限**：版本不在列表里的扩展会被直接
拒绝加载。所以新的 GNOME 发布当天 Pika 就会失效，直到我们补一行。
:::

## RPM（Fedora）

一个包同时装两半：

```bash
sudo dnf install ./pika-0.1.0-1.fc44.x86_64.rpm
```

装完扩展还需要手动启用，然后**重新登录**：

```bash
gnome-extensions enable pika@hungtcs.github.io
```

重新登录是必须的 —— GNOME Shell 不会为新装的扩展重新扫描扩展目录。

## 从源码构建

### 构建依赖

```bash
sudo dnf install glib2-devel gstreamer1-devel gstreamer1-plugins-base-devel
```

不需要 `gtk4-devel` / `libadwaita-devel`：录制进程没有任何窗口，
设置界面跑在扩展的 `prefs.js` 里，用的是宿主系统自带的 gjs 运行时。

### 运行时依赖

- `pipewiresrc` —— 由 `pipewire-gstreamer` 提供
- 一个 H.264 编码器 —— 有 VA 硬编就用 VA（`vah264lpenc` / `vah264enc`），
  否则回落到 `x264enc` / `openh264enc`

排查采集问题前先确认元件能解析：

```bash
gst-inspect-1.0 pipewiresrc
```

### 构建

```bash
# 录制进程
cargo build --release

# Shell 扩展（在 shell-extension/ 下）
pnpm install
pnpm build
```

`shell-extension/dist/` 的产物布局**就是**扩展的最终布局，直接软链到
`~/.local/share/gnome-shell/extensions/pika@hungtcs.github.io` 即可。

### 打 RPM

```bash
./scripts/build-rpm.sh
```

产物落在 `~/rpmbuild/RPMS/` —— 那是 rpmbuild 的惯例位置，没有改。

## Flatpak

Flatpak 是既定的分发目标，清单已经写好（`flatpak/io.github.hungtcs.Pika.yml`），
但**尚未实际验证**。门户采集在沙箱内外行为并不一致，断定可用之前要先在
Flatpak 构建下跑一遍。

另外 Flatpak 只能装应用 —— Shell 扩展必须装到宿主，没有办法一次装完两半。
