news 2026/9/27 2:03:11

GitHub Desktop Linux 分叉版安装指南:APT/RPM 软件源配置、跨发行版安装与常见问题排查

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GitHub Desktop Linux 分叉版安装指南:APT/RPM 软件源配置、跨发行版安装与常见问题排查
  • 开发工具
  • 桌面应用

【免费下载链接】desktop

Fork of GitHub Desktop to support various Linux distributions

项目地址:https://gitcode.com/gh_mirrors/des/desktop
点击查看免费下载

本指南基于当前仓库(desktop的 Linux 支持分叉)的官方 README,系统讲解该分叉的定位、三种发布格式(AppImage / Debian / RPM)、Debian/Ubuntu 与 Red Hat 系发行版的软件源配置与安装命令、Arch Linux 等跨发行版方案,并结合仓库源码解释打包链路与已知问题的排查方法。读完本文,你将掌握在主流 Linux 发行版上正确配置软件源、安装并更新 GitHub Desktop,以及独立处理白屏、组织仓库访问受限等典型故障的完整能力。

仓库定位:为 Linux 而生

当前仓库是上游desktop/desktop项目之上叠加特定补丁的 Linux 分叉,目标是让原本主要面向 Windows/macOS 的 GitHub Desktop 能够在各类 Linux 发行版上正常使用。README 中明确给出了技术栈:

  • 基于 Electron 的桌面应用框架;
  • 主体使用TypeScript编写;
  • 界面层使用React。

这些信息在仓库中可以得到印证:应用包元数据 app/package.json 声明了name: github-desktop、productName: GitHub Desktop,并依赖dugite(Git 桥接库)、keytar-forked(系统密钥环访问)等与 Git 操作、凭据存储密切相关的组件;构建脚本与依赖清单见 package.json。换句话说,这是一个"官方产品、社区维护 Linux 版"的典型模式,安装与使用方式也因此与 Windows/macOS 版有所差异。

发布物与软件源架构

该分叉会为各 Linux 发行版发布三类安装产物:

格式后缀适用场景
AppImage.AppImage跨发行版免安装运行,单文件便携
Debian.debDebian / Ubuntu 及衍生系统
RPM.rpmRed Hat / CentOS / Fedora / OpenSUSE 等 RPM 系系统

从源码看,Linux 打包在 script/package.ts 的packageLinux()中完成,整个链路依次为:

  1. 修正chrome-sandbox的权限位(chmod 0o4755),确保 Electron 沙箱在 Linux 下正常工作;
  2. 调用 packageElectronBuilder 通过electron-builder产出AppImage(其目标与 MIME 声明配置见 script/electron-builder-linux.yml,其中注册了x-scheme-handler/x-github-client、x-scheme-handler/x-github-desktop-auth等协议处理器,用于拉起 OAuth 登录流程);
  3. 调用 packageDebian 生成.deb包;
  4. 调用 packageRedhat 生成.rpm包;
  5. 最后为所有安装产物生成 SHA-256 校验和(checksums.txt及每个文件的.sha256文件)。

值得注意的依赖细节:.deb包声明了libcurl3 | libcurl4、libsecret-1-0、gnome-keyring三个运行时依赖(见 script/package-debian.ts),.rpm包则声明(libcurl or libcurl4)、libsecret、gnome-keyring(见 script/package-redhat.ts)。这意味着安装后系统必须具备这些库与 GNOME 密钥环服务,否则登录凭据可能无法保存。

Debian / Ubuntu:配置 APT 软件源

Debian/Ubuntu 用户有两个 APT 源可供选择,二者均基于本仓库的 release 自动生成,只需添加其一(两个源均托管在美国,选择延迟更低或网络可达性更好的即可)。

选项一:@shiftkey 软件源

wget -qO - https://apt.packages.shiftkey.dev/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/shiftkey-packages.gpg > /dev/null sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/shiftkey-packages.gpg] https://apt.packages.shiftkey.dev/ubuntu/ any main" > /etc/apt/sources.list.d/shiftkey-packages.list'

