• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

PackageMaker und Permissions

martinv2

Doppelter Prinzenapfel
Registriert
14.04.12
Beiträge
437
Moin!

Der PackageMaker treibt mich in den Wahnsinn...

Einfache Aufgabe: ein Shell-Skript und eine launchd.plist zwecks Ausrollen per ARD in ein Package verpacken.

Mein Ansatz:
  • - unter einem lokalen Pseudo-Root-Verzeichnis die beiden Dateien an die Stellen packen, wo sie (relativ) hingehören (./Library/Scripts und ./Library/LaunchDaemons). Besitzer und Rechte korrekt einstellen (insbes. 644 für die laund.plist).
  • - Verpacken mit einem Kommandozeilen-Aufruf von PackageMaker (wobei --root auf mein Pseudo-Root zeigt)

Beim Installieren werden die Dateien an die richtigen Stellen gelegt, ABER: die launchd.plist hat plötzlich den Mode 664 . Und launchd lehnt dies as "dubious" ab.

Hilfe?
 
Es haben wohl noch andere das Problem, wenn man bei Google nach "packagemaker set permissions" sucht. Hast Du neben dem Setzen der korrekten Berechtigungen auch den Owner richtig gesetzt?
Eine Option beim Zusammenpacken scheint mir noch interessant:
If you're building with packagemaker on the commandline make sure you specify --no-recommend, otherwise it'll apply "recommended" permissions from your system to the package.​
http://stackoverflow.com/questions/6798130/packagemaker-permissions-issues-in-os-x-lion
 
  • Like
Reaktionen: martinv2
--no-recommend hat's gebracht - vielen Dank für den Tipp. Die Option hatte ich bei der Ausgabe von --help glatt übersehen.

Jetzt weiter zum postflight-Skript (was anscheinend nicht ausgeführt wird)...
 
Dann viel Erfolg! ;-) Ich gebe zu, ich hab nur gegooglet! ;-)
 
BTW
/Library/Scripts ist nicht für Shellskripten reserviert - das ist ein vom AppleSkript Subsystem automatisch durchsuchter Ordner.
Typischer Unix-Kram findet sich wohl unter /usr/libexec/ oder noch besser /usr/local/libexec/
 
@Rastafari: danke für den Hinweis. Allerdings kommt es mir komisch vor, mich mit einem LaunchDaemon außerhalb der "normalen" OSX-Verzeichnisstruktur einzunisten. Wäre (ein Unterverzeichnis von) /Library/Application Support nicht eher geeignet?
 
"Application Support" sollte genau das bleiben, was der Name aussagt: Ein Pool von Hilfsprogrammen und sonstigen Anwendungsresourcen, deren Präsenz grundsätzlich optional ist, und die ggf. von einer dazugehörigen, für den Benutzer sichtbaren GUI-Anwendung selbst angelegt/gepflegt/regeneriert werden. launchd ist keine Mac-Anwendung, sondern furztrockenes Unix.

... The Application Support directory is where your app stores any type of file that supports the app but is not required for the app to run, such as document templates or configuration files. ...​
 
Verstanden, danke. Also nach /usr/local/libexec ...
 
Und falls jemand beim Suchen diesen Thread findet:

Ich habe Hinweise darauf gefunden, dass das Nicht-Funktionieren des postflight-Skripts mit der Verwendung von "--target 10.5" zusammenhängt. Daraufhin habe ich die Option rausgenommen, und postflight wird ausgeführt.