pkg_tree - Визуальное дерево пакетов и их зависимостей

Аватар пользователя Raven2000

Эта небольшая утилита помогает мне разобраться на серверах с установленными не мною портами и отсеять зерна от плевел и надеюсь вам она тоже понравится.

# cd /usr/ports/
# make search key=pkg_tree
Port:   pkg_tree-1.1_1
Path:   /usr/ports/ports-mgmt/pkg_tree
Info:   Get a 'graphical' tree-overview of installed packages
Maint:  edwin@mavetju.org
B-deps: perl-5.10.1
R-deps: perl-5.10.1
WWW:    _http://www.mavetju.org/
 
# cd /usr/ports/ports-mgmt/pkg_tree ; make install clean

Чтобы показать зависимости всех пакетов, запустите без аргументов (для удобства чтения используйте контейнер с more):

# pkg_tree |more
ImageMagick-nox11-6.5.8.10_1
|\__ expat-2.0.1_1
|\__ gsfonts-8.11_5
|\__ python26-2.6.4
|\__ perl-5.8.9_3
|\__ png-1.2.42
|\__ libfpx-1.2.0.12_1
|\__ lcms-1.18a_1,1
|\__ jpeg-7
|\__ jbigkit-1.6
|\__ tiff-3.9.2
|\__ pkg-config-0.23_1
|\__ freetype2-2.3.11
|\__ fontconfig-2.8.0,1
|\__ pcre-8.00
|\__ libltdl-2.2.6b
|\__ libiconv-1.13.1_1
|\__ libxml2-2.7.6_1
|\__ gettext-0.17_1
|\__ libgpg-error-1.7
|\__ libgcrypt-1.4.4
--More--(byte 421)

Чтобы отобразить зависимости одного пакета, запустите его с нужным аргументом:

# pkg_tree zabbix-server-1.8.2_1,2
zabbix-server-1.8.2_1,2
|\__ libssh2-1.2.4,2
|\__ ca_root_nss-3.12.4
|\__ openldap-client-2.4.21
|\__ fping-2.4b2_1
|\__ perl-5.8.9_3
|\__ net-snmp-5.4.2.1_6
|\__ curl-7.19.7_1
|\__ pkg-config-0.23_1
|\__ mysql-client-5.0.89
|\__ libiconv-1.13.1_1
|\__ gettext-0.17_1
|\__ libgpg-error-1.7
|\__ libgcrypt-1.4.4
|\__ gnutls-2.8.3
 \__ iksemel-1.4_1

Чтобы отобразить зависимости зависимостей, используйте параметр -v:

# pkg_tree -v zabbix-server-1.8.2_1,2
zabbix-server-1.8.2_1,2
|\__ libssh2-1.2.4,2
|\__ ca_root_nss-3.12.4
|\__ openldap-client-2.4.21
|\__ fping-2.4b2_1
|\__ perl-5.8.9_3
|\__ net-snmp-5.4.2.1_6
|      \__ perl-5.8.9_3
|\__ curl-7.19.7_1
|      \__ ca_root_nss-3.12.4
|\__ pkg-config-0.23_1
|\__ mysql-client-5.0.89
|\__ libiconv-1.13.1_1
|\__ gettext-0.17_1
|      \__ libiconv-1.13.1_1
|\__ libgpg-error-1.7
|     |\__ libiconv-1.13.1_1
|      \__ gettext-0.17_1
|            \__ libiconv-1.13.1_1
|\__ libgcrypt-1.4.4
|     |\__ libiconv-1.13.1_1
|     |\__ gettext-0.17_1
|     |      \__ libiconv-1.13.1_1
|      \__ libgpg-error-1.7
|           |\__ libiconv-1.13.1_1
|            \__ gettext-0.17_1
|                  \__ libiconv-1.13.1_1
|\__ gnutls-2.8.3
|     |\__ pkg-config-0.23_1
|     |\__ libiconv-1.13.1_1
|     |\__ gettext-0.17_1
|     |      \__ libiconv-1.13.1_1
|     |\__ libgpg-error-1.7
|     |     |\__ libiconv-1.13.1_1
|     |      \__ gettext-0.17_1
|     |            \__ libiconv-1.13.1_1
|      \__ libgcrypt-1.4.4
|           |\__ libiconv-1.13.1_1
|           |\__ gettext-0.17_1
|           |      \__ libiconv-1.13.1_1
|            \__ libgpg-error-1.7
|                 |\__ libiconv-1.13.1_1
|                  \__ gettext-0.17_1
|                        \__ libiconv-1.13.1_1
 \__ iksemel-1.4_1
      |\__ pkg-config-0.23_1
      |\__ libiconv-1.13.1_1
      |\__ gettext-0.17_1
      |      \__ libiconv-1.13.1_1
      |\__ libgpg-error-1.7
      |     |\__ libiconv-1.13.1_1
      |      \__ gettext-0.17_1
      |            \__ libiconv-1.13.1_1
      |\__ libgcrypt-1.4.4
      |     |\__ libiconv-1.13.1_1
      |     |\__ gettext-0.17_1
      |     |      \__ libiconv-1.13.1_1
      |      \__ libgpg-error-1.7
      |           |\__ libiconv-1.13.1_1
      |            \__ gettext-0.17_1
      |                  \__ libiconv-1.13.1_1
       \__ gnutls-2.8.3
            |\__ pkg-config-0.23_1
            |\__ libiconv-1.13.1_1
            |\__ gettext-0.17_1
            |      \__ libiconv-1.13.1_1
            |\__ libgpg-error-1.7
            |     |\__ libiconv-1.13.1_1
            |      \__ gettext-0.17_1
            |            \__ libiconv-1.13.1_1
             \__ libgcrypt-1.4.4
                  |\__ libiconv-1.13.1_1
                  |\__ gettext-0.17_1
                  |      \__ libiconv-1.13.1_1
                   \__ libgpg-error-1.7
                        |\__ libiconv-1.13.1_1
                         \__ gettext-0.17_1
                               \__ libiconv-1.13.1_1

-v - зависимости зависимостей.
-t - чтобы показывать только верхнего уровня пакетов.
-b - чтобы показать только нижний уровень пакеты.
-t -q - даст список верхнего уровня пакетов без их зависимостей, установка только этих пакетов должны установить всех установленных пакетов.

Надеюсь вам это поможет немного разобраться в помоечке установленных портов. =)

Ваша оценка: Нет Средняя: 5 (4 голоса)

спасибо

очень полезная утилита. Уверен упростит мне жизнь )

thnx

Супер)
Так же могут быть полезны pstree и ncdu.

Good

Hi. I’m really glad to learn more about the servers and the defined ports associated with it. stop snoring aids I actually wanted to know how it is possible for the top-level package to remain in the list without their dependencies. Please keep updating.

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

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <blockcode>, <apache>, <bash>, <c>, <cpp>, <mysql>, <perl>, <php>, <python>, <text>. The supported tag styles are: <foo>, [foo].
  • Glossary terms will be automatically marked with links to their descriptions. If there are certain phrases or sections of text that should be excluded from glossary marking and linking, use the special markup, [no-glossary] ... [/no-glossary]. Additionally, these HTML elements will not be scanned: a, abbr, acronym, code, pre.

Подробнее о форматировании

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
2 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.

Последние статьи

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer