2010-10-07 5 views
3

Comment puis-je créer un programme d'installation novice (téléchargement cliquable) pour un outil de ligne de commande Mac OS X et où le binaire doit-il être installé pour qu'un utilisateur débutant sans connaissance des chemins de shell puisse simplement ouvrir l'application Terminal tapez "foo" pour exécuter l'outil foo fraîchement installé?Programme d'installation pour un simple outil de ligne de commande Mac OS?

Le programme d'installation peut-il également installer la documentation pour que l'utilisateur puisse taper "man foo"?

Y a-t-il d'autres options à considérer pour rendre l'utilisation d'un outil de ligne de commande (stdin, stdout) pur accessible à un utilisateur Mac novice?

+0

Allez-vous faire un novice pour utiliser la ligne de commande? Cela semble oxymorique ... – Yuji

+0

@Yuji: C'est exactement mon besoin. J'ai déjà un grand nombre d'utilisateurs novices pour mon outil de ligne de commande, mais l'e-mail que j'ai reçu indique que beaucoup d'entre eux avaient besoin d'une aide experte pour tout installer correctement. – hotpaw2

+0

Même problème, mais dans une version plus simple: J'ai un fichier exécutable déjà construit (ligne de commande Qt), et je veux le mettre dans un paquet de composants (.pkg). Aucun XCode impliqué. Comment je fais ça? –

Répondre

4

Quelle est la version minimale d'OS X que vous ciblez? 10.6 (et IIRC 10.5) incluent/usr/local/bin dans le PATH par défaut, mais pas 10.4. Tant que vous n'avez pas besoin de supporter 10.4, vous devez simplement placer l'exécutable dans/usr/local/bin et la page man dans/usr/local/share/man/man1 (ou quel que soit le numéro de chapitre approprié).

Pour construire l'installateur lui-même, vous pouvez utiliser l'utilitaire PackageMaker d'Apple (qui fait partie de Xcode). Créez un dossier local prototype avec les sous-dossiers bin et share/man/man1 et remplissez-les avec vos fichiers. Créez un projet de package dans PackageMaker et choisissez le nom de votre organisation et le système d'exploitation cible minimum. Faites glisser le dossier prototype dans la barre latérale Contenu du projet. Définissez la destination sur/usr/local. Passez à l'onglet Contenu et modifiez la propriété et les permissions d'installation des fichiers (le propriétaire/groupe doit probablement être root/admin, avec rwxrwxr-x perms sur les dossiers et l'exécutable, rw-rw-r-- sur le page de manuel). Si des fichiers non pertinents (par exemple, .DS_Store) se faufilent, excluez-les. Recherchez les autres paramètres que vous souhaitez modifier, puis enregistrez le projet et créez le programme d'installation. Ensuite, testez-le, pour vous assurer qu'il fait ce que vous attendez.

+0

Et cela peut-il être automatisé pour générer dans un CI? – hithwen

+1

@hithwen: Je ne suis pas sûr; Qu'est-ce qu'un "CI"? Il existe un outil 'packagemaker' de ligne de commande, mais je le connais moins bien. –

+0

Un système d'intégration continue tel que jenkins ou buildbot. Merci, je vais jeter un oeil à packagemaker – hithwen