Instalación desatendida de archivo pkg

14

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

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

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

Megachip
fuente

Respuestas:

17

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.

Puede 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"

También es posible que deba especificar dónde lo quiere instalar, usando -target /(no estoy 100% seguro de que sea necesario , pero es una buena idea):

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

Ahora, el problema es que sudole pedirá su contraseña de administrador cuando intente ejecutar installer. Si desea automatizar esto, debe decirle a su Mac que no requiera su sudocontraseña cuando ejecute el instalador. Para hacer eso, puede agregar esta línea a su /etc/sudoersarchivo:

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

Consulte las man visudoinstrucciones sobre cómo editar ese archivo.

En segundo lugar, la preocupación práctica.

Si usted es la única persona que usa su Mac, agregar la línea anterior /etc/sudoersno es gran cosa.

Sin embargo, si se trata de una Mac compartida, otras personas que estén en el grupo 'admin' podrán ejecutarse /usr/sbin/installersin que se les solicite su contraseña.

Además, obviamente, si alguien ingresa a su cuenta de 'administrador', también podrían, en teoría, causar daños /usr/sbin/installer. Aunque no sé si pensar exactamente en lo que harían, es una compensación entre seguridad y conveniencia.

Tercero, un guión github

Escribí pkginstall.sh para hacer algunas cosas buenas, como registrar el proceso, y también para decir si se supone que debes 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. Podría, por ejemplo, crear una carpeta como ~ / Action / AutoInstallPKG / y pedirle launchdque instale cualquier archivo .pkg o .mpkg que se agregue a esa carpeta, y luego moverlo a un lado después.

He tenido la intención de hacer algo como esto durante mucho tiempo, y finalmente lo armé. Puede encontrarlo en https://github.com/tjluoma/autopkginstall . Las instrucciones de instalación están incluidas en Github, por lo que no las repetiré aquí.

TJ Luoma
fuente
Gracias, este es un gran paso adelante para mí, pero aún no es la solución final. Tengo que implementar un paquete en muchas Mac diferentes (por lo que sudoes no es una opción), donde el usuario no puede cambiar la configuración. Entonces, la mejor manera (que funciona en Windows y Linux) es donde un archivo en el que el usuario puede hacer clic y el resto lo hará automáticamente. Pero comprobaré su solución, posible en combinación con iceberg o paquetes, puedo encontrar una solución que coincida. Así que espero que esto esté bien si dejo esta pregunta abierta unos días más para que otros puedan contribuir con sus respuestas a ...
Megachip
3
Además, para referencia futura, sería útil incluir detalles como esos en su pregunta inicial. La respuesta para un usuario final que busca automatizar las instalaciones en su sistema es completamente diferente para alguien que intenta distribuir a muchos Mac y muchos sistemas operativos. No es probable que encuentre una manera que funcione de la misma manera en Windows y Linux y Mac OS X. Incluso las empresas tan grandes como Dropbox tienen instaladores diferentes para cada sistema operativo.
TJ Luoma
Tienes razón, perdón por eso. Posiblemente debería agregar esto a la pregunta.
Megachip
Gracias de nuevo por todo su trabajo, he concretado mi pregunta [aquí] ( apple.stackexchange.com/questions/120026/… ). Su autopkginstall es algo agradable, pero requiere que tenga este "instalado" en cada cliente, lo cual no es posible. Parece que mi pregunta aquí no fue lo suficientemente concreta. Lo siento por que
Megachip
2

Creo que puedes estar bailando muy cerca de tu propia respuesta. Menciona que no tiene el Escritorio remoto de Apple. Recomendaría considerarlo para lo que está tratando de hacer. Lo uso como lo describe todo el tiempo: tengo un archivo .pkg que necesita ser instalado en varias computadoras en mi LAN, resalto las computadoras en las que quiero instalarlo y le digo a Remote Desktop que lo instale. Hace mucho más que esto, pero REALIZARÁ estas instalaciones remotas por usted. Cuesta $ 80 por una licencia con clientes ilimitados.

Si los $ 80 son un punto de fricción, podrías mirar munki , que es

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

No lo he usado yo mismo, pero respeto mucho a las personas que lo codifican y lo usan en la vida real. Está un poco más configurado y funciona que el Escritorio remoto, pero también tiene muchas más opciones.

Esperemos que pueda usar uno de estos dos programas para hacer lo que busca.

malvado
fuente
Sí, pero hasta donde sé, ¿necesitas acceso root para usar el escritorio remoto?
Megachip
Necesitará acceso de administrador para configurar el escritorio remoto en las máquinas cliente. ARD no le permitirá simplemente instalar archivos en cualquier Mac que vea en una red. :)
evilblender
Esta posibilidad no se da, lo siento.
Megachip
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 tiene que iniciar la aplicación, el resto se hará automáticamente.

Megachip
fuente
El usuario puede ponerlo en elementos de inicio para que siempre se inicie en el arranque.
AnneTheAgile