Estoy automatizando la instalación de mi Mac con títeres. Como parte de esto, necesito instalar varios programas que vienen en formato .dmg.
Yo uso lo siguiente para montarlos:
sudo /usr/bin/hdiutil mount -plist -nobrowse -readonly -quiet -mountrandom /tmp Program.dmg
El problema es que algunos archivos .dmg vienen con una licencia adjunta, por lo que el script está atascado aceptando la licencia. (No hay stdin / out cuando se ejecuta con puppet, por lo que no puedo aprobarlo manualmente para continuar).
¿Hay alguna manera de preaprobar o forzar la aprobación de la licencia?

Respuestas:
Si tiene una GUI y puede realizar dos llamadas de línea de comandos en paralelo, puede usar
y
el último de los cuales ejecuta el siguiente AppleScript:
En
bash, puedo escribirfuente
Esto funcionó para mí cuando encontré un .dmg que contenía un EULA que quería instalar a través de la línea de comando sin interacción del usuario ...
(nota: no estoy razonablemente seguro de todas las opciones anteriores son necesarios para el EULA de derivación, tales como
-nobrowse,-noverify,-noautoopen,-mountpointSin embargo, he usado y no he probado sin ellos, así que no quiero la reivindicación algo que yo. no había probado)Lo que terminé con fue un directorio con
donde
right_here/contenía el contenido de lafoo.dmgsin que se le solicite el EULA.¡Asegúrate de despegarte cuando hayas terminado!
Para más información: hdiutil (1) Página del manual de Mac OS X .
YMMV
fuente
Si solo necesita escribir "Y", entonces canalice el comando yes al comando hdiutil:
Eso emulará presionando 'y' y volverá a la línea de comando.
Para escribir algo más, simplemente colóquelo en la línea de comando como parámetro:
Eso ingresará 'aceptar' en el guión.
Tenga en cuenta que si el script solicita entradas varias veces, el comando yes colocará múltiples entradas. Puede ver resultados como 'tubería rota'; esto solo significa que el comando que ingresó para salir mientras 'sí' todavía estaba enviando entradas.
fuente
Recientemente me encontré con un DMG que tenía un EULA y realmente me irritaba ya que no podía escribir alrededor. Descubrí que si convertía el DMG en un CDR, eludía el EULA al montar el CDR.
Esto es lo que hice:
Espero que esto ayude.
fuente
yes | hdiutil...soluciones me colgarían cuando se llamara desde un script de Python por alguna razón loca.Si tiene un EULA de múltiples páginas que necesita aceptar, puede acceder a la parte de aceptación colocando un
qantes del resto de su comando de aceptación (ya que todo lo que necesita es un comando de salida aceptadoless, también puede usarZZoQ).Por ejemplo, si el EULA requiere que escriba a
ypara aceptar, ejecutará:fuente
¿No deberías estar usando las propias herramientas de Puppet para instalar paquetes? Yo mismo soy un administrador radmind y no estoy familiarizado con Puppet, pero un chequeo en su wiki revela que hay una herramienta llamada pkgdmg que podría hacer el equivalente de lo que estás tratando de lograr.
http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Mac_Osx#packagepkgdmg
fuente