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


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 - отличный инструмент для просмотра зависимостей. нет причудливых графиков, но это дает вам хорошее иерархическое представление зависимостей для конкретного пакета.


Натан Кэзелл: Не могли бы вы рассказать, как я могу просматривать этот иерархический график для данного пакета?
Эшвин Нанджаппа

когда вы открываете Aptitude, просто ищите пакет, используя /, затем нажмите ввод для нужного вам пакета, и он покажет всю информацию о пакете, включая дерево зависимостей с неудовлетворенными зависимостями, а также конфликтующие пакеты.
Ntc

Натан Кэзелл: Вы имеете в виду инструмент aptitude для командной строки?
Эшвин Нанджаппа

Ред. Извините, что не разъяснил ранее
Ntc
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.