# port test /usr/ports/net/csup
This translation may be out of date. To help with the translations please access the FreeBSD translations instance .
make describe
ausführen
Einige der FreeBSD-Werkzeuge zur Pflege von Ports, wie zum Beispiel
portupgrade(1)
, verwenden eine Datenbank names
/usr/ports/INDEX
, welche Eigenschaften, wie z.B. Port-Abhängigkeiten, verfolgt.
INDEX
wird vom Makefile der höchsten Ebene,
ports/Makefile
, mittels
make index
erstellt, welches in das Unterverzeichnis jedes Ports wechselt und dort
make describe
ausführt. Wenn also
make describe
bei einem Port fehlschlägt, kann
INDEX
nicht generiert werden und schnell werden viele Leute darüber unzufrieden sein.
|
Es ist wichtig diese Datei erzeugen zu können, unabhängig davon, welche Optionen in
make.conf
vorhanden sind. Bitte vermeiden Sie es daher beispielsweise
|
Wenn
make describe
eine Zeichenkette anstatt einer Fehlermeldung erzeugt, sind Sie wahrscheinlich auf der sicheren Seite. Vergleichen Sie die erzeugte Zeichenkette mit
bsd.port.mk
, um mehr über deren Bedeutung zu erfahren.
Beachten Sie bitte außerdem, dass die Benutzung einer aktuellen Version von
portlint
(wie im nächsten Abschnitt beschrieben) automatisch
make describe
startet.
Bitte überprüfen Sie Ihre Arbeit stets mit
portlint
, bevor Sie diese einreichen oder committen.
portlint
warnt Sie bei häufigen Fehlern, sowohl funktionaler als auch stilistischer Natur. Für einen neuen (oder repokopierten) Port ist
portlint -A
die gründlichste Variante; für einen bereits existierenden Port ist
portlint -C
ausreichend.
Da
portlint
heuristische Methoden zur Fehlersuche benutzt, kann es vorkommen, dass Warnungen für Fehler erzeugt werden, die keine sind. Gelegentlich kann etwas, das als Problem angezeigt wird, aufgrund von Einschränkungen im Port-System nicht anders gelöst werden. Wenn es Zweifel gibt, fragen Sie am besten auf
FreeBSD ports
nach.
Das Programm ports-mgmt/porttools ist Teil der Ports-Sammlung.
port
ist das Front-End-Skript, das Ihnen dabei behilflich sein kann Ihre Arbeit als Tester zu vereinfachen. Um einen neuen Port zu testen oder einen bereits bestehenden Port zu aktualisieren, können Sie
port test
verwenden, damit die Tests, inklusive der
portlint
-Überprüfung, durchgeführt werden. Dieser Befehl spürt ausserdem alle nicht in
pkg-plist
enthaltenen Dateien auf und gibt eine Liste dieser aus. Hier ein Beispiel:
# port test /usr/ports/net/csup
PREFIX
und
DESTDIR
PREFIX
bestimmt, an welche Stelle der Port installiert werden soll. In der Regel ist dies
/usr/local
oder
/opt
, was jedoch anpassbar ist. Ihr Port muss sich an diese Variable halten.
DESTDIR
, wenn es vom Benutzer gesetzt wird, bestimmt die alternative Umgebung (in der Regel eine Jail oder ein installiertes System, welches an anderer Stelle als
/
eingehängt ist). Ein Port wird unter
DESTDIR
/
PREFIX
installiert und registriert sich in der Paket-Datenbank unter
DESTDIR
/var/db/pkg. Da
DESTDIR
mittels eines
chroot(8)
-Aufrufs vom Ports-System automatisch gesetzt wird, brauchen Sie keine Änderungen oder besondere Pflege für
DESTDIR
-konforme Ports.
Der Wert von
PREFIX
wird auf
LOCALBASE
gesetzt (Standard ist
/usr/local
). Falls
USE_LINUX_PREFIX
gesetzt ist, wird
PREFIX LINUXBASE
annehmen (Standard ist
/compat/linux
).
Die Vermeidung der hart kodierten Angaben von
/usr/local
oder
/usr/X11R6
im Quelltext wird den Port viel flexibler machen und erleichtert es die Anforderungen anderer Einsatzorte zu erfüllen. Für X-Ports, die
imake
benutzen, geschieht dies automatisch; andernfalls kann dies erreicht werden, indem alle Angaben von
/usr/local
(oder
/usr/X11R6
für X-Ports, die nicht imake benutzen) in den verschiedenen
Makefile
s im Port ersetzt werden, um
${PREFIX}
zu lesen, da diese Variable automatisch an jede Stufe des Build- und Install-Prozesses übergeben wird.
Vergewissern Sie sich bitte, dass Ihre Anwendung nichts unter
/usr/local
an Stelle von
PREFIX
installiert. Um dies festzustellen, können Sie folgendes machen:
# make clean; make package PREFIX=/var/tmp/`make -V PORTNAME`
Wenn etwas außerhalb von
PREFIX
installiert wird, so gibt der Prozess der Paketerstellung eine Meldung aus, dass es die Dateien nicht finden kann.
Dies prüft nicht das Vorhandensein eines internen Verweises oder die richtige Verwendung von
LOCALBASE
für Verweise auf Dateien anderer Ports. Das Testen der Installation in
/var/tmp/
make -V PORTNAME
würde dies erledigen.
Die Variable
PREFIX
kann in Ihrem
Makefile
oder der Umgebung des Benutzers neu gesetzt werden. Allerdings wird für einzelne Ports dringend davon abgeraten diese Variable in den
Makefile
s direkt zu setzen.
Verweisen Sie bitte außerdem auf Programme/Dateien von anderen Ports durch die oben erwähnten Variablen und nicht mit den eindeutigen Pfadnamen. Wenn Ihr Port zum Beispiel vom Makro
PAGER
erwartet, dass es den vollständigen Pfadnamen von
less
enthält, benutzen Sie folgendes Compiler-Flag:
-DPAGER=\"${LOCALBASE}/bin/less\"
anstatt
-DPAGER=\"/usr/local/bin/less\"
. Somit ist die Wahrscheinlichkeit höher, dass es auch funktioniert, wenn der Administrator den ganzen
/usr/local
-Baum an eine andere Stelle verschoben hat.
Wenn Sie ein begeisterter Ports-Entwickler sind möchten Sie vielleicht einen Blick auf die Tinderbox werfen. Es ist ein leistungsstarkes System zur Erstellung und zum Testen von Ports, welches auf Skripten basiert, die auf Pointyhat verwendet werden. Sie können Tinderbox installieren, indem Sie den Port ports-mgmt/tinderbox benutzen. Bitte lesen Sie die mitgelieferte Dokumentation gründlich, da die Konfiguration nicht einfach ist.
Um Näheres darüber zu erfahren, besuchen Sie bitte die Tinderbox Homepage .
Last modified on : 18. Februar 2025 by Fernando Apesteguía