26 июня 2011 г.

pacgraph

Небольшая программулина, не столько полезная, сколько забавная, представляет графически все установленные в системе пакеты в виде "облака" со связями между ними (по зависимостям). Лучше один раз увидеть:

Предполагается, что это можно использовать для отслеживания, какие пакеты занимают слишком много места в системе и решения, не пора бы что-нибудь удалить. Но, честно говоря, слабо себе представляю, как реально с этим можно работать.
Потому что это просто рисунок, а не динамичная интерактивная схема, на которой можно было бы что-то разглядеть и повертеть. Рисунок, правда, довольно интересный, но всё же программка, по-моему, больше для забавы.

Работает программа из командной строки. Варианты использования следующие:

  1. Сразу после установки можно просто написать там packgraph и получить в домашней директории графический файл со схемой из всех установленных в системе пакетов.
    Если установлен imagemagick либо Inkscape, то помимо файла svg, рядом создастся файл png. Чтобы получить цветовое решение, отличное от дефолтного, нужно использовать опции - об этом попозже.
  2. Если выполнить pacgraph-tk, запустится простая графическая программка, состоящая просто из окна, где построится такая же схема, но постепенно прорисовываясь. А затем её можно будет тягать мышкой и приближать/удалять колёсиком, а если навести курсор на какой-либо пакет, то его зависимости будут выделены.

    Да, небольшая интерактивность, но удобства она почти не добавляет, и, к сожалению, не предполагает возможности поменять оформление или использовать какие-нибудь ещё опции.
  3. Можно получить схему, состоящую только из зависимостей конкретного пакета из репозиториев, даже неустановленного. Для этого нужно использовать опцию -m (--mode) со значением arch-repo. Например, для libreoffice:

  4. Ну и есть ещё возможность, просто вывести в консоль отсортированный по размеру список установленных пакетов (с указанием размера) посредством команды pacgraph -c.

Теперь об опциях:

  • Можно принудительно запретить создавать файл png, выполнив pacgraph -s.
  • Чтобы сохранить файл с именем, отличным от дефолтного (pacgraph), нужно использовать опцию -f с желаемым именем после неё.
  • Программа может работать не только с арчевскими пакетами, но в системах debian и red hat и основанных на них - для этого используется опция -m (--mode) и значения соответственно debian и redhat.
  • Опция -n (--no-compression) покажет все зависимости полностью. Дело в том, что по-умолчанию, если пакет A зависит от пакета B, а тот зависит от пакета C и никаких промежуточных ветвлений нет, то на графике эта цепочка будет сокращена и покажет только что пакет A зависит от пакета C.

Отдельно опишу опции, позволяющие раскрасить картинку в свои цвета. Выше есть скриншот дефолтных расцветок, каждый цвет, который хочется сделать отличным от заданного по-умолчания, задаётся отдельной опцией в строке запуска:

  • -b Цвет фона
  • -l Цвет связей между пакетами
  • -t Цвет освновных пакетов (не зависимостей)
  • -d Цвет пакетов, которые являются зависимостями
  • -i Три цвета - для выбранного пакета, его зависимостей и пакетов, для которых он является зависимостью
  • -p Задаёт используемые размеры шрифта от самого маленького до самого большого (по-умолчанию от 10 до 100)
Цвета можно задавать как названиями, так и шестнадцатеричными значениями. Чтобы сразу было всё понятно, пример для самого первого скриншота:
pacgraph -b "#203D5E" -l "#5CC037" -t "#FFE64A" -d "#4ACCFF" -i "red" "#9E00FF" "#0031FF" wine -p 15 98 -f pacgraph_wine
Основные пакеты жёлтые, зависимости голубые, выделен пакет wine (красный цвет), его зависимости фиолетовые, пакеты, для который он необходим синие (можно разглядеть wine_gecko и winetricks).

Кстати, очертания рисунка каждый раз разные. Ну и в дополнение:
сайт - http://www.kmkeen.com/pacgraph/
и обсуждение на форуме Archlinux (с участием автора): тык (на английском, конечно).

Комментариев нет:

Отправить комментарий