FreeBSD ポート: ポートのすべての依存関係と、それらの依存関係のすべてのサブ依存関係を確認するにはどうすればよいですか?

FreeBSD ポート: ポートのすべての依存関係と、それらの依存関係のすべてのサブ依存関係を確認するにはどうすればよいですか?

に依存するポートを構築しようとしていますapache-ant

make build-depends-listこのポートに必要なすべての依存関係を確認するには、次のコマンドを実行できると思いました。

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

しかし、すべてをインストールした後、ポートには 1 マイルにも及ぶ依存関係リストがありました。

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

この依存関係リストは予想外のことで、ポートのインストールを確定する前にこれについて知っておきたいと思います。

ポートのすべての依存関係とすべてのサブ依存関係を確認するにはどうすればよいですか?

答え1

非常に近いです。代わりにこれを試してください:

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

乾杯、グレッグ

答え2

依存するポートを一覧表示するには:

pkg_info -rx "port-name"

必要なポートを一覧表示するには:

pkg_info -Rx "port-name"

-- このウェブサイトからの回答:http://daemon-notes.com/tips(ロスに感謝)

答え3

全てのサブ依存関係も再帰的に取得する必要があります。そのためのツールはおそらくポート管理カテゴリー...

私が使うポートマスター(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
...

答え4

数年後…

パッケージをインストールするための私の解決策(バックアップ目的)

FreeBSD 12+ (bash) 用のソリューションがあります

for i in $( cd /usr/ports/databases/mysql80-server/ && make run-depends-list); do pkg create -o /root/packages $( echo $i | rev | cut -d '/' -f1 | rev ); done

ただし、pkgコマンドをcreateからinstallに変更し、runをbuildに変更することができます。

for i in $( cd /usr/ports/databases/mysql80-server/ && make build-depends-list); do pkg install $( echo $i | rev | cut -d '/' -f1 | rev ); done

関連情報