Как визуально отобразить зависимости пакета?

31

Это просто для удовольствия и любопытства: есть инструмент с помощью которого можно визуально увидеть зависимости от в упаковке в виде графа?

То есть пакеты, от которых зависит данный пакет. Это может быть инструмент командной строки, который отображается с использованием графики ASCII (например, дерева или графика Mercurial) или инструмент графического интерфейса, который визуально отображает график зависимости. Любая другая комбинация инструментов, которая может показать зависимости, также работает визуально.

Эшвин Нанджаппа
источник
И какими будут оси графика?
1
@ vasa1: вершины - это пакеты, а ребра - это зависимости.
Эшвин Нанджаппа

Ответы:

34

debtree

Согласно веб-сайту приложения , debtreeпакет предоставляет «графики зависимости пакетов от стероидов» .

Примечание. Это также очень полезно при планировании обновлений программного обеспечения. Это приложение может отображать зависимости от пакетов, которые еще не установлены в вашей системе. Он будет читать из sources.listфайла (обычно находится в /etc/apt/sources.list) и будет выполнять живой запрос с использованием этого списка.

Следующая диаграмма - пример работы debtreeс пакетом dpkg. Вот карта его зависимостей:

Для установки debtreeиз командной строки ( Ctrl- Alt- t) введите команду:

sudo apt-get install debtree

использование

  • Создайте файл .dot (чертеж с направленным графом - см. man dotСправочную страницу)

    debtree --with-suggests <package> >out.dot
    
  • Создать график (PNG) из файла .dot

    dot -T png -o out.png out.dot
    
  • Создать график (Postscript) и просмотреть его с помощью Okular

    debtree <package> | dot -Tps | okular - &
    

Помните, что при запуске этого приложения для больших пакетов (например, gedit) изображения могут быстро стать громоздкими и неразборчивыми.

Обратите внимание, что apt-rdependsэто также может быть использовано аналогичным образом, но, на мой взгляд, конвейерный вывод в графику немного более запутанный.

Смотрите также: справочная страница Ubuntu debtree

Кевин Боуэн
источник
1
--no-skipили даже --show-allочень полезные варианты, чтобы включить больше пакетов, как libc6.
выход
2

Может быть, не такой «графический», но если вы предпочитаете не устанавливать никаких дополнительных пакетов, у вас также есть возможность просто запустить

apt-cache rdepends <package>

Вы также можете посмотреть на dependsвариант.

У вас также есть:

  • apt rdepends <package>
  • Используйте этот скрипт ,apt-rdepends-tree <package>
  • apt-rdepends <package>или как должник apt-rdepends --dotty package | springgraph > dependencies.png
Пабло А
источник
1

Инструмент командной строки Apitude - отличный инструмент для просмотра зависимостей. нет причудливых графиков, но это дает вам хорошее иерархическое представление зависимостей для конкретного пакета.

Ntc
источник
Натан Кэзелл: Не могли бы вы рассказать, как я могу просматривать этот иерархический график для данного пакета?
Эшвин Нанджаппа
когда вы открываете Aptitude, просто ищите пакет, используя /, затем нажмите ввод для нужного вам пакета, и он покажет всю информацию о пакете, включая дерево зависимостей с неудовлетворенными зависимостями, а также конфликтующие пакеты.
Ntc
Натан Кэзелл: Вы имеете в виду инструмент aptitude для командной строки?
Эшвин Нанджаппа
Ред. Извините, что не разъяснил ранее
Ntc