Si desea automatizar la instalación, requiere algunos pasos más, ya que el nombre del archivo .dmg
, el nombre del Volumen creado, el nombre de la aplicación y el nombre del dispositivo que necesita ser desconectado pueden ser diferentes. Además, pueden contener espacios.
Además, un archivo .dmg
puede contener un archivo .app
o un archivo .pkg
y estos requieren un comportamiento diferente.
Aquí tienes una función bash para instalar un archivo dmg desde una URL remota:
# uso: installdmg https://ejemplo.com/ruta/a/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
}
Ten en cuenta que si tu archivo .dmg
tiene un archivo .app
que se ejecuta para instalar el programa, entonces necesitarás hacer algo diferente nuevamente.