¿Instalando .pkg con terminal?

¿Es posible instalar un .pkg usando una terminal? (Quería instalar una aplicación a través de ssh).

Respuestas (3)

/usr/sbin/instalador

El comando del instalador se usa para instalar paquetes de instalación de Mac OS X en un dominio o volumen específico. El comando del instalador instala un solo paquete por invocación, que se especifica con el parámetro -paquete (se acepta -pkg como sinónimo). Puede ser un paquete único o un metapaquete. En el caso del metapaquete, los paquetes que forman parte de la instalación predeterminada se instalarán a menos que las herramientas de verificación de un paquete los descalifiquen.

Ver man installerpara la funcionalidad completa. A menudo

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

es todo lo que se necesita. El objetivo es un "dispositivo" (consulte la página del manual para obtener más información o ejecute installer -dominfo). Aquí /está la unidad principal, también acepta dispositivos como "/Volumes/Macintosh HD", o /dev/disk0.

Tenga en cuenta que -target es un dispositivo y no una ruta. Así que manténgalo "/" para la mayoría de los casos.
@AlexV color me confundido: /es un camino y un dispositivo está montado en él. Entonces, ¿por qué se aceptaría una opción que requiere un dispositivo como argumento /?
@muru: la documentación lo llama "dispositivo", pero en realidad tiene su propia sintaxis para definir el objetivo (no exactamente "nodo de dispositivo Unix"). De acuerdo con la página de manual del instalador, puede ser un nodo de dispositivo (como es de esperar), el identificador de disco (por ejemplo, disk1s9), el punto de montaje (por lo tanto, "/"), el UUID del volumen o cualquiera de los dominios de instalación enumerados por installer -dominfo.

Por si acaso es necesario; si desea instalar un .pkg sin acceso de root:

installer -pkg myapp.pkg -target CurrentUserHomeDirectory

instalará el paquete en ~/Applications.

¿Es CurrentUserHomeDirectoryen este caso un token literal especial? ¿O eso debe ser reemplazado por $HOME?
@ coolaj86 Es una ficha literal
Esto no funciona para mí. Cuando intento allowUntrusted obtengo installer: Certificate used to sign package is not trustedel instalador: el nombre del paquete es Insta360 Studio 2022 instalador: instalando en la ruta base /var/root instalador: preparando para la instalación... instalador: preparando el disco... instalador : Preparando Insta360 Studio 2022…..... instalador: La instalación falló.

Instale todos los .pkgarchivos de la carpeta actual /Applications(o cualquier carpeta de destino configurada en el paquete):

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

Como alternativa, puede instalar los paquetes en su carpeta de inicio con -target ~. Terminarán en a /Users/<your_account>/Applicationsmenos que una ruta específica esté predefinida en el instalador.

Si desea ver en qué carpetas específicas escribe un instalador de pkg y qué secuencias de comandos posteriores a la instalación se ejecutarán, consulte SuspiciousPackage (software gratuito, se puede instalar con brew install --cask suspicious-package) y use la vista previa rápida de Finder cuando .pkgse selecciona un archivo. Presionar la barra espaciadora en Finder con el archivo seleccionado también debería funcionar. Se puede usar una aplicación shareware (nagware) similar, Pacifist , para inspeccionar y desempaquetar dmg/pkg y otros formatos de contenedor.

Esto no necesariamente se instala en /Applications: depende del paquete, por ejemplo, PowerShell para macOS se instala en /usr/local.
También puse esto en una respuesta, pero -target CurrentUserHomeDirectoryes lo que he usado con éxito para la aplicación Microsoft Edge y Logitech Camera Settings.