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}”
設置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設置一系列的窗口屬性
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文件有更深入的認識。
相關文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過程中,查看和了解硬盤信息是非常重要的工作,尤其是對于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內容介紹2025-03-12如何在 Linux 中查看 CPU 詳細信息? 3招輕松查看CPU型號、核心數(shù)和溫度
在日常運維工作中,獲取 CPU 信息是系統(tǒng)運維管理員常見的工作內容,無論是為了性能調優(yōu)、硬件升級還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨樹一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡化,優(yōu)化,現(xiàn)代化,實用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來簡要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個win11裝機u盤,詳細如下2025-02-17Rsnapshot怎么用? 基于Rsync的強大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過 SSH 備份遠程文件,接下來詳細介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時、每天、每周和每月的本地備份,以及如何進2025-02-06Linux Kernel 6.13發(fā)布:附更新內容及新特性解讀
Linux 內核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡化內核搶占邏輯,通過減少與調度器相關的調用次數(shù),讓內核在運行時表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內核版本為 Linux 6.8,這次更新帶來了諸多優(yōu)化和改進,進一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來看看詳細安裝指南2025-01-16