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

10

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

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

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

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

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

Редактировать 3: допустимо использование сценария оболочки grep или иным образом.

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

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

    
задан hexafraction 13.10.2012 в 13:16
источник

3 ответа

3

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

    
ответ дан David 22.10.2012 в 22:45
1

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

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

ответ дан JamesTheAwesomeDude 13.10.2012 в 15:33
-2

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

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

    
ответ дан knope 19.10.2012 в 15:51