Câu trả lời:
Tôi đã phải gắn kết và sao chép .appvào /Applicationsthư mục. Đối với Etcher.app:
Đầu tiên như @trojanfoe nói:
sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg
Sau đó
sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications
Sau đó, bạn có ứng dụng của bạn trong /Applicationsthư mục
Đừng quên ngắt kết nối âm lượng:
sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/
Làm cho nó hoạt động sau khi đọc hướng dẫn từ một bài viết trên blog .
Nếu bạn muốn kịch bản cài đặt, nó yêu cầu một vài bước nữa vì tên của .dmgtệp, tên của Tập được tạo, tên của ứng dụng và tên của thiết bị cần tách ra đều có thể khác nhau. Thêm vào đó họ có thể có không gian trong đó.
Ngoài ra một .dmgcó thể có một .apptập tin hoặc một .pkgtập tin trong đó và những yêu cầu hành vi khác nhau.
Đây là một hàm bash để cài đặt một dmg từ một URL từ xa:
# 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
}
Lưu ý nếu bạn .dmgcó một .apptệp chạy để cài đặt chương trình, thì bạn sẽ cần phải làm lại một cái gì đó khác đi.
hdiutil: detach failed - No such file or directory
Bạn có thể thử lệnh open disk://host.tld/image.dmg.
openkhông làm gì cả, chỉ thoát, không có thông báo lỗi.
open path/to/file.dmg. Tôi không nghĩ rằng disk://host.tld/hoạt động mặc dù.)