Workflow/Tools zum Installieren der Befehlszeilenanwendung unter OS X (Yosemite oder höher)

Ich verwalte eine Reihe von Befehlszeilen-Bioinformatik-Tools, die wir als Quell- und Binärdateien für Linux, Windows und OS X verteilen. Derzeit ist die Binärdistribution für OS X nur eine ZIP-Datei, die Verzeichnisse für die Binärdateien und die Dokumentation enthält. Unsere Installationsanleitung weist den Benutzer an, das Archiv zu entpacken, die Binärdateien an den gewünschten Speicherort zu kopieren und ihren PATH so zu aktualisieren, dass er auf die Binärdateien verweist. Das ist in Ordnung für Benutzer, die sich mit der Befehlszeile auskennen, aber einige Benutzer haben noch nie von /usr/local/bin gehört, ganz zu schweigen von PATH. Wir würden gerne einen Installer haben, der eher dem OS X-Idiom entspricht.

Das Erstellen eines Anwendungspakets scheint nicht zu funktionieren, da unsere Tools ausschließlich auf der Befehlszeile basieren und eine Terminalsitzung benötigen, um sie zu verwenden. Es scheint, als hätten wir PackageMaker verwenden können, um ein Installationsprogramm zu erstellen, aber das ist jetzt veraltet.

Gibt es einen aktuellen Standard-Installer für Kommandozeilen-Tools unter OS X, vorzugsweise einen mit CPACK-Unterstützung?

Antworten (2)

Das Standardpaketformat ist das "pkg"-Format. Es wird nicht oft für Anwendungen verwendet, aber es ist in Ordnung für ein Nur-Terminal-Dienstprogramm.

  • Mein bevorzugtes Tool zum Erstellen von Paketen heißt Packages .
  • Ich habe es selbst nicht verwendet, aber es sieht so aus, als ob CMake PackageMaker unterstützt , ein Drittanbieter-Tool zum Erstellen von OS X-Paketen.
  • Es gibt auch das integrierte Dienstprogramm pkgbuild .

Stellen Sie einfach sicher, dass Sie nichts außerhalb der Standardpfade ( /Library, /Applications, oder /usr/local/) berühren, und alles wird gut.

Entschuldigung, ich hatte einen Tippfehler in meiner Frage, ich meinte PakageMaker, nicht PackageManger. Ja, CMake unterstützt PackageMaker, aber PackageMaker ist seit Yosemite veraltet. Danke für den Hinweis auf pkgbuild. Möglicherweise muss ich meine eigenen CMake-Skripts erstellen, um pkgbuild zu verwenden.
Eine andere Möglichkeit: stackoverflow.com/a/33043862/2454476 (Erstellen von .pkg-Dateien unter Linux).
Oder Sie könnten ein Skript schreiben, Applescript wäre gut für Benutzereingaben, aber Shell-Skript könnte ausreichen.

Vielleicht möchten Sie einen Blick auf EPM , den Easy Package Manager, werfen .

Es kann Mac OS X pkgsowie RedHat RPM, Debian debund einige weitere Paketformate paketieren – alle aus denselben Quelldateien, unmittelbar nach dem Build-Schritt.

Es wurde ursprünglich von Michael Sweet geschrieben, dem Autor von CUPS (der jetzt für Apple arbeitet), und wird immer noch von ihm gepflegt.

Die Dokumentation ist hier:

EPM ist über MacPorts verfügbar (allerdings in einer älteren Version, v4.1, während die aktuelle Version v4.3 ist).

Um es in Ihrem Makefile zu verwenden, ist es so einfach wie das Hinzufügen eines zusätzlichen Ziels wie diesem:

osx:
    epm -f osx -v -s doc/epmlogo.tif $(MY_PROJECT) 

Natürlich können Sie es auch eigenständig (nicht aus dem Makefile) verwenden, um Ihre Software zu paketieren.

Es erfordert, dass Sie eine Liste von Dateien mit ihren Pfaden, Berechtigungen und einigen anderen Metainformationen erstellen, die gepackt werden sollten.