[ Technical exchange] ll-builder export跨设备硬链接失败
Tofloor
poster avatar
Vellichor
deepin
15 hours ago
Author

ll-builder export 错误报告

基本信息

项目 内容
报告日期 2026-06-18
命令 ll-builder export
项目路径 /persistent/home/Superior/LingLongProject/finalshell
构建系统 LingLong (玲珑)
目标格式 UAB (Universal App Bundle)
压缩方式 lz4(默认)

错误摘要

在执行 ll-builder export 导出 UAB 包时,因跨设备硬链接失败导致导出中断。


完整错误输出

Compressor not specified, defaulting to lz4 for layer export.
/
'/opt/apps/cn.org.linyaps.builder.utils/files/lib/linglong/builder/uab/uab-header' -> '/project/.uabBuild/uab-header'
'/opt/apps/cn.org.linyaps.builder.utils/files/lib/linglong/builder/uab/uab-loader' -> '/project/.uabBuild/uab-loader'
'/opt/apps/cn.org.linyaps.builder.utils/files/bin/ll-box' -> '/project/.uabBuild/ll-box'
Export UAB failed: [code -1]:
couldn't link from /home/Superior/.cache/linglong-builder/layers/cbac5ac4b46c31430d9228376a11273fa15d784c25813943b5ac7a8a8576ed9f/files/share/doc/copyright
to /persistent/home/Superior/LingLongProject/finalshell/.uabBuild/bundle/layers/com.hostbuf.finalshell/binary/files/share/doc/copyright
无效的跨设备链接

根因分析

直接原因

ll-builder export 在构建 UAB 包时,尝试在缓存目录和导出目录之间创建硬链接(hard link),但这两个目录位于不同的文件系统(设备)上,操作系统不允许跨设备创建硬链接,抛出 EXDEV 错误("无效的跨设备链接" / "Invalid cross-device link")。

关键路径

路径 说明
源路径 /home/Superior/.cache/linglong-builder/layers/.../files/share/doc/copyright
目标路径 /persistent/home/Superior/LingLongProject/finalshell/.uabBuild/.../files/share/doc/copyright
  • /home/persistent/home 很可能挂载自不同的分区或存储设备。
  • 硬链接要求源和目标必须在同一挂载点(同一文件系统)内。

复现步骤

  1. 确保项目位于与缓存目录不同的文件系统上(例如 /persistent/home)。
  2. 执行构建:ll-builder build
  3. 执行导出:ll-builder export

环境信息

项目 内容
操作系统 Deepin 25
构建工具 ll-builder(玲珑构建工具)
缓存路径 /home/Superior/.cache/linglong-builder/layers/
项目路径 /persistent/home/Superior/LingLongProject/finalshell/
文件系统差异 /home/persistent/home 可能为不同挂载点

image.png


附:相关系统调用说明

  • 硬链接(link():创建一个新的目录项,指向同一个 inode。要求源和目标必须在同一文件系统挂载点内。
  • EXDEV(errno 18)Invalid cross-device link,当 link() 跨设备时返回此错误。
  • 标准做法:在工具链中遇到 EXDEV 时应回退为文件复制。
Reply Favorite View the author
All Replies
avatar
MeGusta
deepin
14 hours ago
#1

/persistent/home与/home的问题,切换到/home就好了。

Reply View the author