Ubuntu:“debdelta-upgrade”一次仅升级一个增量

Ubuntu:“debdelta-upgrade”一次仅升级一个增量

与平原德班 debdelta-upgrade工作正常:它获取可升级文件、下载的列表全部可用的增量,并创建所需的.deb升级文件。所以如果包,酒吧, 和巴兹有可用的增量,然后debdelta-upgrade将获取,酒吧, 和巴兹,然后退出。

但下乌班图发行版,(测试过薄荷卢本图),当有多个包具有可用增量时,debdelta-upgrade一次仅获取一个增量。如果运行一次它获取,然后退出;如果再次运行它会获取酒吧;如果再次运行,它会获取巴兹

在下面乌班图,这个拼凑作品有效;它通过debdelta-upgrade为每个可升级包运行一次来​​获取所有可用的增量:

apt list --upgradable 2> /dev/null | sed -n '1!s#/.*##p' | \
    xargs -n 1 debdelta-upgrade

但比它慢很多德班,因为每次debdelta-upgrade运行都需要 5 秒左右的时间来初始化 ("更新 apt 缓存") -- 如果有 10 个软件包需要升级,则会增加 50 秒的延迟 (5秒x 10包) 在下面乌班图变体。

有解决办法吗?

答案1

这是一个一直困扰我的问题,这是我在互联网上找到的唯一询问这个问题的帖子。

我不确定它是否有效。德布德尔塔正在检查它位于哪个部分(主要、向后移植或稳定安全),并使用单独的debdeltas.debian.net每个部分的 URI。

该脚本在以下行失败:

  delta_uri_base=delta_uri_from_config(config,
                                       Origin=origin.origin,
                                       Label=origin.label,
                                       Site=origin.site,
                                       Archive=origin.archive,
                                       PackageName=p.name)

...这是因为delta_uri_base返回没有任何在Ubuntu中。

delta_uri_from_config似乎正在解析/etc/debdelta/sources.conf其中包含许多 Debian 档案的 Debian 特定条目 - 并且没有 Ubuntu 的相关部分。

因此,例如我们发现它正在寻找的原点是:

    origin.origin : 
    origin.site:gb.archive.ubuntu.com
    origin.label :Ubuntu
    origin.archive: bionic-updates

看着/etc/debdelta/sources.conf

   [main debian archive]
   Origin=Debian
   Label=Debian
   delta_uri=http://debdeltas.debian.net/debian-deltas

   [backports debian archive]
   Origin=Debian Backports
   Label=Debian Backports
   delta_uri=http://debdeltas.debian.net/debian-deltas


   [stable security debian archive]
   Origin=Debian
   Label=Debian-Security
   delta_uri=http://debdeltas.debian.net/debian-security-deltas

没有匹配的部分。如果没有相应的条目,则没有可从中获取增量的 URI。这意味着升级的增量队列不会被填满,因此它不会循环为每个升级生成增量。

目前我不清楚的是为什么它会生成一个.deb/var/cache/apt/archives/根本不。

据我所知,要修复它,需要有人托管一个特定于 Ubuntu 的debdelta实例,并更正源文件。好像很久以前就有人尝试过这个,但我没听说有人这样做。

相关内容