Câu trả lời:
Tôi đã phải gắn kết và sao chép .app
vào /Applications
thư 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 /Applications
thư 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 .dmg
tệ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 .dmg
có thể có một .app
tập tin hoặc một .pkg
tậ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 .dmg
có một .app
tệ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
.
open
khô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ù.)