it-swarm-pt.tech

como instalar silenciosamente .dmg no MacOS?

Eu tenho um pacote .dmg MacOS (com botões 'continuar', EULA etc) que preciso instalar em vários computadores. É uma maneira de fazer isso silenciosamente por meio de um script bash/python/Ruby/etc, assim como a instalação MSI silenciosa no Windows? Posso automatizar a instalação escrevendo um script que clica em botões para mim, mas isso parece meio anormal :).

8
grigoryvp

para instalar um DMG, você pode fazer o seguinte:

cd ~/Desktop

curl -O http://darwinports.opendarwin.org/downloads/DarwinPorts-1.2-10.4.dmg

hdiutil attach DarwinPorts-1.2-10.4.dmg

cd /Volumes/DarwinPorts-1.2/

Sudo installer -pkg DarwinPorts-1.2.pkg -target "/"

hdiutil detach /Volumes/DarwinPorts-1.2/

Em poucas palavras, este

  1. vai para a pasta do seu desktop
  2. obtém DarwinPorts do site opendarwin
  3. monta o dmg
  4. vai para o volume DarwinPorts recém-montado
  5. instala o pacote, direcionado à raiz, como o usuário raiz
  6. ejeta a imagem do disco montado.

você então pode usar Automator para fazer isso ...

código retirado de esta página

14
balexandre

Se você estiver administrando vários Macs, recomendo fortemente investir em uma cópia de ARD - Tenho certeza de que há uma resposta de script para sua pergunta, mas eu uso ARD há tanto tempo que não sei disso!

4
avstrallen

Isso é um DMG mais um PKG?

Porque DMG, como está, não pode ser instalado, é apenas um volume, uma imagem, como um ISO. Então provavelmente o que você tem é um DMG mais um PKG ou um instalador dentro ...

Se for um PKG, provavelmente pode ser instalado remotamente ou silenciosamente, mas se for outro instalador, pode ser mais complicado, tenha certeza agora ...

A área de trabalho remota também, como adamvs diz, pode implantar pacotes em suas instalações ...

2
Andor
echo "mounting server"
  mount_afp afp://username:[email protected]
  hdiutil attach /Volumes/yourserver/pathtodmg.dmg
  /usr/sbin/installer -pkg /Volumes/pathtopkgfile.pkg -target / -verboseR
echo "umounting the repository"
  umount /Volumes/yourserver
  status=$?
    if [ $status != 0 ]
    then
        echo "Something went wront unmounting the server... no problem... we'll just remove the directory"
        rmdir /Volumes/yourserver
    fi

Eu descobri que esta é uma maneira realmente limpa de instalar e é quase totalmente silenciosa (exceto para o anexo inicial)

0
matthew.bassett