
Ich versuche, einen Port zu erstellen, der davon abhängt apache-ant
.
Ich dachte, ich könnte make build-depends-list
alle 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