github / github/app

No update path for the Linux .deb: no APT repository and in-app updater does not appear to run

未关闭
#3,068 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
没有语言数据
星标
2.1k
派生
153
PR 合并指标
30 天内没有已合并 PR

描述

### Short summary

There appears to be no working update path for the Linux `.deb`. There is no APT repository, so `apt upgrade` will never see new versions, and in practice the in-app updater does not appear to deliver updates for `.deb` installs — the same app installed as an AppImage self-updates reliably. The result is that `.deb` users must periodically check the releases page and reinstall by hand, or switch to the AppImage.

This matters because the AppImage has its own problems (see #3060: it forces `GDK_BACKEND=x11` and bundles a conflicting glib), so users currently have to choose between **working updates** and **working rendering**.

### Affected version or release

`1.1.11` (`.deb`)

### Installation context

`.deb`

### What happened?

**No APT repository**

```console
$ grep -rl -i "copilot\|githubapp" /etc/apt/sources.list /etc/apt/sources.list.d/
# (nothing)
```

So there is no channel for `apt upgrade` / `unattended-upgrades` to use.

**AppImage self-updates; the `.deb` session shows no updater activity**

Comparing app logs on the same machine, same day. AppImage session (updater engages seconds after startup, full cycle):

```
2026-08-21T06:26:33 INFO github_app::platform::updater: Update available current_version="1.1.10" version="1.1.11"
2026-08-21T06:26:35 INFO github_app::platform::updater: Downloading update version=1.1.11
2026-08-21T06:27:07 INFO github_app::platform::updater: Update download finished
2026-08-21T06:27:09 INFO github_app::platform::updater: Update staged, waiting for user to restart
2026-08-21T06:54:50 INFO github_app::platform::updater: Staged update installed, restarting app version=1.1.11
```

`.deb` session, running ~90 minutes:

```console
$ grep -ci "updat" ~/.copilot/logs/github-app..log
0 # out of 556 log lines
```

**What I could not determine**

I want to be careful not to overstate this. The binary does contain updater code paths that look capable of elevating on Linux — strings include `Enter your password to install the update`, `pkexec`, `kdialog`, and `ReleaseManifestPlatform`. So the capability appears to exist.

Because `1.1.11` was the latest release at the time of testing, I cannot distinguish between:

- the updater being gated off for `.deb` builds, versus
- the updater checking, finding nothing, and simply not logging a no-op check.

What I can say is that the AppImage logs an update check promptly on startup while the `.deb` session logged nothing at all, and that as a user this has consistently not worked — the original reason I moved from `.deb` to AppImage was that `.deb` updates never arrived.

### Steps to reproduce

1. Install the `.deb` while a newer release exists.
2. Run the app and leave it open.
3. No update is offered, and no updater lines appear in `~/.copilot/logs/github-app..log`.
4. `apt upgrade` also never offers it, as no APT source is configured.

### Expected behavior

`.deb` installs should have some supported update path. In rough order of preference:

1. **Publish an APT repository.** This is the idiomatic answer for `.deb` distribution: it integrates with `apt upgrade` and `unattended-upgrades`, keeps the package manager as the source of truth, and needs no privilege elevation from the app itself. It's what Chrome, VS Code, and Docker do.
2. **Enable the in-app updater for `.deb`**, using the polkit prompt that already appears to be present, so the app can install a newly downloaded package with elevated rights.
3. **At minimum, notify.** Even without installing anything, showing "a new version is available — download here" would remove the need to poll the releases page manually.

If option 2 is chosen, please also fix #3065 first: the published `.deb` currently installs its files owned by `runner:runner` (uid 1001) rather than `root:root`, so any update that reinstalls the package will keep reintroducing that ownership.

### Additional context

The practical effect of this plus #3060 is that Linux users are pushed toward whichever set of defects they mind least:

| | AppImage | `.deb` |
| --- | --- | --- |
| Auto-updates | works | no observed path |
| Display backend | forced `GDK_BACKEND=x11` (#3060) | native Wayland |
| Compositing | software readback | GPU / DMA-BUF |
| Bundled glib conflicts | yes (#3060) | no |
| File ownership | n/a | `runner:runner` (#3065) |

Fixing the update path for `.deb` would make it a clean recommendation for Linux, which would in turn make the AppImage's issues much less pressing.

### Environment

| Field | Value |
| --- | --- |
| App version | 1.1.11 (`.deb`), compared against 1.1.9/1.1.10/1.1.11 AppImage sessions |
| OS | Ubuntu 24.04.4 LTS, GNOME 46 Wayland |

贡献指南

打开贡献指南

调研方向

首先跟踪报告中引用的 Linux 更新器路径,包括 ReleaseManifestPlatform,并将 .deb 的启动行为与 AppImage 的日志序列进行比较。检查 .deb 安装、pkexec 和现有更新通知路径之间的连接方式。对于 .deb 安装,完成受支持的更新路径的文档编写和验证即表示完成;如果使用软件包替换,则需要考虑 #3065。

由索引模型根据 Issue 内容生成。

评估

技术栈
linux
领域
desktop, operating-systems, release
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
活跃
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。