Respuesta corta: sí.
Respuesta larga: sí, pero ... una respuesta completa a esta pregunta incluye una respuesta técnica y una preocupación práctica.
Primero, la respuesta técnica
Puedes instalar un .pkg o .mpkg usando esta sintaxis:
sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"
Si el instalador no está 'firmado' correctamente, deberá agregar -allowUntrusted
sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"
Es posible que también debas especificar dónde quieres que esté instalado, usando -target /
(no estoy 100% seguro de que sea obligatorio , pero es una buena idea ):
sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /
Ahora, el problema es que sudo
le pedirá su contraseña de administrador cuando intente ejecutar installer
. Si desea automatizar esto, necesita decirle a su Mac que no requiera su contraseña sudo
al ejecutar el instalador. Para hacerlo, puede agregar esta línea a su archivo /etc/sudoers
:
%admin ALL=NOPASSWD: /usr/sbin/installer
Consulte man visudo
para obtener instrucciones sobre cómo editar ese archivo.
Segundo, la preocupación práctica
Si eres la única persona que usa tu Mac, agregar la línea anterior a /etc/sudoers
no es un gran problema.
Sin embargo, si se trata de una Mac compartida, otras personas que estén en el grupo 'admin' podrán ejecutar /usr/sbin/installer
sin que se le solicite su contraseña.
También, obviamente, si alguien ingresa a su cuenta de 'administrador', también podrían, en teoría, causar daño con /usr/sbin/installer
. Aunque no puedo pensar exactamente en lo que harían, es un compromiso entre seguridad y conveniencia.
Tercero, un script de github
Escribí pkginstall.sh para hacer algunas cosas buenas como registrar el proceso, también como le dice si debe reiniciar o no después de instalar el paquete.
Por último, pero no menos importante: automatizar "¿cómo?"
En cuanto a cómo desea automatizar la instalación, eso depende de más detalles de lo que está tratando de hacer. Por ejemplo, podría crear una carpeta como ~ / Action / AutoInstallPKG / y decirle a launchd
que instale cualquier archivo .pkg o .mpkg que se agregue a esa carpeta, y luego dejarlo de lado.
He querido hacer algo así durante mucho tiempo, y finalmente lo armé. Puede encontrarlo en enlace . Las instrucciones de instalación están incluidas en Github, así que no las repetiré aquí.