Instalación desatendida del archivo pkg

13

¿Existe alguna posibilidad de crear una instalación desatendida de un paquete pkg?

Por ejemplo, creando un mpkg y ejecutando un script que instaló el paquete a través de la consola y el instalador.

Fondo: Tuve que implementar un paquete para muchos usuarios finales de osx. No tenemos escritorio de Apple ni acceso de root a estas máquinas. este es un paquete de pkg preconfigurado, pero si el usuario lo inicia de forma normal, la configuración previa se sobrescribirá. En Windows me doy cuenta de esto con un archivo autoejecutable que lanza un msi con instalación silenciosa. En Linux construyo paquetes rpm / deb, pero en osx no encontré ninguna forma adecuada :(

    
pregunta Megachip 11.12.2013 - 17:04

3 respuestas

2

Finalmente, gracias a la solución dr.nixon de mi pregunta concreta , tengo que manejar la creación de una instalación desatendida como se describe en la pregunta a través de Platypus .

El usuario debe iniciar la aplicación, el resto se hará automáticamente.

    
respondido por el Megachip 06.02.2014 - 16:45
15

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í.

    
respondido por el TJ Luoma 11.12.2013 - 18:41
2

Creo que podrías estar bailando muy cerca de tu propia respuesta. Usted menciona que no tiene el escritorio remoto de Apple. Recomendaría considerarlo para lo que está tratando de hacer. Lo uso como lo está describiendo todo el tiempo: tengo un archivo .pkg que se debe instalar en varias computadoras en mi LAN, resalto las computadoras en las que quiero que esté instalado y le digo a Remote Desktop que lo instale. Hace mucho más que esto, pero hará estas instalaciones remotas por usted. Es $ 80 por una licencia con clientes ilimitados.

Si los $ 80 son un punto difícil, puede consultar munki , que es

  

"un conjunto de herramientas que, utilizadas junto con un repositorio basado en servidor web   de paquetes y metadatos de paquetes, puede ser utilizado por los administradores de OS X   para administrar las instalaciones de software (y en muchos casos las eliminaciones) en OS X   máquinas cliente. "

No lo he usado yo mismo, pero tengo mucho respeto por las personas que lo codifican y lo utilizan en la vida real. Es un poco más de configuración y trabajo que el Escritorio remoto, pero también tiene muchas más opciones.

Esperamos que puedas usar uno de estos dos programas para hacer lo que estás buscando.

    
respondido por el evilblender 17.12.2013 - 21:53

Lea otras preguntas en las etiquetas