14 votos

Instalación desatendida del archivo pkg

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

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

Antecedentes: Tuve que desplegar un paquete a muchos usuarios finales de osx. No tenemos el escritorio de apple y no hay acceso Root a estas máquinas. se trata de un paquete pkg preconfigurado, pero si el usuario lo lanza de forma normal, la preconfiguración se sobrescribirá. En Windows realizo esto con un archivo autoejecutable que lanza un msi con instalación silenciosa. En linux construyo paquetes rpm/deb pero en osx no he encontrado ninguna forma adecuada :(

17voto

moodforaday Puntos 2633

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 un .mpkg utilizando esta sintaxis:

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

Si el instalador no está "firmado" correctamente, tendrá que añadir -allowUntrusted

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

También puede ser necesario especificar donde que quieres que se instale, utilizando -target / (No estoy 100% seguro de que esto sea requerido pero es una buena idea):

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

El problema es que sudo le pedirá su contraseña de administrador cuando intente ejecutar installer . Si quiere automatizar esto, tiene que decirle a su Mac que no requiera su sudo contraseña al ejecutar el instalador. Para ello, puede añadir esta línea a su /etc/sudoers archivo:

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

Ver man visudo para obtener instrucciones sobre la edición de ese archivo.

En segundo lugar, la preocupación práctica

Si usted es la única persona que utiliza su Mac, añada la línea anterior a /etc/sudoers no es un gran problema.

Sin embargo, si se trata de un Mac compartido, otras personas que estén en el grupo "admin" podrán ejecutar /usr/sbin/installer sin que se les pida la contraseña.

Además, obviamente, si alguien entra en tu cuenta de "administrador", también podría, teóricamente, hacer travesuras con /usr/sbin/installer . Aunque no se me ocurre qué es lo que harían exactamente, se trata de un compromiso de seguridad frente a comodidad.

Tercero, un github script

He escrito pkginstall.sh para hacer algunas cosas buenas como registrar el proceso, así como decirle si se supone que debe reiniciar después de instalar el paquete.

Por último, pero no menos importante: Automatizar "¿Cómo?"

En cuanto a cómo quieres automatizar la instalación, eso depende de más detalles de lo que estás tratando de hacer. Usted podría, por ejemplo, hacer una carpeta como ~/Action/AutoInstallPKG/ y decirle a launchd para instalar cualquier archivo .pkg o .mpkg que se añada a esa carpeta, y después apartarla.

Llevaba mucho tiempo queriendo hacer algo así y por fin lo he montado. Puede encontrarlo en https://github.com/tjluoma/autopkginstall . Las instrucciones de instalación están incluidas en Github, así que no las repetiré aquí.

2voto

Leon Roy Puntos 361

Creo que podrías estar bailando muy cerca de tu propia respuesta. Mencionas que no tienes el Remote Desktop de Apple. Yo recomendaría considerarlo para lo que estás tratando de hacer. Yo lo uso como describes todo el tiempo - tengo un archivo .pkg que necesita ser instalado en múltiples ordenadores en mi LAN, destaco los ordenadores en los que quiero instalarlo, y le digo a Remote Desktop que lo instale. Hace mucho más que esto, pero hará estas instalaciones remotas para usted. Cuesta 80 dólares la licencia con un número ilimitado de clientes.

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

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

Yo no lo he usado, pero tengo mucho respeto por la gente que lo codifica y lo usa en la vida real. Es un poco más de configuración y trabajo que Remote Desktop - pero tiene muchas más opciones también.

Espero que puedas utilizar uno de estos dos programas para hacer lo que buscas.

2voto

atoth Puntos 121

Por último, gracias a Dr. Nixon solución 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 Ornitorrinco .

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X