溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux如何通過命令行建立dmg文件

發(fā)布時間:2021-08-03 17:38:06 來源:億速云 閱讀:211 作者:chen 欄目:系統(tǒng)運維

這篇文章主要介紹“Linux如何通過命令行建立dmg文件”,在日常操作中,相信很多人在Linux如何通過命令行建立dmg文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux如何通過命令行建立dmg文件”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

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

  什么是DMG文件,如何打開?

  DMG格式是在MAC系統(tǒng)上的一個鏡象文件,也可以說是壓縮文件,如果你用PC且沒有裝MAC OS X for X86的話,就不要費力了。如果你是使用蘋果機(jī)或在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

到此,關(guān)于“Linux如何通過命令行建立dmg文件”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI