title | prev | next | showBookMenu | weight | path |
---|---|---|---|---|---|
Kapitel 8. Die pkg-* Dateien |
books/porters-handbook/plist |
books/porters-handbook/testing |
true |
8 |
/books/porters-handbook/pkg-files/ |
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 man: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:
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
Note
|
Stellen Sie sicher, dass sie auf die korrekten Tools zum Verwalten von Diensten verweisen.
* Verwenden Sie |
Note
|
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 |
Sollte es nötig sein, dass Ihr Port bei der Installation des Binärpakets mit man: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 man: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 man:pkg_add[1] für weiterführende Informationen.
Note
|
Das Skript wird nicht automatisch ausgeführt, wenn Sie den Port mit |
Dieses Skript wird ausgeführt, wenn ein Paket deinstalliert wird.
Es wird zweimal von man:pkg_delete[1] aufgerufen. Das erste Mal als ${SH} pkg-deinstall ${PKGNAME} DEINSTALL
und dann als ${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL.
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 man:pkg_add[1] als pkg-req ${PKGNAME} INSTALL
aufgerufen. Bei der Deinstallation wird es von man:pkg_delete[1] als pkg-req ${PKGNAME} DEINSTALL
ausgeführt.
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.
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.