选项二:@mwt 镜像源

wget -qO - https://mirror.mwt.me/shiftkey-desktop/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/mwt-desktop.gpg > /dev/null sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mwt-desktop.gpg] https://mirror.mwt.me/shiftkey-desktop/deb/ any main" > /etc/apt/sources.list.d/mwt-desktop.list'

两条命令分别完成两件事:导入并去装甲 GPG 公钥(dearmor 后以 keyring 文件形式存放),以及写入带signed-by与arch=amd64约束的源定义。其中signed-by指定校验该源所使用的 keyring 路径,是 Debian 11+ 安全推荐的源配置写法;arch=amd64限定仅从该源拉取 amd64 架构包。

安装

源配置完成后执行:

sudo apt update && sudo apt install github-desktop

apt update会读取新源并刷新索引,随后即可安装名为github-desktop的软件包。后续升级通过常规sudo apt upgrade即可自动获得新版本。

Red Hat / CentOS / Fedora:配置 RPM 软件源

RPM 系同样提供两个源,二选一即可。安装命令因包管理器而异:yum(老版本 RHEL/CentOS)、dnf(Fedora/RHEL 8+)、zypper(OpenSUSE/SUSE)。

选项一:@shiftkey 软件源

sudo rpm --import https://rpm.packages.shiftkey.dev/gpg.key sudo sh -c 'echo -e "[shiftkey-packages]\nname=GitHub Desktop\nbaseurl=https://rpm.packages.shiftkey.dev/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://rpm.packages.shiftkey.dev/gpg.key" > /etc/yum.repos.d/shiftkey-packages.repo'

选项二:@mwt 镜像源

sudo rpm --import https://mirror.mwt.me/shiftkey-desktop/gpgkey sudo sh -c 'echo -e "[mwt-packages]\nname=GitHub Desktop\nbaseurl=https://mirror.mwt.me/shiftkey-desktop/rpm\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://mirror.mwt.me/shiftkey-desktop/gpgkey" > /etc/yum.repos.d/mwt-packages.repo'

这里的rpm --import导入 GPG 密钥,repo 文件中gpgcheck=1表示校验包签名,repo_gpgcheck=1表示校验仓库元数据签名,gpgkey指向校验所用公钥,baseurl为仓库地址。

安装

# 若使用 yum 作为包管理器 sudo yum install github-desktop # 若使用 dnf 作为包管理器 sudo dnf install github-desktop # 若使用 zypper 作为包管理器 sudo zypper ref && sudo zypper in github-desktop

zypper ref刷新仓库索引后再执行安装,与 APT 的apt update作用一致。

OpenSUSE:RPM 源配置

OpenSUSE 使用与上述 RPM 相同的 GPG 密钥与仓库内容,仅将 repo 文件写入/etc/zypp/repos.d/目录(zypper 的仓库目录)。

选项一:@shiftkey 软件源

sudo rpm --import https://rpm.packages.shiftkey.dev/gpg.key sudo sh -c 'echo -e "[shiftkey-packages]\nname=GitHub Desktop\nbaseurl=https://rpm.packages.shiftkey.dev/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://rpm.packages.shiftkey.dev/gpg.key" > /etc/zypp/repos.d/shiftkey-packages.repo'

选项二:@mwt 镜像源

sudo rpm --import https://mirror.mwt.me/shiftkey-desktop/gpgkey sudo sh -c 'echo -e "[mwt-packages]\nname=GitHub Desktop\nbaseurl=https://mirror.mwt.me/shiftkey-desktop/rpm\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://mirror.mwt.me/shiftkey-desktop/gpgkey" > /etc/zypp/repos.d/mwt-packages.repo'

安装

sudo zypper ref && sudo zypper in github-desktop

其他发行版与跨发行版方案

对于不在上述范围内的发行版,README 提供了多种替代安装途径:

