Installation sans assistance du fichier pkg

14

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

Par exemple, créer un mpkg et exécuter un script qui a installé le package via la console et le programme d'installation.

Contexte: J'ai dû déployer un package sur de nombreux utilisateurs finaux osx. Nous n'avons pas de bureau Apple ni d'accès root à ces machines. il s'agit d'un package pkg préconfiguré, mais si l'utilisateur le lance normalement, la pré-configuration sera écrasée. Sur Windows, je m'en rends compte avec une archive auto-exécutable qui lance un msi avec une installation silencieuse. Sur linux, je construis des paquets rpm / deb mais sur osx je n'ai trouvé aucun moyen approprié :(

Megachip
la source

Réponses:

17

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 .mpkg à l'aide de cette syntaxe:

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

Si le programme d'installation n'est pas «signé» correctement, vous devrez ajouter -allowUntrusted

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

Vous devrez peut-être également spécifier vous souhaitez l'installer, en utilisant -target /(je ne suis pas sûr à 100% que cela soit nécessaire , mais c'est une bonne idée):

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

Maintenant, le problème est qu'il sudova vous demander votre mot de passe administrateur lorsque vous essayez de l'exécuter installer. Si vous souhaitez automatiser cela, vous devez indiquer à votre Mac de ne pas exiger votre sudomot de passe lors de l'exécution du programme d'installation. Pour ce faire, vous pouvez ajouter cette ligne à votre /etc/sudoersfichier:

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

Voir man visudopour obtenir des instructions sur la modification de ce fichier.

Deuxièmement, la préoccupation pratique

Si vous êtes la seule personne à utiliser votre Mac, l'ajout de la ligne ci-dessus /etc/sudoersn'est pas un problème.

Cependant, s'il s'agit d'un Mac partagé, les autres personnes du groupe «admin» pourront s'exécuter /usr/sbin/installersans être invité à entrer leur mot de passe.

De plus, évidemment, si quelqu'un entre dans votre compte «administrateur», il pourrait aussi, théoriquement, causer des méfaits avec /usr/sbin/installer. Bien que je ne sache pas exactement ce qu'ils feraient, c'est un compromis entre sécurité et commodité.

Troisièmement, un script github

J'ai écrit pkginstall.sh pour faire de belles choses comme journaliser le processus, ainsi que pour vous dire si vous êtes censé redémarrer ou non après avoir installé le paquet.

Dernier point mais non le moindre: automatiser le "comment?"

En ce qui concerne la façon dont vous souhaitez automatiser l'installation, cela dépend de plus de détails sur ce que vous essayez de faire. Vous pouvez, par exemple, créer un dossier tel que ~ / Action / AutoInstallPKG / et indiquer launchdd'installer tous les fichiers .pkg ou .mpkg qui sont ajoutés à ce dossier, puis le déplacer de côté après.

J'avais l'intention de faire quelque chose comme ça depuis longtemps, et donc je l'ai finalement mis en place. Vous pouvez le trouver sur https://github.com/tjluoma/autopkginstall . Les instructions d'installation sont incluses dans Github, donc je ne les répéterai pas ici.

TJ Luoma
la source
Thx, c'est un grand pas en avant pour moi, mais ce n'est toujours pas la solution finale. Je dois déployer un package sur de nombreux macs différents (donc sudoes n'est pas une option), où l'utilisateur n'est pas autorisé à modifier la configuration. Donc le meilleur moyen (qui fonctionne sur windows et linux) où un fichier sur lequel l'utilisateur peut cliquer et le reste se fera automatiquement. Mais je vais vérifier votre solution, possible en combinaison avec un iceberg ou des packages, je peux trouver une solution correspondante. Alors j'espère que ça va si je laisse cette question ouverte encore quelques jours pour que d'autres puissent y apporter des réponses à ...
Megachip
3
De plus, pour référence future, des détails comme ceux-ci seraient utiles à inclure dans votre question initiale. La réponse pour un utilisateur final qui cherche à automatiser des installations sur son système est complètement différente pour quelqu'un qui essaie de distribuer sur de nombreux Mac et OS. Il est peu probable que vous trouviez un moyen qui fonctionne de la même manière sous Windows et Linux et Mac OS X. Même les entreprises aussi grandes que Dropbox ont des installateurs différents pour chaque système d'exploitation.
TJ Luoma
Vous avez raison, désolé. Je devrais peut-être ajouter ceci à la question.
Megachip
Merci encore pour tout votre travail, j'ai concrétisé ma question [ici] ( apple.stackexchange.com/questions/120026/… ). Votre autopkginstall est une bonne chose, mais il me faut avoir ce "installé" sur chaque client, ce qui n'est pas possible. On dirait que ma question ici n'était pas assez concrète. Désolé pour cela
Megachip
2

Je pense que vous dansez très près de votre propre réponse. Vous mentionnez que vous ne disposez pas du Bureau à distance d'Apple. Je recommanderais d'en tenir compte pour ce que vous essayez de faire. Je l'utilise comme vous le décrivez tout le temps - 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 dis à Remote Desktop de l'installer. Il fait bien plus que cela, mais il fera ces installations à distance pour vous. C'est 80 $ pour une licence avec des clients illimités.

Si le 80 $ est un point critique - vous pourriez regarder munki , qui est

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

Je ne l'ai pas utilisé moi-même, mais j'ai beaucoup de respect pour les gens qui le codent et l'utilisent dans la vraie vie. Il est un peu plus configuré et fonctionne que le Bureau à distance - mais propose également beaucoup plus d'options.

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

evilblender
la source
Oui, mais pour autant que je sache, vous avez besoin d'un accès root pour utiliser le bureau à distance?
Megachip
Vous aurez besoin d'un accès administrateur pour configurer le bureau à distance sur les ordinateurs clients. ARD ne vous laissera pas simplement installer des fichiers sur n'importe quel Mac que vous voyez sur un réseau. :)
evilblender
Cette possibilité n'est pas donnée, désolé.
Megachip
2

Enfin, grâce à la solution dr.nixon de ma question concrète , je dois gérer la création d'une installation sans assistance comme décrit dans la question via Platypus .

L'utilisateur doit démarrer l'application, le reste se fera automatiquement.

Megachip
la source
L'utilisateur peut le mettre dans les éléments de démarrage pour qu'il démarre toujours au démarrage.
AnneTheAgile