温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-08-03 17:38:06 来源:亿速云 阅读:217 作者:chen 栏目:系统运维

这篇文章主要介绍“Linux如何通过命令行建立dmg文件”,在日常操作中,相信很多人在Linux如何通过命令行建立dmg文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux如何通过命令行建立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文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI