我如何强制易于优化依赖关系树,以最小化下载大小?


10

一些背景信息

如您所知,在Debian软件包中,可能存在其他依赖项,Depends: apache2|something-else例如在CONTROL文件中写为。如何apt选择要选择的依赖项,以及如何覆盖此依赖项,以使下载大小最小化?

我在某些位置的连接速度很慢,需要它使用最小的总下载大小。我该如何强迫它这样做?

编辑:我不是问有关跳过推荐。

编辑2:我不是问有关跳过依赖项。我正在尝试以最小的总大小获得所有依赖关系,尤其是注意并深入遍历的package1|package2选择。

编辑3:grep可接受的shell脚本。

不幸的是,由于当前的答案并不能真正回答问题,因此无法真正获得赏金。仍然有人愿意编写bash脚本!

编辑4:尽管悬赏已被授予一个很好的答案,我鼓励您投票赞成,但我仍在寻求更具体的答案。如果它还可以很好地处理一个或多个软件包提供的虚拟软件包,那么我可能会再提供事后赏金来奖励该答案

Answers:


3

您总是可以apt列出所有依赖项,然后可以手动安装要安装的软件包,但是我搜索了手册页和几个论坛,但是除了将源代码重写为apt之外,我无法回答您的确切问题,这就是开源的方式无论如何。


这可能会有所帮助,但我需要比此更具体的内容。尝试充实您的文章以提供更多详细信息,或在您使用本文时完善shell脚本,欢迎使用Ask Ubuntu!。
nanofarad 2012年

1
@ObsessiveSSOℲ老实说,我没有时间,但是如果您愿意,可以使用以下命令:VAR = $(apt-cache show gedit | grep“ Size” | grep -Ev'I'| sed的/大小: // g')将为您提供包大小,您可以将其与使用此命令填充的数组中的值进行比较。抱歉,我无能为力。
大卫

如果没有更好的结果,那么您真的是这个赏金的赢家。
nanofarad

@ObsessiveSSOℲ您能举一个具有高度依赖关系的软件包的例子吗?
-David

wordpress涉及的简单的事情apache2|httpd。另请注意,这httpd是一个虚拟包。我也会给你赏金。不过,我暂时不会接受。
nanofarad 2012年

1

据我所知,没有办法对其进行优化。大多数事情已经被大大压缩,因此您不必下载几乎整个文件大小。(下次安装软件包时,请查看要下载的数据量与要消耗的硬盘驱动器总空间之间的差异。)

如果您知道自己在做什么(例如,您已经安装了foo,但提示您需要重新安装它),并且想要在安装文件时保留所有依赖性,请添加标志--no-install-recommends该问题的
一些答案解释了如何安装没有依赖关系的特定软件包。他们比我更深入地介绍了它,因此,如果您仍然遇到问题或我的答案不能解决您的问题,我建议您看一下该线程。


-2

我认为您对依赖项的工作方式感到困惑。如果某些东西是依赖的,那么根据定义就需要它。我想您可以做的就是从依赖中确切地找到您要使用的应用程序正在使用的文件...,然后删除所有未调用的文件..但这似乎需要花费数兆字节才能完成。

您似乎在要求一辆仍会缺少第4轮行驶的汽车(为隐喻起见,假设为“后左”),以减轻重量。在某些时候,您将需要右转。该车仍会滚动,但仅具有某些功能……通过不安装“推荐”杆,我认为您将尽可能安全地行驶,而不必进行开发。


6
你真的不明白这个问题。他知道依赖关系。但是您应该知道,可以有两个满足相同依赖关系的软件包。在那种情况下,他想要较小的一个
Anwar 2012年

海事组织,不幸的是,这些答案不得不遭到否决。他们是很好的答案,我希望没有人灰心。只要确保您回答问题即可。
nanofarad 2012年

@为了澄清和告知而作。:)(我不介意投反对票。)
knope 2012年

我没有先给你投票,只是解释了这件事。但是现在,我已经给出了,因为答案没有解决@ObsessiveSSOℲ在他的问题中提到的问题
Anwar,2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.