Idealisan

在 ARM64 Linux 上编译 Telegram Desktop 6.8.3 Beta(Qt 版本)记录

本文记录一次在 ARM64 Linux 环境下编译最新版 Beta 版 Telegram Desktop(Qt 版本)的过程与踩坑情况。
编译日期为 2026 年 5 月 24 日,目标平台为 ARM64 Debian Linux,目标产物为可独立运行的 Telegram Desktop 二进制。

编译版本为:

  • Telegram Desktop
  • Qt 桌面版本
  • ARM64 / AArch64 Linux
  • 编译目标:Debian Linux
  • 最终运行环境测试:postmarketOS 中的 Debian Docker 桌面环境

一、实际使用的硬件配置

本次编译使用的是 ARM64 云服务器,具体配置如下:

项目配置
CPU4 核 ARM64
RAM16GB
磁盘100GB
Swap额外 6GB
系统Debian Linux

虽然最终成功完成编译,但整体资源其实比较紧张。

其中最主要的问题来自:

  • 内存不足
  • 磁盘空间不足

二、编译过程中遇到的资源问题

1. RAM 不足

16GB RAM 实际上只能算“勉强够用”。

为了避免:

  • Docker 编译阶段 OOM
  • 链接阶段崩溃
  • prepare 阶段内存耗尽

最终额外开启了约 6GB 的交换内存(Swap)。

整体上:

  • 16GB RAM + 6GB Swap 可以完成编译
  • 但已经属于“边缘成功”

如果不增加 Swap,很容易在编译后期失败。


2. 磁盘空间不足

磁盘空间压力比预期更大。

在:

  • 操作系统
  • Docker 镜像
  • 编译缓存
  • 源代码
  • 中间构建产物
  • Swap 文件

全部占用之后,100GB 磁盘几乎被吃满。

期间还额外进行了:

  • Docker 构建缓存清理

释放了大约 8GB 以上空间。

即便如此,在编译峰值阶段,磁盘剩余空间依然只有约 5GB。

因此:

100GB 虽然理论上能完成,但已经非常极限。


三、推荐硬件配置

结合这次实际经验,更推荐如下配置。

最低可用配置(成本优先)

项目推荐
CPU4 核 ARM64
RAM16GB
Swap5~10GB
磁盘≥120GB

这是“可以稳定完成编译”的最低推荐方案。

但前提是:

  • 关闭 LTO
  • 注意缓存清理
  • 避免后台额外占用资源

更理想的配置(推荐)

项目推荐
CPU4~8 核 ARM64
RAM24GB 或更高
磁盘200GB

这种配置下:

  • 不需要频繁清理缓存
  • 可以保留 LTO
  • Docker 空间压力明显降低
  • 链接阶段更稳定

整体体验会好很多。


四、编译耗时

prepare 阶段

prepare 脚本阶段耗时较长。

主要是:

  • 拉取依赖
  • 编译第三方库
  • Docker 构建环境准备

大约需要:

  • 1 小时以上

Telegram 本体编译阶段

后续 Docker 内真正编译 Telegram Desktop:

  • 也需要约 1 小时以上

因此整体耗时:

  • 大约 2~3 小时

相比之前编译:

  • Windows x86 版本
  • macOS 版本

这次 ARM64 Linux 的编译速度反而略快一些。


五、做过的源码与编译配置调整

本次实际上只修改了两处内容。


1. 关闭 LTO

为了节约:

  • 磁盘空间
  • 链接阶段资源消耗

关闭了:

  • LTO(Link Time Optimization)

这是这次能够在 100GB 磁盘内成功完成编译的重要原因之一。

如果开启 LTO:

  • 磁盘占用会进一步增加
  • 链接阶段 RAM 压力也会更高

因此在资源有限时,关闭 LTO 是比较现实的方案。

当然:

如果硬件资源充足,仍然推荐开启 LTO。


2. 修复 RNNoise 在 ARM 上的编译问题

编译过程中唯一真正涉及源码的问题,是:

  • RNNoise 库默认 checkout 的版本
  • 在 ARM64 上无法正常编译

默认脚本会 checkout 到一个固定 tag(印象中类似:

  • v0.2
  • 或 v2.x

具体版本号已经记不太清)。

但该版本在 ARM 平台上存在问题。

最终处理方式是:

  • 去掉 checkout 的 tag/版本限制
  • 直接使用主分支(master/main)

之后即可正常完成编译。

除了这一处之外:

  • Telegram 本身源码
  • 编译配置

都没有出现明显问题。

后续遇到的失败基本全部来自:

  • RAM 不足
  • 磁盘不足

而不是代码本身的问题。


六、最终编译产物

最终成功生成 ARM64 Linux 下的 Telegram Desktop 二进制。

通过 file 命令查看:

  • 为 ARM64 ELF 可执行文件
  • 动态链接
  • AArch64 架构

初始生成的二进制体积约:

  • 6GB+

这是因为:

  • 保留了完整 debug 信息

之后通过:

  • strip

去除无用调试信息后:

  • 最终大小约为 100MB~150MB

这个体积就比较正常了。


七、运行测试结果

最终产物已经测试运行于:

  • postmarketOS
  • Debian Docker 桌面环境

运行情况良好。

目前观察到:

  • 启动正常
  • UI 正常
  • 功能正常
  • 未发现明显 ARM64 兼容性问题

整体运行效果相当不错。


八、总结

这次 ARM64 Linux 编译 Telegram Desktop 的过程整体上比预期顺利。

真正困难的部分并不是:

  • 源代码
  • 编译系统

而是:

  • 内存
  • 磁盘空间

在关闭 LTO、增加 Swap、清理 Docker 缓存之后:

  • 16GB RAM
  • 100GB 磁盘

也可以勉强完成编译。

但如果想获得更稳定、更轻松的体验:

  • 24GB+ RAM
  • 200GB 磁盘

依然是更加推荐的配置。

分类

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注