我有一个 .dmg MacOS 包(带有“继续”按钮、EULA 等),需要在多台计算机上安装。有没有办法通过 bash/python/ruby/etc 脚本静默安装,就像 Windows 中的静默 MSI 安装一样?我可以通过编写脚本自动安装,让其自动点击按钮,但这看起来有点不自然 :)。
答案1
要安装 DMG,您可以执行以下操作:
cd ~/Desktop
curl -O http://darwinports.opendarwin.org/downloads/DarwinPorts-1.2-10.4.dmg
hdiutil attach DarwinPorts-1.2-10.4.dmg
cd /Volumes/DarwinPorts-1.2/
sudo installer -pkg DarwinPorts-1.2.pkg -target "/"
hdiutil detach /Volumes/DarwinPorts-1.2/
简而言之,这
- 转到您的桌面文件夹
- 从 opendarwin 网站获取 DarwinPorts
- 安装 dmg
- 进入新挂载的 DarwinPorts 卷
- 以 root 用户身份安装针对 root 的软件包
- 弹出已安装的光盘映像。
然后你可以使用自动机去做这个...
代码取自这一页
答案2
如果你管理多台 Mac,我强烈建议你购买一份ARD- 我确信您的问题有一个脚本答案,但我已经使用 ARD 很长时间了,恐怕我不知道!
答案3
那是 DMG 加 PKG 吗?
因为 DMG 本身无法安装,它只是一个卷,一个映像,就像 ISO 一样。所以你可能有一个 DMG 加上一个 PKG 或一个安装程序...
如果它是一个 PKG,可能可以远程或静默安装,但如果它是另一个安装程序,则可能会更加棘手,请注意现在确定...
正如 adamvs 所说,远程桌面还可以将包部署到您的安装中......
答案4
echo "mounting server"
mount_afp afp://username:password@yourserver
hdiutil attach /Volumes/yourserver/pathtodmg.dmg
/usr/sbin/installer -pkg /Volumes/pathtopkgfile.pkg -target / -verboseR
echo "umounting the repository"
umount /Volumes/yourserver
status=$?
if [ $status != 0 ]
then
echo "Something went wront unmounting the server... no problem... we'll just remove the directory"
rmdir /Volumes/yourserver
fi
我发现这是一种非常干净的安装方式,而且几乎完全无声(除了初始连接)