Kapitel 6. Besonderheiten

Inhaltsverzeichnis
6.1. Shared-Libraries
6.2. Ports mit beschränkter Verbreitung
6.3. Build-Mechanismen
6.4. Benutzung von GNU autotools
6.5. Benutzung von GNU gettext
6.6. Die Benutzung von perl
6.7. Benutzung von X11
6.8. Benutzung von GNOME
6.9. Benutzung von Qt
6.10. Benutzung von KDE
6.11. Benutzung von Java
6.12. Webanwendungen, Apache und PHP
6.13. Python benutzen
6.14. Benutzung von Tcl/Tk
6.15. Emacs benutzen
6.16. Ruby benutzen
6.17. SDL verwenden
6.18. wxWidgets verwenden
6.19. Verwendung von Lua
6.20. Xfce verwenden
6.21. Mozilla verwenden
6.22. Benutzung von Datenbanken
6.23. Starten und Anhalten von Diensten (rc Skripten)
6.24. Hinzufügen von Benutzern und Gruppen
6.25. Von Kernelquellen abhängige Ports

Es gibt einige Dinge mehr, die zu beachten sind, wenn man einen Port erstellt. Dieser Abschnitt erklärt die wichtigsten.

6.1. Shared-Libraries

Wenn Ihr Port eine oder mehrere Shared-Libraries installiert, dann definieren Sie bitte eine USE_LDCONFIG make-Variable, die bsd.port.mk anweisen wird, ${LDCONFIG} -m auf das Verzeichnis, in das die neue Library installiert wird (normalerweise PREFIX/lib), während des post-install-Targets anzuwenden, um sie im Shared-Library-Cache zu registrieren. Diese Variable, wenn definiert, wird auch dafür sorgen, dass ein entsprechendes @exec /sbin/ldconfig -m und @unexec /sbin/ldconfig -R-Paar zu Ihrer pkg-plist-Datei hinzugefügt wird, sodass ein Benutzer, der das Paket installiert, die Bibliothek danach sofort benutzen kann und das System nach deren Deinstallation nicht glaubt, die Bibliothek wäre noch da.

USE_LDCONFIG= yes

Wenn nötig, können Sie das Standardverzeichnis außer Kraft setzen, indem Sie den USE_LDCONFIG Wert auf eine Liste von Verzeichnissen setzen, in die Shared Libraries installiert werden sollen. Wenn Ihr Port z.B. diese Bibliotheken nach PREFIX/lib/foo und PREFIX/lib/bar installiert, könnten Sie folgendes in Ihrem Makefile benutzen:

USE_LDCONFIG= ${PREFIX}/lib/foo ${PREFIX}/lib/bar

Bitte überprüfen Sie dies genau. Oft ist das überhaupt nicht nötig oder kann durch -rpath oder das Setzen von LD_RUN_PATH während des Linkens umgangen werden (s. lang/moscow_ml für ein Beispiel), oder durch einen Shell-Wrapper, der LD_LIBRARY_PATH setzt, bevor er die Binärdatei ausführt, wie es www/seamonkey tut.

Wenn Sie 32-Bit Libraries auf 64-Bit Systemen installieren, benutzen Sie stattdessen USE_LDCONFIG32.

Versuchen Sie Shared-Library-Versionsnummern im libfoo.so.0 Format zu halten. Unser Runtime-Linker kümmert sich nur um die Major (erste) Nummer.

Wenn sich die Major-Library-Versionsnummer während der Aktualisierung zu einer neuen Portversion erhöht, sollte auch die PORTREVISION aller Ports, die die Shared-Library linken, erhöht werden, damit diese mit der neuen Version der Bibliothek neu kompiliert werden.


Fragen zum FreeBSD Ports-System richten Sie bitte an <ports@FreeBSD.org>, Fragen zu diesem Dokument hingegen an <de-bsd-translators@de.FreeBSD.org>.