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
,-mountpoint
Sin 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.dmg
sin 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
q
antes del resto de su comando de aceptación (ya que todo lo que necesita es un comando de salida aceptadoless
, también puede usarZZ
oQ
).Por ejemplo, si el EULA requiere que escriba a
y
para 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