有没有办法在通过 dnf 更新时根据大小而不是名称排除软件包

有没有办法在通过 dnf 更新时根据大小而不是名称排除软件包

我使用的 wifi 限制了大小超过 45mb 的下载。有没有办法可以过滤'dnf更新'?所以我可以只更新已下载的内容并忽略其余内容。如果没有这个,下载就会中途停止。

我知道“排除”。但我想这是基于姓名包裹的。是否有任何基于尺寸包裹的?找出超出尺寸限制的包,然后一一排除掉,似乎很麻烦。

答案1

据我所知,目前还没有这样的功能。然而,人们可以使用地下城与勇士 API编写一个插件来执行此操作。

如果您想尝试在命令行上进行一些修改,您可以使用以下命令获取按大小排序的待处理更新列表:

dnf repoquery --upgrades --queryformat '%{size} %{name}'

或者一般查询包的大小,例如对于 firefox:

dnf repoquery --upgrades --queryformat '%{size}' firefox

您可以这样做,然后将低于限制的所有包输入更新命令。然而,当尝试安装这些更新时,复杂性就会出现,因为您无法快速判断小软件包是否也依赖于更新较大的软件包。任何解决此问题的快速 shell 脚本 hack 都会很快达到(或超过)编写插件的复杂性。

答案2

我通过编写一个简单的脚本解决了这个问题。您可能会说,这是针对一个愚蠢问题的愚蠢解决方案。我输入“dnf update”并获取所有需要安装的软件包。将其复制粘贴到文件中(应该是自动的)。在脚本中使用该文件来单独下载包。如“dnf 更新包名”。由于这适用于单个软件包,因此我的下载不会在中间停滞,并且我能够更新可能的内容。需要大量改进,是的。但我并没有理会它们,因为它可以以某种方式完成我的工作。我想当我有时间的时候,我会改进它,使其在没有用户干预的情况下完美工作。这并不是什么大不了的事 https://github.com/johananj/dnfupdate-tweak但如果你想重复使用

相关内容