Я в процессе создания 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, чтобы узнать больше о параметрах командной строки. Это действительно классный инструмент, вы даже можете делать обратные поиски зависимостей!