Я нахожусь в процессе создания живого CD, и для уменьшения размера образа CD мне нужно обойтись без некоторых пакетов. По умолчанию устанавливаются рекомендуемые пакеты, и переключение, которое отключает, превращает CD в раздутый мусор, который мне не нужен (зачем мне нужен конструктор QT4, потому что я собираю программу на Python QT?) едва пригодный для использования.

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

Другие инструменты, такие как apt-cache depends будут выгружать все, и если я выберу grep для "Recommended", это покажет мне пакеты, которые также рекомендуют рекомендуемые пакеты, которые я не хочу.

Например, если:

  • А зависит от В,
  • B рекомендует C,
  • С зависит от D, и
  • D рекомендует E.

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

Существует ли такой инструмент или есть несколько простой способ сделать это с помощью существующих инструментов?

1 ответ1

0

Я думаю, что инструмент apt-rdepends - именно то, что вам нужно. Установите пакет через apt-get, затем запустите его (заменив пакет "A" на пакет "apt", который я использую в примере):

apt-rdepends --follow=Depends --show=Recommends apt 2>/dev/null | grep Recommends
  Recommends: gnupg
  Recommends: libc6-i686
  Recommends: gnupg-curl
  Recommends: libldap-2.4-2 (>= 2.4.7)

Если вы пропустите grep вы также увидите пакеты, на которых есть ссылка "Рекомендует". Это довольно просто и точно соответствует вашим требованиям, с одной возможной ошибкой: вы не можете указать apt-rdepends когда нужно остановиться, то есть он будет следовать ссылкам "зависит" от произвольного уровня рекурсии.

Прочтите справочную страницу, чтобы узнать больше о параметрах командной строки. Это действительно приятный инструмент, вы можете даже выполнять обратный поиск!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .