Question

J'ai un programme (créé par un collègue, porté de Linux mais compile avec succès sur Mac) que j'ai besoin de déployer dans de nombreux postes de travail MAC. Nous le faisons actuellement en poussant des fichiers PKG (pas ceux que nous avons créés).

Ma question générale (que d'autres pourraient trouver les réponses à utiles) est comment puis-je accomplir un programme / script de ligne de commande dans un fichier PKG qui installe le programme? La méthode habituelle pour emballer un fichier .app semble être suffisamment documentée, mais il existe des détails de la prise d'un programme arbitraire et de l'envelopper dans un programme d'installation PKG.

Les pages de l'homme pour pkgbuild (etc.) font beaucoup d'hypothèses - que vous avez déjà construit une application avec Xcode, que vous avez l'intention d'utiliser un .app et peut générer des plistes, etc. Tout ce que nous voulons faire Est-ce que le serveur Mac installe un programme non applications, et il souhaite utiliser des PKGS.

Il serait préférable que la solution soit scriptable de sorte que chaque fois que nous mettons à jour le programme, nous pouvons facilement créer un nouveau fichier PKG. Si une ressource décente expliquant déjà ce processus peut être liée que bien sûr, cela fonctionnerait également bien. La question ici: Faire des packages d'installation d'OS X comme un PRO-XCODE Developer ID PKG ne correspond pas à la nécessité d'installer simplement un programme de base de CLI.

Était-ce utile?

La solution

Je recommanderais Packages .

C'est scriptable afin qu'il puisse faire partie de votre processus de construction et génère un joli mpkg pour vous.

Nous l'utilisons pour automatiser le téléchargement de bibliothèques tiers, puis l'invocation de la machine à compiler, ainsi que l'installation de fichiers compilés.

En tant que note, bien que cela générera un MPKG, la plupart des distributions sont effectuées avec des images de disque, nous utilisons également HDIutil pour créer une image clairsemée, copiez-la à un DMG en lecture seule compressée, puis Distribuez cela.

Un exemple de cette procédure serait:

1) Créer un fichier DMG RW SPARSE RW.

hdiutil create -size 100M -type SPARSE -volname "MyInstaller" -fs HFS+ MyInstaller.dmg.sparseimage

2) Attachez à l'image. Note Nom du disque et du volume monté de la sortie (ex. / Dev / Disk2S1 et / Volumes / MyInstaller)

hdiutil attach MyInstaller.dmg.sparseimage

3) Copier dans MPKG Installer

cp -R Packages/build/My_Packages.mpkg /Volumes/MyInstaller/

4) detech de l'image.

hdiutil detach -force {mounted disk} (ex. hdiutil detach -force /dev/disk2s1)

5) Créez une image de lecture comprimée seule à partir d'une image sparpse écritable.

hdiutil convert "MyInstaller.dmg.sparseimage" -format UDZO -o "MyInstaller.dmg" -ov -imagekey zlib-level=9

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top