Arch Linux(AUR)

Arch 用户可从 AUR 安装github-desktop-bin包。前提条件:系统必须安装gnome-keyring,且其守护进程需在登录时或 X server 启动时拉起。通常显示管理器(Display Manager)会自动处理;若未自动启动,参考 Arch Wiki 中"在 GNOME 之外使用密钥环"的说明,否则会出现无法保存登录凭据的问题。这与前面.deb/.rpm包中显式声明gnome-keyring依赖的原因一致——GitHub Desktop 通过系统密钥环(keytar)存取 OAuth 令牌。

Flatpak 与 AppImage

GitHub Desktop 还有跨发行版的Flatpak包(flathub 上的io.github.shiftey.Desktop)以及AppImage格式(可在 AppImage 目录中检索GitHubDesktop)。AppImage 无需安装、解包即用,适合不愿引入软件源的场景;Flatpak 则提供沙箱隔离与统一更新机制。

deb-get

Debian/Ubuntu 用户还可以借助deb-get(一个面向第三方 GitHub release 的 apt 前端工具)直接从本仓库安装:

deb-get install github-desktop

deb-get会抓取仓库发布页中的.deb产物并交由本地包管理,适合希望绕过固定源、直接跟随 release 更新的场景。

数据目录与日志

安装方式不同,GitHub Desktop 的用户数据目录也有所差异(详见 docs/installation.md):

  • Linux(AppImage / Debian / RPM):~/.config/GitHub Desktop/——存放用户级配置数据,首次启动时自动创建;
  • 常规运行日志位于数据目录下的logs子目录,按日期命名,格式为YYYY-MM-DD.desktop.production.log;
  • 安装/更新过程的日志则由更新框架单独管理,排查安装失败时可优先查看对应日志。

已知问题与排查

