dmg文件是什么Linux如何通過命令行建立dmg文件
Linux系統(tǒng)操作中,很多人對dmg文件不甚了解,更不知道要如何創(chuàng)建dmg文件了,本文要給大家介紹的是Linux使用命令行建立dmg文件的方法,不了解的朋友可以來了解下。

什么是DMG文件,如何打開?
DMG格式是在MAC系統(tǒng)上的一個鏡象文件,也可以說是壓縮文件,如果你用PC且沒有裝MAC OS X for X86的話,就不要費力了。如果你是使用蘋果機或在PC上裝了MAC OS X for X86,在MAC系統(tǒng)上雙擊這個文件就可以解開了;如果想把這個文件燒錄成DVD,用toast把文件燒成光盤即可:dmg=》disc image
命令行創(chuàng)建dmg
自動獲取軟件版本號
APP_NAME=“Soulver”
VERSION=$(/usr/libexec/plistbuddy -c Print:CFBundleShortVersionString: “${APP_NAME}.app/Contents/Info.plist”)
DMG_BACKGROUND_IMG=“Background.png”
VOL_NAME=“${APP_NAME} ${VERSION}”
DMG_TMP=“${VOL_NAME}-temp.dmg”
DMG_FINAL=“${VOL_NAME}.dmg”
STAGING_DIR=“。/Install”
創(chuàng)建dmg
# 清理文件夾
rm -rf “${STAGING_DIR}” “${DMG_TMP}” “${DMG_FINAL}”
# 創(chuàng)建文件夾,拷貝,計算
mkdir -p “${STAGING_DIR}”
cp -rpf “${APP_NAME}.app” “${STAGING_DIR}”
SIZE=`du -sh “${STAGING_DIR}” | sed ‘s/([0-9.]*)M(.*)/1/’`
SIZE=`echo “${SIZE} + 1.0” | bc | awk ‘{print int($1+0.5)}’`
# 容錯處理
if [ $? -ne 0 ]; then
echo “Error: Cannot compute size of staging dir”
exit
fi
# 創(chuàng)建臨時dmg文件
hdiutil create -srcfolder “${STAGING_DIR}” -volname “${VOL_NAME}” -fs HFS+
-fsargs “-c c=64,a=16,e=16” -format UDRW -size ${SIZE}M “${DMG_TMP}”
echo “Created DMG: ${DMG_TMP}”
設(shè)置dmg
DEVICE=$(hdiutil attach -readwrite -noverify “${DMG_TMP}” |
egrep ‘^/dev/’ | sed 1q | awk ‘{print $1}’)
sleep 2
# 增加Applications目錄的軟鏈接
echo “Add link to /Applications”
pushd /Volumes/“${VOL_NAME}”
ln -s /Applications
popd
# 拷貝背景圖片
mkdir /Volumes/“${VOL_NAME}”/.background
cp “${DMG_BACKGROUND_IMG}” /Volumes/“${VOL_NAME}”/.background/
# 使用applescript設(shè)置一系列的窗口屬性
echo ‘
tell application “Finder”
tell disk “’${VOL_NAME}‘”
open
set current view of container window to icon view
set toolbar visible of container window to false
set statusbar visible of container window to false
set the bounds of container window to {400, 100, 938, 432}
set viewOptions to the icon view options of container window
set arrangement of viewOptions to not arranged
set icon size of viewOptions to 72
set background picture of viewOptions to file “.background:’${DMG_BACKGROUND_IMG}‘”
set position of item “’${APP_NAME}‘.app” of container window to {160, 195}
set position of item “Applications” of container window to {360, 195}
close
open
update without registering applications
delay 2
end tell
end tell
’ | osascript
sync
# 卸載
hdiutil detach “${DEVICE}”
壓縮dmg
echo “Creating compressed image”
hdiutil convert “${DMG_TMP}” -format UDZO -imagekey zlib-level=9 -o “${DMG_FINAL}”
# 清理文件夾
rm -rf “${DMG_TMP}”
rm -rf “${STAGING_DIR}”
echo ‘Done.’
exit
上面就是Linux使用命令行創(chuàng)建dmg文件的方法介紹了,上文對什么是dmg文件做了詳細介紹,讓用戶對dmg文件有更深入的認(rèn)識。
相關(guān)文章

集成系統(tǒng)級Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內(nèi)測成果,在 AI 能力、內(nèi)核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進行了更新2026-04-13
又一代老硬件退場! Linux 內(nèi)核正式放棄Intel 486 CPU
在過去的幾十年間,CPU 的架構(gòu)已經(jīng)經(jīng)歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個,當(dāng)前,i486 的CPU處理器已經(jīng)夠老,從 Linux 7.1 開始將不再有對2026-04-09
趕緊收藏! 全網(wǎng)最全 Linux 命令總結(jié)
我把 Linux 中最常用、最實用、最常被問到的命令按照實際使用場景分類整理,方便你快速查閱和記憶,內(nèi)容覆蓋日常運維、開發(fā)調(diào)試、性能分析、文件處理、網(wǎng)絡(luò)、安全、系統(tǒng)管2026-04-08
一分鐘內(nèi)檢查Linux服務(wù)器性能? 9個性能檢測常用的基本命令
今天我們來看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機器的負(fù)載情況,詳細請看下文介紹2026-03-18
從零基礎(chǔ)到精通! 適合高級用戶的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領(lǐng)域靈活性和可定制性的基石,提供了大量滿足不同用戶需求的發(fā)行版,今天分享適合高級用戶的15款Linux發(fā)行版2026-03-10
開箱即用? 這4個高手級Linux發(fā)行版遠沒你想象的那么安全易用
如果你正在糾結(jié)用哪個發(fā)行版?零基礎(chǔ)新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個SSH客戶端,今天整理找到的8 款 SSH / 終端工具,從免費開源到企業(yè)級商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶,即高級用戶root,普通用戶,高級用戶root可以在系統(tǒng)中做任何事情,普通用戶僅可在Linux系統(tǒng)中做有限的事情,下面我們就來看看切換方法2026-02-28
揭秘當(dāng)前登錄用戶的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個簡單但強大的工具,它能幫助我們輕松獲取當(dāng)前登錄用戶的用戶名,今天,我們就來深入探索一下這個命令的工作原理、使用方法和最佳實踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關(guān)系緩存在本地的機制,可以加快域名解析速度,并減輕 DNS 服務(wù)器的負(fù)載2026-02-26



