FreeBSD-Ports: Wie kann ich alle Abhängigkeiten für einen Port und alle Unterabhängigkeiten für diese Abhängigkeiten anzeigen?

FreeBSD-Ports: Wie kann ich alle Abhängigkeiten für einen Port und alle Unterabhängigkeiten für diese Abhängigkeiten anzeigen?

Ich versuche, einen Port zu erstellen, der davon abhängt apache-ant.

Ich dachte, ich könnte make build-depends-listalle für diesen Port erforderlichen Abhängigkeiten anzeigen:

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

Aber nachdem alles installiert war, hatte der Port eine meilenlange Abhängigkeitsliste:

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

Diese Abhängigkeitsliste ist eine böse Überraschung und ich würde gerne davon erfahren, bevor ich mich zur Installation eines Ports entscheide.

Wie kann ich alle Abhängigkeiten und alle Unterabhängigkeiten für einen Port anzeigen?

Antwort1

Sie sind ganz nah dran. Versuchen Sie stattdessen Folgendes:

make all-depends-list

Dadurch werden alle Abhängigkeiten rekursiv durchgegangen und für Sie ausgedruckt. Um verschiedene Build-Szenarien und ihre Auswirkungen auf die Abhängigkeitsliste zu testen, versuchen Sie Folgendes:

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

make WITHOUT_X11=yes all-depends-list

Hier ist der vollständige Satz abhängiger Druckziele:

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

Grüße, Greg

Antwort2

So listen Sie die Ports auf, von denen es abhängt:

pkg_info -rx "port-name"

So listen Sie die Ports auf, die Folgendes erfordern:

pkg_info -Rx "port-name"

-- Antwort von dieser Website:http://daemon-notes.com/tips(danke an Ross)

Antwort3

Sie müssten auch alle Unterabhängigkeiten rekursiv abrufen. Es gibt wahrscheinlich einige Tools dafür imPortverwaltungKategorie...

ich benutzeHafenmeister(8)zur Portverwaltung. Es sammelt immer (Unter-)Abhängigkeiten, bevor ein Port kompiliert und installiert wird:

~> 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
...

Antwort4

ein paar Jahre später ...

meine Lösung zum Installieren von Paketen (für Sicherungszwecke)

Ich habe eine Lösung für 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

Sie können den Paketbefehl aber von „Erstellen“ in „Installieren“ und von „Ausführen“ in „Build“ ändern.

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

verwandte Informationen