系统小窝欢迎您

电脑公司 深度技术
当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux通过命令行建立dmg文件的方法

时间:2021-04-10 来源:来吧老妹 人气:

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 lsquo;s/([0-9.]*)M(.*)/1/rsquo;`

SIZE=`echo ;${SIZE} + 1.0; | bc | awk lsquo;{print int($1+0.5)}rsquo;`

# 容错处理

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 lsquo;^/dev/rsquo; | sed 1q | awk lsquo;{print $1}rsquo;)

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 lsquo;

tell application ;Finder;

tell disk ;rsquo;${VOL_NAME}lsquo;;

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:rsquo;${DMG_BACKGROUND_IMG}lsquo;;

set position of item ;rsquo;${APP_NAME}lsquo;.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

rsquo; | 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 lsquo;Done.rsquo;

exit

上面就是Linux使用命令行创建dmg文件的方法介绍了,上文对什么是dmg文件做了详细介绍,让用户对dmg文件有更深入的认识。

相关文章

  • 如何使用命令行更改Linux系统的日期和时间

    如何使用命令行更改Linux系统的日期和时间

    Linux 系统的时间有时候会不准,不准确的时间会导致日志文件中的时间出现错误,所以准确的时间是很重要的,那么要怎么更改Linux 系统的时间呢?下面小...
    2014-12-02 03.12.57
  • Linux下如何通过命令行连接wifi?

    Linux下如何通过命令行连接wifi?

    通常我们电脑都是通过有线连接宽带,那么无线wifi该如何设置呢?下面小编就给大家介绍下Linux系统下如何通过命令行来连接wifi,一起来学习下吧。...
    2014-12-09 09.12.49
  • Linux下如何检测DVD刻录机的设备名及写入速度

    Linux下如何检测DVD刻录机的设备名及写入速度

    现在的电脑都有配置DVD刻录机,那么要如何知道自己电脑的DVD刻录机的名字及写入速度呢?下面小编就给大家介绍几个Linux下检测DVD刻录机的名字及写入速...
    2014-12-09 09.12.52
  • Linux下如何把镜像文件刻录到DVD光盘里

    Linux下如何把镜像文件刻录到DVD光盘里

    当我们在操作Linux系统的时候,需要将镜像文件刻录到DVD中,那么要怎么做呢?下面小编给大家介绍下怎么从Linux命令行刻录镜像文件到DVD中,一起来学习下...
    2014-12-09 09.12.09
  • Linux如何通过命令行来设置IPMI

    Linux如何通过命令行来设置IPMI

    IPMI是智能型平台管理接口,通过命令行能够实现IPMI的配置,具体应该如何操作呢?IPMI的配置方法都大同小异,下面小编就简单的介绍下Linux使用命令行设...
    2015-04-09 04.04.23

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。