14 votes

Installation sans surveillance d'un fichier pkg

Existe-t-il une possibilité de créer une installation sans surveillance d'un paquet pkg ?

Par exemple, créer un mpkg et exécuter un script qui a installé le paquet via la console et l'installateur.

Contexte : J'ai dû déployer un paquet à plusieurs utilisateurs osx. Il s'agit d'un paquet pkg pré-configuré, mais si l'utilisateur le lance de manière normale, la pré-configuration sera écrasée. Sous Windows, je réalise ceci avec une archive auto-exécutable qui lance un msi avec une installation silencieuse. Sous linux, je construis des paquets rpm/deb mais sous osx, je n'ai pas trouvé de méthode appropriée :(

17voto

moodforaday Points 2633

Réponse courte : oui.

Réponse longue : Oui, mais une réponse complète à cette question comprend une réponse technique et une préoccupation pratique.

Tout d'abord, la réponse technique

Vous pouvez installer un .pkg ou un .mpkg en utilisant cette syntaxe :

sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"

Si le programme d'installation n'est pas "signé" correctement, vous devrez ajouter le code suivant -allowUntrusted

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"

Vous devrez peut-être aussi préciser vous voulez l'installer, en utilisant -target / (Je ne suis pas sûr à 100% que ce soit requis mais c'est une bonne idée) :

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /

Maintenant, le problème est que sudo va vous demander votre mot de passe d'administrateur lorsque vous essayez d'exécuter installer . Si vous voulez automatiser cela, vous devez dire à votre Mac de ne pas demander à votre sudo mot de passe lors de l'exécution du programme d'installation. Pour ce faire, vous pouvez ajouter cette ligne à votre fichier /etc/sudoers fichier :

%admin ALL=NOPASSWD: /usr/sbin/installer

Voir man visudo pour obtenir des instructions sur l'édition de ce fichier.

Deuxièmement, le souci pratique

Si vous êtes la seule personne à utiliser votre Mac, ajouter la ligne ci-dessus à /etc/sudoers n'est pas un gros problème.

Cependant, s'il s'agit d'un Mac partagé, d'autres personnes appartenant au groupe "admin" pourront exécuter le programme /usr/sbin/installer sans être invité à saisir son mot de passe.

De même, il est évident que si quelqu'un s'introduit dans votre compte "admin", il peut lui aussi, en théorie, causer des problèmes avec les éléments suivants /usr/sbin/installer . Bien que j'aie du mal à imaginer ce qu'ils feraient exactement, il s'agit d'un compromis entre sécurité et commodité.

Troisièmement, un github script

J'ai écrit pkginstall.sh pour faire des choses intéressantes, comme consigner le processus, et vous dire si vous devez ou non redémarrer après l'installation du paquet.

Le dernier mais non le moindre : Automatisez "Comment ?"

Pour ce qui est de la façon dont vous voulez automatiser l'installation, cela dépend des spécificités de ce que vous essayez de faire. Vous pourriez, par exemple, créer un dossier tel que ~/Action/AutoInstallPKG/ et dire à launchd pour installer tous les fichiers .pkg ou .mpkg qui sont ajoutés à ce dossier, et le mettre de côté ensuite.

Cela fait longtemps que je voulais faire quelque chose comme ça, et j'ai fini par le faire. Vous pouvez le trouver à https://github.com/tjluoma/autopkginstall . Les instructions d'installation sont incluses dans Github, donc je ne les répéterai pas ici.

2voto

evilblender Points 989

Je pense que vous dansez très près de votre propre réponse. Vous mentionnez que vous n'avez pas le Remote Desktop d'Apple. Je vous recommande de l'envisager pour ce que vous essayez de faire. Je l'utilise tout le temps comme vous le décrivez - j'ai un fichier .pkg qui doit être installé sur plusieurs ordinateurs de mon réseau local, je sélectionne les ordinateurs sur lesquels je veux qu'il soit installé et je demande à Remote Desktop de l'installer. Il fait beaucoup plus que cela, mais il VA faire ces installations à distance pour vous. Il coûte 80 $ pour une licence avec un nombre illimité de clients.

Si les 80 dollars constituent un point de friction, vous pourriez envisager de munki qui est

"un ensemble d'outils qui, utilisés conjointement avec un référentiel basé sur un serveur web de paquets et de métadonnées de paquets, peuvent être utilisés par les administrateurs d'OS X pour gérer les installations de logiciels (et dans de nombreux cas, les suppressions) sur des ."

Je ne l'ai pas utilisé moi-même, mais j'ai beaucoup de respect pour les personnes qui le codent et l'utilisent dans la vie réelle. Il est un peu plus difficile à installer et à utiliser que Remote Desktop, mais il offre également beaucoup plus d'options.

J'espère que vous pourrez utiliser l'un de ces deux programmes pour réaliser ce que vous recherchez.

2voto

Megachip Points 322

Enfin, grâce à dr.nixon solution de ma question concrète je dois m'occuper de la création d'une installation sans surveillance comme décrit dans la question via L'ornithorynque .

L'utilisateur doit lancer l'application, le reste se fait automatiquement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X