操作系统 
首页 > 操作系统 > 浏览文章

dmg文件是什么Linux如何通过命令行建立dmg文件

(编辑:jimmy 日期: 2025/1/7 浏览:3 次 )

  Linux系统操作中,很多人对dmg文件不甚了解,更不知道要如何创建dmg文件了,本文要给大家介绍的是Linux使用命令行建立dmg文件的方法,不了解的朋友可以来了解下。

dmg文件是什么Linux如何通过命令行建立dmg文件

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

  DMG格式是在MAC系统上的一个镜象文件,也可以说是压缩文件,如果你用PC且没有装MAC OS X for X86的话,就不要费力了。如果你是使用苹果机或在PC上装了MAC OS X for X86,在MAC系统上双击这个文件就可以解开了;如果想把这个文件烧录成DVD,用toast把文件烧成光盘即可:dmg=》disc image

  命令行创建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”

  创建dmg

  # 清理文件夹

  rm -rf “${STAGING_DIR}” “${DMG_TMP}” “${DMG_FINAL}”

  # 创建文件夹,拷贝,计算

  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

  # 创建临时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使用命令行创建dmg文件的方法介绍了,上文对什么是dmg文件做了详细介绍,让用户对dmg文件有更深入的认识。

上一篇:在Linux系统中简单地实现定时备份的方法
下一篇:对Linux进行详细的性能监控的方法
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?