я слабо представляю, как ты хочешь туда ещё и юзфлаги воткнуть. И более чем уверен, что «наглядно» это выглядеть не будет (посмотри хотябы на то во что генерятся зависимости в init системах). А по теме - да самому.
тебе придётся тогда на ребрах это писать, а чтобы очевидно было ещё и подсвечевать как-нибудь, т.к. ребра будут очень большие и названия их будут раскиданы очень не удобно. В общем я такой тулсы не видел, можешь попытаться поискать.. Может попытался бы сделать, но сейчас совсем не до того.
тебе придётся тогда на ребрах это писать, а чтобы очевидно было ещё и подсвечевать как-нибудь, т.к. ребра будут очень большие и названия их будут раскиданы очень не удобно.
Как это оформить это уже другой вопрос. Для начала нужно вытащить сам граф зависимостей.
В общем я такой тулсы не видел, можешь попытаться поискать..
Я тоже пока не находил… Но такая штука была бы очень не плоха.
при наличии уже небольшого кол-ва юзфлагов, особенно если он тянет много приложенийЮ будет ад, в принципе можно мегаузел (кластер) из приложения связанного с юзфлагами, из которых идут связи к зависимостям, т.е. что-то вроде:
но это уже нужно смотреть на кол-во связей и т.п., в любом случае с учетом всей мешанины версий разбираться с этим без поллитры или большого кол-ва фильтров будет напряжно.
у нас в hackport через какое-то время будет весь функционал для этого, но пока времени на развитие нет, а я занят другими делами :/
ОК. Я пока буду искать и велосипедить.
Иногда же бывают приколы… К примеру вот недавний media-video/ffmpeg -> media-video/libav. Ну и подобные ему случаи когда идет замена ebuild-а. И были же случаи когда пакет просто не развивался долгое время его выпиливали. Или опять же все тот же sys-fs/udev и sys-apps/openrc vs sys-apps/systemd.
Вот для таких случаев подобная штука была бы очень полезна.
Можно так, например: по умолчанию перед глазами имя атома и его жёсткие зависимости, а вокруг - юзы. При клике по юзу выводятся зависимости, вытягиваемые юзом. И так далее.
Либо делать имя атома центром хотя бы трёхмерного пространства, а от него тянуть рёбра к другим атомам, выделяя тип связи цветом и снабжая всплывающими маркерами.
Я как-то размышлял о трёхмерном фронтенде к portage, но это абалдеть сколько работы требуется. Своими силами точно не управиться.
А если расширить этот фронтенд до масштабов всех данных, прикрутив к этому снапшоты и клоны ФС, то можно замутить что-то вроде пространства событий, где событие (изменение состояния того или ного файла или их группы) будет отображаться пересечением соответствующих линий приложений и данных. Таким же образом можно было бы отображать семантические связи и всё такое.
В идеале неплохо было бы весь граф еще и со связями по USE флагам.
Ага и + еще и чтобы видеть в родителях источник USE флага - make.conf и настройки /etc/portage/* и системный профиль. Чтобы конкретно было видно источник USE флага.
Если всё дерево до конца, то тут только два выхода:
Если сам граф будет. Кто мешает:
удалить ненужные слои/зависимости. Т.е. конкретно к примеру выводим зависимости всего мира но обрабатываем исключительно USE флаг gtk+ а не все используемые флаги.