Package Details: todesk-appimage 4.8.5.1-1

Git Clone URL: https://aur.archlinux.org/todesk-appimage.git (read-only, click to copy)
Package Base: todesk-appimage
Description: ToDesk remote desktop - AppImage version with full service support (unofficial build)
Upstream URL: https://github.com/nitaishi520/todesk-appimage
Licenses: custom:proprietary
Conflicts: todesk, todesk-bin
Provides: todesk
Submitter: nitaishi
Maintainer: nitaishi
Last Packager: nitaishi
Votes: 0
Popularity: 0.000000
First Submitted: 2026-03-01 09:17 (UTC)
Last Updated: 2026-03-01 09:17 (UTC)

Latest Comments

kidult226 commented on 2026-04-29 02:08 (UTC)

直接安装会导致appimage无法被正常解析,这是gemini生成的调试报告:

todesk-appimage 软件包问题分析与 PKGBUILD 改进建议 ==================================================

  1. 核心问题摘要

在当前版本的 todesk-appimage 构建过程中,存在以下两个关键问题导致软件无法正常运行:

  • 二进制文件被破坏 (Strip 问题):makepkg 默认的 strip 操作会移除 AppImage 尾部的 SquashFS 数据,导致生成的安装包仅剩约 180KB(原本应为 130MB+),程序无法启动。
  • 系统服务路径不匹配:ToDesk 的后台服务 todeskd.service 深度依赖 /opt/todesk 目录下的组件。如果仅安装单个 AppImage 文件,会导致后台服务因找不到路径而频繁崩溃 (SEGV),引发网络反复断开。

  • 详细问题分析


问题 A:安装包体积异常(仅 0.18 MiB)

  • 症状:makepkg 完成后,生成的 .pkg.tar.zst 文件极小。
  • 技术原因:AppImage 格式本质上是一个 ELF 可执行头部连接了一个 SquashFS 压缩包。Arch Linux 的构建工具 makepkg 默认会对生成的二进制文件运行 strip。该操作会剥离它认为“冗余”的数据,从而误删了 AppImage 后半部分的全部程序数据,只留下了引导头。
  • 解决方案:在 PKGBUILD 中显式添加 options=('!strip')。

问题 B:后台服务不稳定与网络断开

  • 症状:todeskd.service 虽然显示 active,但不断重启,且客户端提示网络连接超时。
  • 技术原因:ToDesk 的后台服务程序硬编码了对 /opt/todesk/bin/ 路径下动态库和二进制文件的依赖。简单的单文件 AppImage 运行方式无法满足其复杂的服务端运行环境需求。
  • 解决方案:将安装策略从“运行单个 AppImage”改为“全量提取至 /opt/todesk”,使文件布局符合 ToDesk 的原生设计。

  • 改进后的 PKGBUILD 建议


以下是经过验证的 PKGBUILD,修复了上述问题并补充了图标、桌面文件及服务的正确安装逻辑(请注意代码块已按标准缩进):

Maintainer: nitaiishi__Lereo 3653615194@qq.com Contributor: Gemini CLI (Full Extraction Mode)

  pkgname=todesk-appimage
  pkgver=4.8.5.1
  pkgrel=3
  pkgdesc="ToDesk remote desktop - Full extracted version for service stability"
  arch=('x86_64')
  url="https://github.com/nitaishi520/todesk-appimage"
  license=('custom:proprietary')
  depends=('libxcb' 'libxrandr' 'libxrender' 'libgl' 'libx11' 'libxtst' 'fuse2')
  makedepends=('wget' 'tar')
  provides=('todesk')
  conflicts=('todesk' 'todesk-bin')

必须禁止 strip,否则 AppImage 数据会被破坏 options=('!strip')

source=("https://github.com/nitaishi520/todesk-appimage/releases/download/v$pkgver/ToDesk-v$pkgver-amd64.AppImage" ) sha256sums=('SKIP')

  prepare() {
    chmod +x "ToDesk-v$pkgver-amd64.AppImage"

提取 AppImage 内容以获取服务文件和图标 ./ToDesk-v$pkgver-amd64.AppImage --appimage-extract }

  package() {
  1. 全量安装核心文件到 /opt/todesk install -d "$pkgdir/opt/todesk" cp -rp squashfs-root/opt/todesk/* "$pkgdir/opt/todesk/"

  2. 创建用户侧命令软链接 install -d "$pkgdir/usr/bin" ln -sf /opt/todesk/bin/ToDesk "$pkgdir/usr/bin/todesk"

  3. 安装从 AppImage 中提取的真实图标 install -Dm644 "squashfs-root/todesk.png" "$pkgdir/usr/share/pixmaps/todesk.png"

  4. 安装并修正桌面文件 sed -i 's|Exec=AppRun|Exec=/opt/todesk/bin/ToDesk|' squashfs-root/todesk.desktop install -Dm644 squashfs-root/todesk.desktop "$pkgdir/usr/share/applications/todesk.desktop"

  5. 安装后台服务文件 install -Dm644 squashfs-root/etc/systemd/system/todeskd.service "$pkgdir/usr/lib/systemd/system/todeskd.service" }

  6. 给用户的更新说明


如果用户在更新时遇到 文件系统中已存在 /opt/todesk/config/config.ini 的冲突报错,请按照以下步骤操作:

  1. 清理旧残留:执行 sudo rm -rf /opt/todesk。
  2. 重新构建安装:使用更新后的 PKGBUILD 重新执行 makepkg -si。
  3. 重启服务:
      sudo systemctl daemon-reload
      sudo systemctl restart todeskd.service
    

感谢打包,这对我的工作非常重要🙏🙏