Linux系統(tǒng)操作中,很多人對(duì)dmg文件不甚了解,更不知道要如何創(chuàng)建dmg文件了,本文要給大家介紹的是Linux使用命令行建立dmg文件的方法,不了解的朋友可以來了解下。
什么是DMG文件,如何打開?
DMG格式是在MAC系統(tǒng)上的一個(gè)鏡象文件,也可以說是壓縮文件,如果你用PC且沒有裝MAC OS X for X86的話,就不要費(fèi)力了。如果你是使用蘋果機(jī)或在PC上裝了MAC OS X for X86,在MAC系統(tǒng)上雙擊這個(gè)文件就可以解開了;如果想把這個(gè)文件燒錄成DVD,用toast把文件燒成光盤即可:dmg=》disc image
命令行創(chuàng)建dmg
自動(dòng)獲取軟件版本號(hào)
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)建文件夾,拷貝,計(jì)算
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)}’`
# 容錯(cuò)處理
if [ $? -ne 0 ]; then
echo “Error: Cannot compute size of staging dir”
exit
fi
# 創(chuàng)建臨時(shí)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文件的方法介紹了,上文對(duì)什么是dmg文件做了詳細(xì)介紹,讓用戶對(duì)dmg文件有更深入的認(rèn)識(shí)。