Поиск ближайших рекомендуемых пакетов верхнего уровня для определенного пакета Debian

Поиск ближайших рекомендуемых пакетов верхнего уровня для определенного пакета Debian

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

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

Другие инструменты, такие как , apt-cache dependsвыведут все данные, и если я выполню grep по запросу «Recommends», то мне будут показаны пакеты, которые также рекомендуются рекомендуемыми пакетами, а это мне не нужно.

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

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

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

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

решение1

Я думаю, что этот 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то также увидите пакеты, имеющие ссылку "Recommends". Это довольно просто и точно соответствует вашим требованиям, с одним возможным подвохом: вы не можете сказать, apt-rdependsкогда остановиться, т. е. он будет следовать ссылкам "depends" на произвольный уровень рекурсии.

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

Связанный контент