README 指向了完整的 已知问题文档,其中 Linux 相关条目(见 docs/known-issues.md#linux)最常被用户遇到,这里摘录四条并给出处置方法:

1. PackageCloud 软件源已停用

旧的 PackageCloud feed 已关闭。若安装或更新时出现与其相关的报错,应清理旧配置,改用上文的新源:

# APT 配置清理 sudo rm /etc/apt/trusted.gpg.d/shiftkey-desktop.asc sudo rm /etc/apt/sources.list.d/packagecloud-shiftkey-desktop.list # RPM 配置清理(示例,按实际路径执行) sudo rm /etc/apt/sources.list.d/packagecloud-shiftkey-desktop.list

清理细节可参考 已知问题文档中的 PackageCloud 迁移说明。

2. 启动白屏

Electron 默认启用硬件加速,部分显卡或虚拟化环境(如 Parallels Desktop)下硬件加速不可用,会导致应用启动成功但界面白屏。解决办法:设置环境变量GITHUB_DESKTOP_DISABLE_HARDWARE_ACCELERATION为任意值后重新启动,即可关闭硬件加速。例如:

GITHUB_DESKTOP_DISABLE_HARDWARE_ACCELERATION=1 github-desktop

3. 无法访问组织仓库

GitHub Desktop 本质是一个 OAuth 应用,而本分叉使用的开发版 OAuth 应用权限与 Windows/macOS 版不完全一致,具体表现包括"Clone a Repository"视图不显示全部组织仓库、向组织仓库推送时收到通用错误。根因是组织默认开启OAuth App access restrictions,拦截了本分叉所用的 GitHub Desktop 开发应用。解决办法:联系组织管理员在组织设置中批准 GitHub Desktop 开发应用的访问权限(尚未请求过授权的用户需先发起组织审批请求)。

4. Shell 检测异常(卡在 GNOME Terminal)

在非 GNOME 桌面环境下,应用可能无法正确设置 shell 环境,即便在设置中已选择其他终端,启动 shell 时仍可能报cannot read property 'path' of undefined。文档给出的两个临时方案:

  • 安装另一个不同的终端,切换到目标终端再切回,最后卸载临时终端以触发环境重写;
  • 打开应用开发者工具,逐步检查并修正 shell 设置的 JS 调用。

许可证与商标声明

本仓库以 MIT 许可证 授权,但MIT 授权不涵盖 GitHub 的商标(包括 logo 设计)。GitHub 保留其商标与版权的全部权利;logo 资源位于 app/static/logos 目录。使用 GitHub 官方 logo 时需遵守 GitHub 的 logo 使用指南。

小结

围绕"Linux 上如何安装 GitHub Desktop",本文从仓库定位出发,覆盖了 APT、RPM、zypper 三种包管理器的完整源配置命令,以及 AUR、Flatpak、AppImage、deb-get 四条替代路径,并结合 script/package.ts 等源码解释了安装包从构建到校验的产出过程,最后给出四类高频问题的处置办法。对绝大多数 Linux 用户而言,按发行版选择对应软件源执行安装即可;若遇到凭据无法保存、启动白屏或组织仓库不可见,本文的排查清单应当能覆盖常见场景。

  • 开发工具
  • 桌面应用

【免费下载链接】desktop

Fork of GitHub Desktop to support various Linux distributions

项目地址:https://gitcode.com/gh_mirrors/des/desktop
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 2:02:55

集团网站信息建设情况3个避坑点与注意事项

集团网站信息建设情况3个避坑点与注意事项 找建站公司最怕什么?不是技术不行,而是报价虚高、隐形消费多。很多集团在做【集团网站信息建设情况】梳理时,还没开工就被坑了第一笔钱。今天把这套流程拆碎了讲,帮你避开那些“高价陷阱”,把每一分钱都花在刀刃上。 概念速懂:集团站与单站的核心差异…

作者头像 李华
网站建设 2026/9/27 2:02:38

织梦通用企业网站模板怎么选?避开备案坑的3个实操要点

织梦通用企业网站模板怎么选?避开备案坑的3个实操要点 备案流程一头雾水?很多老板在接手网站项目时,第一反应不是看代码,而是盯着“ICP备案”这四个字发呆。其实,备案不是玄学,而是与你的服务器位置、域名持有者信息、甚至你选的模板后台结构紧密相关的硬指标。选错织梦通用企业网站模板,往往会导致后期备案受阻…

作者头像 李华
网站建设 2026/9/27 2:02:33

南宁手机做网站公司速查手册:3步搞定零代码建站

南宁手机做网站公司速查手册:3步搞定零代码建站 自己不会代码,但老板明天就要看官网?别慌,这篇速查手册就是为你准备的。在南宁找手机做网站公司,最怕的就是被忽悠交智商税,或者交付一堆你看不懂的代码。 很多初学者卡在第一步,以为建站必须懂 Python 或 Java,其实现在 80%…

作者头像 李华
网站建设 2026/9/27 2:02:26

3步搞定wordpress前台修改密码,顺带聊聊性能优化与建站成本

3步搞定wordpress前台修改密码,顺带聊聊性能优化与建站成本 模板网站太丑不够用?很多老板觉得买个现成模板改改就行,结果上线后发现页面加载慢如蜗牛,后台操作还频频出错,这时候才意识到,光看颜值不行,得看内核。很多用户卡在 wordpress前台修改密码…

作者头像 李华
网站建设 2026/9/27 2:02:19

告别古法编程:嵌入式软件开发现代化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 2:02:06

张家口网站建设哪家服务好:图解步骤教你防黑与转化

张家口网站建设哪家服务好:图解步骤教你防黑与转化 你的官网昨晚突然挂满博彩广告,后台密码改了也拦不住,访问速度慢得像蜗牛?这种“网站被黑挂马不知道怎么办”的恐慌,是张家口本地企业建站后最大的噩梦。很多老板问“张家口网站建设哪家服务好”,其实好不好的标准,不看PPT做得多花哨,而看他们能不能用…

作者头像 李华