Antworten:
Hängen Sie zuerst das dmg-Image ein: sudo hdiutil attach <image>.dmg
Das Bild wird an gemountet /Volumes/<image>
. Meins enthielt ein Paket, das ich mit installierte:sudo installer -package /Volumes/<image>/<image>.pkg -target /
Schließlich aushängen das Bild: sudo hdiutil detach /Volumes/<image>
.
Ich musste den .app
in /Applications
Ordner mounten und kopieren . Für Etcher.app:
Zuerst wie @trojanfoe sagte:
sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg
Dann
sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications
Sie haben dann Ihre Bewerbung im /Applications
Ordner
Vergessen Sie nicht, den Datenträger abzuhängen:
sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/
Habe es funktioniert, nachdem ich Anweisungen aus einem Blog-Post gelesen habe .
Wenn Sie die Installation .dmg
per Skript ausführen möchten, sind einige weitere Schritte erforderlich, da der Name der Datei, der Name des erstellten Volumes, der Name der Anwendung und der Name des Geräts, das getrennt werden muss, unterschiedlich sein können. Außerdem können sie Leerzeichen enthalten.
A .dmg
kann auch eine .app
Datei oder eine .pkg
Datei enthalten, die ein anderes Verhalten erfordern.
Hier ist eine Bash-Funktion, um ein DMG von einer entfernten URL zu installieren:
# 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
}
Hinweis: Wenn auf Ihrem .dmg
Computer eine .app
Datei zum Installieren des Programms ausgeführt wird, müssen Sie erneut eine andere Aktion ausführen.
hdiutil: detach failed - No such file or directory
Sie könnten den Befehl versuchen open disk://host.tld/image.dmg
.
open
habe nichts gemacht, nur beenden, ohne Fehlermeldung.
open path/to/file.dmg
. Ich glaube nicht disk://host.tld/
funktioniert.)
Docker.dmg
und ich hatte keine<image>.pkg
so, dass es nicht funktioniert