ฉันต้องการติดตั้งไฟล์ dmg บนเซิร์ฟเวอร์ระยะไกล ทั้งหมดที่ฉันมีคือการเข้าถึง ssh เนื่องจาก DMG เป็นดิสก์อิมเมจฉันจึงพยายามเมานต์ แต่เมาต์ไม่รู้จักรูปแบบของมัน
fileกล่าวว่าไฟล์ dmg VAX COFF executableของฉันคือ
ฉันต้องการติดตั้งไฟล์ dmg บนเซิร์ฟเวอร์ระยะไกล ทั้งหมดที่ฉันมีคือการเข้าถึง ssh เนื่องจาก DMG เป็นดิสก์อิมเมจฉันจึงพยายามเมานต์ แต่เมาต์ไม่รู้จักรูปแบบของมัน
fileกล่าวว่าไฟล์ dmg VAX COFF executableของฉันคือ
คำตอบ:
ก่อนอื่นให้เมานต์ภาพ dmg: sudo hdiutil attach <image>.dmg
/Volumes/<image>ภาพจะถูกติดตั้งไป Mine มีแพ็คเกจที่ฉันติดตั้งด้วย:sudo installer -package /Volumes/<image>/<image>.pkg -target /
sudo hdiutil detach /Volumes/<image>ในที่สุดก็เลิกเมานท์ภาพ:
คุณควรจะเมานท์.dmgโดยใช้:
hdiutil attach /path/to/file.dmg
แล้วคัดลอกเนื้อหา (ซึ่งปรากฏใน/Volumes) ที่คุณเคยชอบ
ฉันต้องเมานต์และคัดลอก.appไปยัง/Applicationsโฟลเดอร์ สำหรับ Etcher.app:
ครั้งแรกในฐานะ @trojanfoe กล่าวว่า:
sudo hdiutil attach /Users/janatac/Etcher-1.2.1.dmg
แล้วก็
sudo cp -R /Volumes/Etcher\ 1.2.1/Etcher.app /Applications
คุณมีแอปพลิเคชันของคุณใน/Applicationsโฟลเดอร์
อย่าลืมยกเลิกการต่อเชื่อมระดับเสียง:
sudo hdiutil unmount /Volumes/Etcher\ 1.2.1/
หากคุณต้องการติดตั้งสคริปต์ต้องใช้ขั้นตอนเพิ่มเติมไม่กี่ขั้นตอนตั้งแต่ชื่อของ.dmgไฟล์ชื่อของโวลุ่มที่สร้างขึ้นชื่อของแอปพลิเคชันและชื่อของอุปกรณ์ที่ต้องถอดออกอาจแตกต่างกันทั้งหมด รวมทั้งพวกเขาสามารถมีช่องว่างในพวกเขา
นอกจากนี้ยัง.dmgสามารถมี.appไฟล์หรือ.pkgไฟล์ในนั้นและสิ่งเหล่านี้ต้องการพฤติกรรมที่แตกต่างกัน
นี่คือฟังก์ชั่นทุบตีเพื่อติดตั้ง dmg จาก URL ระยะไกล:
# 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
}
หมายเหตุหากคุณ.dmgมี.appไฟล์ที่รันเพื่อติดตั้งโปรแกรมคุณจะต้องทำสิ่งที่แตกต่างอีกครั้ง
hdiutil: detach failed - No such file or directory
open disk://host.tld/image.dmgคุณอาจจะลองคำสั่ง
openไม่ได้ทำอะไรเลยเพียงออกโดยไม่มีข้อผิดพลาด
open path/to/file.dmgฉันไม่คิดว่า. disk://host.tld/งานแม้ว่า.)
Docker.dmgและฉันก็ไม่ได้<image>.pkgดังนั้นที่ไม่ทำงาน