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 .app
to /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 /Applications
dossier
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 .dmg
cré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 .dmg
plus, un .app
fichier peut contenir un fichier ou un .pkg
fichier 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 .dmg
un .app
fichier 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
.
open
n'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.dmg
et je n'avais pas<image>.pkg
pour que ça ne marche pas