Estou automatizando minha instalação do Mac usando fantoche. Como parte disso, preciso instalar vários programas que vêm no formato .dmg.
Eu uso o seguinte para montá-los:
sudo /usr/bin/hdiutil mount -plist -nobrowse -readonly -quiet -mountrandom /tmp Program.dmg
O problema é que alguns arquivos .dmg vêm com uma licença anexada e, portanto, o script fica bloqueado ao aceitar a licença. (Não há stdin / out ao executar com fantoches, então não posso aprová-lo manualmente para continuar.)
Existe uma maneira de pré-aprovar ou aprovar forçosamente a licença?
Respostas:
Se você tiver uma GUI e puder executar duas chamadas de linha de comando em paralelo, poderá usar
e
o último dos quais executa o seguinte AppleScript:
Em
bash
, eu sou capaz de escreverfonte
Isso funcionou para mim quando encontrei um .dmg que continha um EULA que eu queria instalá-lo através da linha de comando sem interação do usuário ...
(nota: Eu sou razoavelmente certo nem todas as opções acima são necessários para ignorar o EULA, como
-nobrowse
,-noverify
,-noautoopen
,-mountpoint
No entanto, eu usei-los e eu não fiz teste sem eles, então eu não queria que a reivindicação algo que eu. não tinha testado.)O que acabei com foi um diretório com
onde
right_here/
continha o conteúdo dofoo.dmg
sem ser solicitado o EULA.Certifique-se de desconectar quando terminar!
Para obter mais informações: Página manual do Mac OS X hdiutil (1) .
YMMV
fonte
Se ele precisar apenas digitar "Y", envie o comando yes para o comando hdiutil:
Isso simula pressionar 'y' e retornar na linha de comando.
Para digitar outra coisa, basta colocá-lo na linha de comando como parâmetro:
Isso entrará em 'accept' no script.
Observe que, se o script solicitar entrada várias vezes, o comando yes incluirá várias entradas. Você pode ver uma saída como 'pipe quebrado' - isso significa apenas que o comando no qual você saiu foi encerrado enquanto 'yes' ainda estava enviando entrada.
fonte
Recentemente, me deparei com um DMG que tinha um EULA e isso realmente me irritava, já que eu não podia escrever em torno dele. Eu descobri que se eu convertesse o DMG em um CDR, ignoraria o EULA na montagem do CDR.
Aqui está o que eu fiz:
Espero que isto ajude.
fonte
yes | hdiutil...
soluções seriam suspensas para mim quando chamadas de um script python por algum motivo louco.Se você tiver um EULA com várias páginas que precise aceitar, poderá acessar a parte accept colocando um
q
antes do resto do seu comando accept (já que tudo o que você precisa é de um comando de saída aceitoless
, você também pode usarZZ
ouQ
).Por exemplo, se o EULA exigir que você digite a
y
para aceitar a execução:fonte
Você não deveria estar usando as ferramentas do puppet para instalar pacotes? Eu sou um administrador radmind e não estou familiarizado com fantoches, mas uma verificação no wiki deles revela que existe uma ferramenta chamada pkgdmg que pode fazer o equivalente ao que você está tentando realizar.
http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Mac_Osx#packagepkgdmg
fonte