Ich muss ein Deb-Paket erstellen, das ein Verzeichnis für Protokolle erstellt. Ich möchte ein Verzeichnis erstellen /var/logs/my_package
und seinen Besitzer in ändern my_user
.
In den Dokumenten gibt es Informationen , die ich Datei erstellen kann debian/dir
. Es gibt jedoch Informationen, dass dies nicht der beste Weg ist, dies zu tun. Und es gibt keine Informationen darüber, wie man den Verzeichnisbesitzer ändern soll (ich denke darüber nach, den Befehl chown my_user.my_user /var/logs/my_package
in eine debian/postinst
Datei zu setzen).
Was ist die empfohlene Methode zum Erstellen eines Verzeichnisses mit dem Deb-Paket?
permissions
package-management
directory
deb
chown
Bessarabov
quelle
quelle
Antworten:
Sie hatten Recht, Sie benötigen eine
debian/my_package.postint
Datei, um einen solchen Vorgang auszuführen:Hinweis : Das Skript prüft vor dem Aufruf, ob der Benutzer vorhanden ist
chown
.quelle
This generally means there is a problem with the Makefile.
ich verstehe diese Nachricht, dass es einen anderen Weg gibt, dies zu tun. Und ich möchte herausfinden, wie diese Aufgabe empfohlen wird.debian/rules
demMakefile
für Debian-Pakete erfolgen. Da ich Ihre nicht kannte, schlugdebian/rules
ich lieber eine Lösung vor, die auf einer einzelnen Datei basiert. Derchown
Befehl muss jedoch nach der Installation ausgeführt werden. debian / dirs sollte vermieden werden, aber meine erste Antwort ist vollkommen in Ordnung. Bitte stimmen Sie ab und akzeptieren Sie es, danke.Sie müssen kein
postinst
Skript erstellen , aber die Lösung ist immer noch etwas schwierig. Ich benutzedh
Platzhalter indebian/rules
:das macht alle benötigten Sachen. Aber ich muss den Besitz eines Verzeichnisses überschreiben (nennen wir es Daten). Also muss ich eine Ausnahme machen, ich benutze eine spezielle Direktive (dies ist ein Beispiel):
Das Datenverzeichnis muss sich nicht in der * .dirs-Datei befinden. Trotzdem gibt es einen Trick. Debhelper enthält das Skript dh_fixperms, mit dem der Besitz wieder auf root festgelegt wird. Daher müssen wir auch Folgendes überschreiben:
Das ist alles. Beachten Sie, dass das Datenverzeichnis nicht als Conffile gilt und daher beim Entfernen des Pakets entfernt wird. Wenn Sie es zu einem Conffile machen müssen, ist es eine andere Geschichte.
quelle