update-etc-shells: @${ECHO_MSG} "updating /etc/shells" @${CP} /etc/shells /etc/shells.bak @( ${GREP} -v ${PREFIX}/bin/bash /etc/shells.bak; \ ${ECHO_CMD} ${PREFIX}/bin/bash) >/etc/shells @${RM} /etc/shells.bak
Kapitel 8. Die pkg-* Dateien
This translation may be out of date. To help with the translations please access the FreeBSD translations instance.
Table of Contents
8.1. pkg-message
Wenn Sie dem Anwender bei der Installation weitere Informationen anzeigen wollen, so können Sie diese Nachricht in pkg-message speichern. Diese Vorgehensweise ist oft nützlich, um zusätzliche Schritte anzuzeigen, die nach pkg_add(1) durchgeführt werden müssen. Dadurch können Sie auch Lizenzinformationen darstellen.
Wollen Sie nur ein paar Zeilen über die Einstellungen zum Erstellen des Ports oder Warnungen ausgeben, benutzen Sie ECHO_MSG
. pkg-message ist nur für Schritte nach der Installation vorgesehen. Sie sollten den Unterschied zwischen ECHO_MSG
und ECHO_CMD
beachten: Ersteres wird benutzt, um Informationen auf dem Bildschirm auszugeben, während Letzteres für Kommando-Pipelining bestimmt ist.
Ein gutes Beispiel für die Benutzung der beiden Befehle ist in shells/bash2/Makefile zu finden:
Stellen Sie sicher, dass sie auf die korrekten Tools zum Verwalten von Diensten verweisen.
* Verwenden Sie |
Die pkg-message wird nicht zur pkg-plist hinzugefügt. Sie wird auch nicht automatisch angezeigt, falls ein Anwender den Port installiert. Sie müssen also die Ausgabe selbst im |
8.2. pkg-install
Sollte es nötig sein, dass Ihr Port bei der Installation des Binärpakets mit pkg_add(1) Befehle ausführt, können Sie das Skript pkg-install benutzen. Dieses Skript wird automatisch dem Paket hinzugefügt und zweimal von pkg_add(1) ausgeführt: Zuerst als ${SH} pkg-install ${PKGNAME} PRE-INSTALL
und beim zweiten Mal als ${SH} pkg-install ${PKGNAME} POST-INSTALL
. $2
kann also getestet werden, um festzustellen, in welchem Modus das Skript ausgeführt wird. Die Umgebungsvariable PKG_PREFIX
wird auf das Verzeichnis gesetzt, in welches das Paket installiert wird. Siehe pkg_add(1) für weiterführende Informationen.
Das Skript wird nicht automatisch ausgeführt, wenn Sie den Port mit |
8.3. pkg-deinstall
Dieses Skript wird ausgeführt, wenn ein Paket deinstalliert wird.
Es wird zweimal von pkg_delete(1) aufgerufen. Das erste Mal als ${SH} pkg-deinstall ${PKGNAME} DEINSTALL
und dann als ${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL.
8.4. pkg-req
Muss Ihr Port entscheiden, ob er installiert werden soll oder nicht, können Sie ein pkg-req-"Bedingungsskript" verwenden. Dieses wird automatisch bei der Installation/ Deinstallation aufgerufen, um zu entscheiden, ob die Installation/ Deinstallation fortgesetzt werden soll.
Das Skript wird während der Installation von pkg_add(1) als pkg-req ${PKGNAME} INSTALL
aufgerufen. Bei der Deinstallation wird es von pkg_delete(1) als pkg-req ${PKGNAME} DEINSTALL
ausgeführt.
8.5. Ändern der Namen der pkg-* Dateien
Alle Namen der pkg- Dateien werden durch Variablen festgelegt. Sie können sie bei Bedarf also im Makefile des Ports ändern. Das ist besonders nützlich, wenn Sie die gleichen pkg- Dateien in mehreren Ports nutzen oder in eine der oben genannten Dateien schreiben wollen. Schreiben Sie niemals außerhalb des Unterverzeichnisses WRKDIR
pkg-*, eine Erklärung hierzu finden Sie in Schreiben ausserhalb von WRKDIR
.
Hier ist eine Liste von Variablennamen und ihren Standardwerten (PKGDIR
ist standardmäßig ${MASTERDIR}
).
Variable | Standardwert |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Bitte benutzen Sie diese Variablen anstatt PKG_ARGS
zu ändern. Wenn Sie PKG_ARGS
modifizieren, werden diese Dateien bei der Installation des Ports nicht korrekt in /var/db/pkg installiert.
8.6. Nutzung von SUB_FILES
und SUB_LIST
Die Variablen SUB_FILES
und SUB_LIST
sind nützlich, um dynamische Werte in Port-Dateien zu verwenden, wie beispielsweise der Installations-PREFIX
in pkg-message.
Die Variable SUB_FILES
enthält eine Liste von Dateien, die automatisch verändert werden. Jede Datei in SUB_FILES
muss ein entsprechendes Pendant datei.in im Verzeichnis FILESDIR
haben. Die modifizierte Version wird in WRKDIR
angelegt. Dateien, die als Werte von USE_RC_SUBR
(oder veraltet in USE_RCORDER
) gespeichert werden, werden automatisch zu SUB_FILES
hinzugefügt. Für die Dateien pkg-message, pkg-install, pkg-deinstall und pkg-req werden die jeweiligen Makefile-Variablen selbsttätig auf die geänderte Version der Datei gesetzt.
Die Variable SUB_LIST
ist eine Liste von VAR=WERT
-Paaren. Jedes Paar %%VAR%%
in den Dateien von SUB_FILES
wird mit WERT
ersetzt. Einige gebräuchliche Paare werden automatisch definiert: PREFIX
, LOCALBASE
, DATADIR
, DOCSDIR
, EXAMPLESDIR
. Jede Zeile, die mit @comment
beginnt, wird nach der Variablen-Ersetzung aus der neu erstellten Datei gelöscht.
Im folgenden Beispiel wird %%ARCH%%
mit der Systemarchitektur in pkg-message ersetzt:
SUB_FILES= pkg-message SUB_LIST= ARCH=${ARCH}
Beachten Sie bitte, dass in diesem Beispiel die Datei pkg-message.in im Verzeichnis FILESDIR
vorhanden sein muss.
Hier ein Beispiel für eine gute pkg-message.in:
Now it is time to configure this package. Copy %%PREFIX%%/shared/examples/putsy/%%ARCH%%.conf into your home directory as .putsy.conf and edit it.
Last modified on: 9. März 2024 by Danilo G. Baio