158 votes

Installer .pkg avec un terminal ?

Est-il possible d'installer un .pkg en utilisant un terminal ? (Je voulais installer une application via ssh).

201voto

nohillside Points 82672

/usr/sbin/installer

La commande Installer est utilisée pour installer les paquets d'installation Mac OS X sur un domaine ou un volume spécifié. La commande d'installation installe un seul paquetage par invocation, qui est spécifié avec le paramètre -package ( -pkg est accepté comme synonyme). Il peut s'agir d'un seul paquet ou d'un métapaquet. Dans le cas d'un métapaquet, les paquets qui font partie de l'installation par défaut seront installés, à moins qu'ils ne soient disqualifiés par un ou plusieurs outil(s).

Voir man installer pour la fonctionnalité complète. Souvent

sudo installer -pkg /path/to/package.pkg -target /

est tout ce qu'il faut. La cible est un "périphérique" (voir la page de manuel pour plus de détails ou lancer la commande installer -dominfo ). Ici, / est le lecteur principal, il accepte également les dispositifs tels que "/Volumes/Macintosh HD" ou /dev/disk0 .

7 votes

Notez que l'option -target est un périphérique et non un chemin d'accès. Gardez donc "/" dans la plupart des cas.

1 votes

@AlexV, je ne sais plus où j'en suis - / est un chemin d'accès et un périphérique y est monté. Alors pourquoi une option qui requiert un périphérique comme argument accepterait-elle / ?

3 votes

@muru - La documentation l'appelle "device", mais en réalité il a sa propre syntaxe pour définir la cible (pas exactement "unix device node"). Selon la page de manuel de l'installateur, il peut s'agir d'un nœud de périphérique (comme vous vous y attendez), de l'identifiant du disque (par exemple disk1s9), du point de montage (d'où "/"), de l'UUID du volume ou de l'un des domaines d'installation répertoriés dans la liste suivante installer -dominfo .

28voto

RCross Points 228

Juste au cas où vous en auriez besoin ; si vous voulez installer un .pkg sans accès Root :

installer -pkg myapp.pkg -target CurrentUserHomeDirectory

installera le paquet dans ~/Applications.

0 votes

@

1 votes

Est CurrentUserHomeDirectory dans ce cas, un jeton littéral spécial ? Ou doit-il être remplacé par $HOME ?

0 votes

Cela ne fonctionne pas pour moi. J'obtiens installer: Certificate used to sign package is not trusted Ensuite, lorsque j'essaie d'autoriserUntrusted, j'obtiens installer : Package name is Insta360 Studio 2022 installer : Installing at base path /var/Root installer : Preparing for installation........ installer : Preparing the disk........ installer : Preparing Insta360 Studio 2022........ installateur : L'installation a échoué.

8voto

Richard Marquez Points 387

Installer tous les .pkg des fichiers du dossier actuel vers /Applications :

for f in *.pkg ; 
    do sudo installer -verbose -pkg "$f" -target /
done

Comme alternative, vous pouvez installer les paquets dans votre dossier personnel avec -target ~ . Ils finiront dans /Users/<your_account>/Applications sauf si un chemin spécifique est prédéfini dans le programme d'installation.

Si vous avez besoin de voir ce qu'un installateur de pkg script contient exactement et quels pré et post-installation seront exécutés alors consultez Paquet suspect (freeware, peut être installé avec brew install --cask suspicious-package ), et utiliser la prévisualisation rapide depuis le Finder lorsqu'une .pkg est sélectionné. Appuyer sur la barre d'espacement dans le Finder avec le fichier sélectionné devrait également fonctionner.

5 votes

Cela n'implique pas nécessairement d'installer /Applications - cela dépend du paquet, par exemple PowerShell pour MacOS s'installe sur /usr/local .

0 votes

J'ai déjà répondu à cette question, mais -target CurrentUserHomeDirectory est ce que j'ai utilisé avec succès pour Microsoft Edge et l'application Logitech Camera Settings.

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