Odpowiedzi:
Musiałem zamontować i skopiować .app
do /Applications
folderu. W przypadku Etcher.app:
Po pierwsze, jak powiedział @trojanfoe:
sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg
Następnie
sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications
Następnie masz swoją aplikację w /Applications
folderze
Nie zapomnij odmontować woluminu:
sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/
Sprawdziło się po przeczytaniu instrukcji z posta na blogu .
Jeśli chcesz wykonać skrypt instalacji, wymaga to kilku dodatkowych kroków, ponieważ nazwa .dmg
pliku, nazwa utworzonego woluminu, nazwa aplikacji i nazwa urządzenia, które należy odłączyć, mogą być różne. Dodatkowo mogą mieć w nich spacje.
Również plik .dmg
może zawierać .app
plik lub .pkg
plik, które wymagają innego zachowania.
Oto funkcja bash, aby zainstalować dmg ze zdalnego adresu URL:
# 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
}
Uwaga Jeśli .dmg
ma .app
pliku, który biegnie, aby zainstalować program, a następnie trzeba będzie ponownie zrobić coś innego.
hdiutil: detach failed - No such file or directory
Możesz spróbować wykonać polecenie open disk://host.tld/image.dmg
.
open
nic nie zrobiłem, po prostu wyjdź, bez komunikatu o błędzie.
open path/to/file.dmg
. Nie sądzę, że disk://host.tld/
działa.)
Docker.dmg
i nie miałem,<image>.pkg
żeby nie działać