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.bakKapitel 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 WRKDIRpkg-*, 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: 18. Februar 2025 by Fernando Apesteguía