mozixun
2026-09-09 13:48 Moderator
你用的什么发行版
Reply Like 0 View the author
你用的什么发行版
你用的什么发行版
deepin 25
复现不了这个问题,可能和仓库 CDN 状态有关,或者升级一下玲珑的版本。
我的也是升级后,所有如意玲珑软件都不能升级,好像也用不了,浏览器都用不了
我的也是升级后,所有如意玲珑软件都不能升级,好像也用不了,浏览器都用不了
你用命令行启动一个玲珑软件我看一下日志
admin@admin-PC:~$ ll-cli run org.deepin.draw
Error -1: Failed to activate org.deepin.linglong.PackageManager1
Popular Ranking
ChangePopular Events
More
1. 报告概要
用户执行玲珑应用升级命令时失败:
输出:
系统上已安装 Koodo Reader 2.4.3.5,稳定仓库中存在新版本 2.4.4.0(确认可搜索到),但升级任务在"检查更新"阶段即失败,错误码 2201(
all apps failed to upgrade)。守护进程日志给出最终错误为packages is empty(远程搜索结果为空),而同一查询用 curl 直连仓库 API 却能返回数据,判定为客户端(安装版 linyaps 1.13.4)与服务端响应之间的解析/过滤不兼容问题。2. 环境信息
3. 问题现象
ll-cli upgrade github.troyeguo.koodo-reader→ 仅输出升级失败,无详细原因。ll-cli -v upgrade ...→Error 2201: all apps failed to upgrade。升级任务从开始到失败仅约 4~5 秒,进度始终为 0.0%,未发生任何下载。
通过 D-Bus 抓取任务状态(
org.deepin.linglong.Task1的 PropertiesChanged),状态变迁为:5.玲珑的搜索、安装、卸载功能均正常。
4. 排查过程与证据
4.1 应用与仓库状态确认(正常)
ll-cli list/ll-cli info:koodo-reader 2.4.3.5 已安装,channel=main。ll-cli search github.troyeguo.koodo-reader:仓库存在 2.4.4.0。/var/lib/linglong/states.json:koodo-reader 记录完整(commit=2c65d957…,channel=main,version=2.4.3.5)。/var/lib/linglong/layers/2c65d957.../:应用层文件存在。main/github.troyeguo.koodo-reader/2.4.4.0/x86_64/binary。4.2 守护进程日志(sudo)—— 定位最终错误
4.3 根因代码路径分析
packages is empty来自RemotePackages::getLatestPackage()(remote_packages.cpp:22),即matchRemoteByPriority汇总后未得到任何候选包。调用链:关键差异(对比):
ll-cli search走守护进程Search方法:searchRemote(params.id, repo),构造的 fuzzyRef channel=nullopt →semanticMatch跳过 channel 校验 → 返回全部数据 → 搜索正常。needToUpgrade:FuzzyReference::create(app.channel="main", app.id, ...)→semanticMatch要求 记录 channel 必须等于 "main" → 全部被过滤 → 结果为空。4.4 直接调用仓库 API 验证(正常返回)
用与守护进程相同的参数直连:
返回
code:200,data 中包含全部版本(含 2.4.4.0),且每条记录的channel均为"main"。{"code":200,"data":null}(该应用不在其中,属正常)。4.5 已排除的干扰项
/可用 9.9G,/home可用 114G。.commitpartial(20:54 中断提交遗留)5. 根因结论
安装版守护进程(ll-package-manager,linyaps 1.13.4-20260709)在升级路径
needToUpgrade → matchRemoteByPriority → searchRemote中,对服务端返回的包列表做semanticMatch语义过滤时,带channel="main"过滤条件,最终把全部候选项过滤掉,导致RemotePackages为空,报错packages is empty。两种可能的具体机制(待调试日志确认二选一):
channel字段解析结果与"main"不一致(非空但 ≠ "main",如映射到其他字段),导致semanticMatch全部返回 false。semanticMatch/channel 处理存在回归。判断依据:守护进程日志中未出现
invalid packageInfo(semanticMatch 报错才会打印,说明并非 channel 为空导致 Reference::create 抛错,而是比较结果 false);ll-cli search(channel 过滤关闭)可正常返回,升级(channel 过滤开启)返回空。影响范围:预计所有玲珑应用的升级操作均会失败(不止 koodo-reader),玲珑应用商店(linglong-store)中的升级功能同样受影响。