Как я могу заставить apt оптимизировать дерево зависимостей для минимального размера загрузки?

Некоторая справочная информация :

Как вы знаете, в пакете Debian могут быть альтернативные зависимости, записанные в файле CONTROL, например Depends: apache2|something-else . Как apt выбирает, какие зависимости выбрать, и как я могу переопределить это, чтобы я мог минимизировать размер загрузки?

Я нахожусь в медленном соединении в некоторых местах и ​​нуждаюсь в нем, чтобы использовать наименьший общий размер загрузки. Как я могу заставить это сделать это?

Изменить: я не прошу пропустить рекомендации.

Изменить 2: я не прошу пропустить зависимости. Я пытаюсь получить все зависимости, только в наименьшем общем размере, особенно отмечая и глубоко перемещая package1|package2 .

Редактирование 3: допустим сценарий grep или другой оболочки.

К сожалению, поскольку текущие ответы на самом деле не отвечают на вопрос, они не могут получить щедрость. Это все еще для кого-то, кто хочет написать сценарий bash!

Редактировать 4: Хотя щедрость была награждена хорошим ответом, который я призываю вас поддержать, я все еще ищу более конкретный ответ . Если он также элегантно обрабатывает виртуальные пакеты, предоставляемые одним или несколькими пакетами, то я, возможно, дам еще одну награду за то, что вы получили этот ответ .

У вас всегда может быть список всех зависимостей, а затем вручную вы можете установить пакеты, которые вы бы установили, но я искал man-страницы и несколько форумов, но я не мог ответить на ваш точный вопрос, кроме как переписать источник в apt, так как openource работает в любом случае.

Насколько я знаю, нет способа оптимизировать это. Большинство вещей уже сильно сжаты, поэтому вы не загружаете почти весь размер файла. (В следующий раз, когда вы устанавливаете пакет, обратите внимание на разницу между объемом загружаемых данных и общим объемом жесткого диска, которые будут потребляться.)

Если вы знаете, что делаете (например, вы уже установили foo , но в нем говорится, что вам нужно его переустановить), и хотите, чтобы все зависания были отключены при установке файла, добавьте флаг --no-install-recommends .
Некоторые ответы на этот вопрос объясняют, как установить конкретные пакеты без зависимостей. Они покрыли его немного глубже, чем я, поэтому, если у вас все еще есть проблемы, или мой ответ не решил вашу проблему, я бы рекомендовал взглянуть на эту тему.

Я думаю, вы запутываете, как работают зависимости. Если что-то зависит – тогда по определению оно необходимо. Я полагаю, что вы можете сделать, это выяснить, какие файлы зависят от приложения, которое вы хотите использовать … и удалить все, что он не вызывает … но это похоже на большую работу за несколько мегабайт.

Кажется, вы просите машину, которая по-прежнему будет пропускать 4-е колесо (скажем, «назад-левый», ради этой метафоры), чтобы сэкономить на весе. В какой-то момент вам нужно будет повернуть направо. Автомобиль все равно будет рулон, но только с определенной функциональностью … не устанавливая «Рекомендуемый», я думаю, что вы делаете это настолько легко, насколько это возможно, без необходимости вникать в разработку.