Réponses:
Tout d’abord, montez l’image dmg: sudo hdiutil attach <image>.dmg
L'image sera montée sur /Volumes/<image>. Le mien contenait un paquet que j'ai installé avec:sudo installer -package /Volumes/<image>/<image>.pkg -target /
Enfin démonter l'image: sudo hdiutil detach /Volumes/<image>.
Je devais monter et copier le dossier .appto /Applications. Pour Etcher.app:
D'abord comme @trojanfoe a dit:
sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg
ensuite
sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications
Vous avez ensuite votre application dans le /Applicationsdossier
N'oubliez pas de démonter le volume:
sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/
Je l'ai obtenu après avoir lu les instructions d'un article de blog .
Si vous souhaitez .dmgcréer un script pour l’installation, quelques étapes supplémentaires sont nécessaires car le nom du fichier, le nom du volume créé, le nom de l’application et le nom du périphérique à déconnecter peuvent tous être différents. De plus, ils peuvent avoir des espaces en eux.
De .dmgplus, un .appfichier peut contenir un fichier ou un .pkgfichier et ceux-ci nécessitent un comportement différent.
Voici une fonction bash permettant d'installer un fichier dmg à partir d'une URL distante:
# 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
}
Notez que si vous avez .dmgun .appfichier qui s'exécute pour installer le programme, vous devrez alors faire quelque chose de différent.
hdiutil: detach failed - No such file or directory
Vous pouvez essayer la commande open disk://host.tld/image.dmg.
openn'a rien fait, juste quitter, sans message d'erreur.
open path/to/file.dmg. Je ne pense pas que cela disk://host.tld/fonctionne cependant.)
Docker.dmget je n'avais pas<image>.pkgpour que ça ne marche pas