Порти FreeBSD: Як я можу побачити всі залежності для порту та всі додаткові залежності для цих залежностей?


9

Я намагаюся побудувати порт, від якого залежить apache-ant .

Я думав, що можу бігти, make build-depends-listщоб побачити всі залежності, необхідні цьому порту:

# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp

Але після того, як все встановити, у порту був список залежностей, який був довгий за милю:

apache-ant-1.8.1 desktop-file-utils-0.15_2 gamin-0.1.10_4 gettext-0.18.1.1 gio-fam-backend-2.26.1 glib-2.26.1_1 gmp-5.0.1 inputproto-2.0 javavmwrapper-2.3.5 kbproto-1.0.4 libX11-1.3.3_1,1 libXau-1.0.5 libXdmcp-1.0.3 libXext-1.1.1,1 libXi-1.3,1 libXtst-1.1.0 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.7 pcre-8.12 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6 recordproto-1.14 unzip-6.0 xextproto-7.1.1 xproto

Цей список залежностей є грубим сюрпризом, і я хотів би дізнатися про нього, перш ніж взяти на себе зобов’язання встановити порт.

Як я можу побачити всі залежності та всі додаткові залежності для порту?

Відповіді:


17

Ви дуже близькі. Спробуйте це замість цього:

make all-depends-list

Це повториться через усі залежності і надрукує їх для вас. Щоб перевірити різні сценарії складання та як вони впливають на список залежностей, спробуйте такі речі:

make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list

make WITHOUT_X11=yes all-depends-list

Ось повний набір цілей друку залежностей:

all-depends-list
build-depends-list
run-depends-list
package-depends-list
pretty-print-build-depends-list
pretty-print-run-depends-list

Ура, Грег


Привіт Грег, чи знаєш ти, де задокументовані цілі друку залежності? Чи є конкретний файл man? У мене немає питання ... Це просто для глибшого розуміння. Дякую.

Не звертай уваги. Вони задокументовані в Росії man ports.

1

Вам також доведеться рекурсивно отримувати всі субзалежності. Напевно, є деякі інструменти для цього в портах-мгм ...

Я використовую portmaster (8) для управління портом. Він завжди збирає (під) залежності перед компілюванням та встановленням порту:

~> portmaster --show-work devel/apache-ant
===>>> Port directory: /usr/ports/devel/apache-ant
===>>> Starting check for all dependencies
===>>> Gathering dependency list for devel/apache-ant from ports

===>>> Installed converters/libiconv
===>>> Installed devel/gettext
===>>> NOT INSTALLED            devel/gmake
===>>> Installed devel/libcheck
...

1

Більшість списків залежностей важко проаналізувати з першого погляду. Я вважаю за краще використовувати цей скрипт обгортки від helmut@charlieroot.de, тому що він відображає приємний, вкладений список із залежностями вгору та вниз:

$ pkg_depends.pl ruby18-bdb-0.6.5_1
Package ruby18-bdb-0.6.5_1 depends on:
    db41-4.1.25_4
    ruby-1.8.7.248_5,1
Package ruby18-bdb-0.6.5_1 is required by:
    portupgrade-2.4.7,2

Запуск без аргументів може створити дуже довгий список, оскільки він показує всі ланцюги залежностей для всіх файлів, тому зазвичай рекомендую лише запустити його для певного порту.


1

Щоб перелічити порти, від яких залежить:

pkg_info -rx "port-name"

Щоб перелічити потрібні порти:

pkg_info -Rx "port-name"

- Відповідь з цього веб-сайту: http://daemon-notes.com/tips (спасибі Россу)


Дякуємо за відповідь. Однак мені потрібно зазначити, що pkg_*інструменти були застарілі та замінені на pkgng
Стефан Ласєскі

Команда працює; у pkgng потрібно лише видалити підкреслення:pkg info -Rx 'port-name'
Eric
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.