Respostas:
Primeiro, monte a imagem dmg: sudo hdiutil attach <image>.dmg
A imagem será montada em /Volumes/<image>
. O meu continha um pacote com o qual eu instalei:sudo installer -package /Volumes/<image>/<image>.pkg -target /
Finalmente desmontar a imagem: sudo hdiutil detach /Volumes/<image>
.
Eu tive que montar e copiar a pasta .app
para /Applications
. Para Etcher.app:
Primeiro como @trojanfoe disse:
sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg
Então
sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications
Você tem seu aplicativo na /Applications
pasta
Não esqueça de desmontar o volume:
sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/
Comecei a trabalhar depois de ler as instruções de uma postagem do blog .
Se você deseja criar um script para a instalação, .dmg
serão necessárias mais algumas etapas, pois o nome do arquivo, o nome do volume criado, o nome do aplicativo e o nome do dispositivo que precisa ser desconectado podem ser diferentes. Além disso, eles podem ter espaços neles.
Também .dmg
pode haver um .app
arquivo ou um .pkg
arquivo e isso requer um comportamento diferente.
Aqui está uma função bash para instalar um dmg a partir de um URL remoto:
# usage: installdmg https://example.com/path/to/pkg.dmg
function installdmg {
set -x
tempd=$(mktemp -d)
curl $1 > $tempd/pkg.dmg
listing=$(sudo hdiutil attach $tempd/pkg.dmg | grep Volumes)
volume=$(echo "$listing" | cut -f 3)
if [ -e "$volume"/*.app ]; then
sudo cp -rf "$volume"/*.app /Applications
elif [ -e "$volume"/*.pkg ]; then
package=$(ls -1 "$volume" | grep .pkg | head -1)
sudo installer -pkg "$volume"/"$package" -target /
fi
sudo hdiutil detach "$(echo "$listing" | cut -f 1)"
rm -rf $tempd
set +x
}
Observe que se você .dmg
possui um .app
arquivo que é executado para instalar o programa, será necessário fazer algo diferente novamente.
hdiutil: detach failed - No such file or directory
Você pode tentar o comando open disk://host.tld/image.dmg
.
open
não fez nada, apenas saiu, sem mensagem de erro.
open path/to/file.dmg
eu não acho. disk://host.tld/
Obras embora.)
Docker.dmg
e não tinha,<image>.pkg
para que não funcionasse