2010-03-27 3 views
1

Je suis en train de développer une application de type cacao qui doit prendre en charge une requête http, lire un système de fichiers, copier des fichiers dans/usr/share, configurer cron (pas launchd) et demander des informations à l'utilisateur. J'ai abandonné PackageMaker car j'ai besoin de plus de flexibilité.Cocoa - Comment copier des fichiers dans/usr/share?

tout va bien actuellement, mais ma dernière étape d'installation, je dois:

  • Supprimer mon dossier d'application précédemment installée (si elle existe). Il est toujours le même chemin:/usr/share/my_app
  • Recréer le dossier d'application à:/usr/share/my_app
  • Copier les fichiers d'application dans/usr/share/my_app
  • Mise à jour d'un d'emploi cron

Il est très important que/usr/share/MY_APP reste protégé avec des privilèges administratifs, donc un habitué ne devrait pas le supprimer.

Quelle serait la meilleure approche pour mettre en œuvre ces étapes?

BTW, j'utilise Xcode 3.2.

Merci beaucoup! Carlos.

+4

Tout ce qui se trouve sous/usr sauf/usr/local/* fait partie du système d'exploitation d'Apple et seul Apple devrait s'y installer. Si une application Cocoa doit être sous/Applications ou similaire afin que les services, etc peuvent le trouver. – Mark

+3

Et les paquets d'installation sont vraiment la voie à suivre. Ils peuvent exécuter du code personnalisé, c'est ce que vous devriez faire. – Josh

Répondre

2

Entre le script de contrôle en amont, le script postflight et peut-être un plug-in Installer pour l'interface utilisateur personnalisée, je ne vois aucune raison pour laquelle vous ne pouvez pas faire tout cela dans PackageMaker.

Remarque: "Plug-in d'installateur" est un peu trompeur. L'utilisateur doit et non installer le plug-in quelque part en tant qu'étape séparée; vous incluez le plug-in à l'intérieur de votre paquet, et le programme d'installation l'utilisera à partir de là.

Le document pertinent est a ReadMe file in a sample code project. Il existe également un modèle de projet plug-in Installer dans Xcode depuis la version 2.0.

En outre, an Installer plug-in won't get used if the user does a command-line installation. Bien sûr, ils ne peuvent pas du tout installer à partir de la ligne de commande (ce qui inclut l'installation à distance sur un bureau ou un laboratoire rempli de machines) si vous écrivez votre propre programme d'installation personnalisé. Par ailleurs: Pourquoi/usr/share? Qu'est-ce que vous mettez là? Il pourrait y avoir une meilleure façon de faire ce que vous essayez vraiment d'accomplir.

+0

La raison de l'installation dans/usr/share est que l'application est une application OS croisée (http://preyproject.com) et que sa première distribution vient de Linux. En outre, il n'a pas d'interface utilisateur, car il s'agit d'un travail cron qui vérifie une URL avec une fréquence donnée, et au cas où il devrait, exécuter beaucoup d'instructions bash. L'application Cocoa est nécessaire pour configurer correctement et de manière conviviale l'application de base, et nécessite de réutiliser les configurations précédentes (le cas échéant), faire du POST et GET à un service http reposant, et implémenter une certaine logique. Encore merci! – cyaconi

+0

cyaconi: Comme je l'ai noté, vous devriez être capable de faire la même chose dans un plug-in Installer. –

+0

Peter, je vais essayer. Je vous remercie! – cyaconi

Questions connexes