コマンドラインから dmg ファイルを作成する
以前は、 Makefile で公開するパッケージを作っていたので、 自然と tarball 形式で作っていた。
でも Mac のアプリケーションなら dmg の方が使う側としては嬉しいよね。
ちょっと調べてみたところ hdiutil という標準コマンドで作成可能みたいだ。
$ hdiutil create -ov -srcfolder path/to/folder -fs HFS+ -format UDZO \ -imagekey zlib-level=9 -volname "Package name" output.dmg
-srcfolder
で指定したフォルダの内容を使って output.dmg
を作る。
dmg をマウントした時のボリューム名は -volname
で指定した名称になる。
-format で指定するのは dmg のフォーマット。
UDZO
は zlib 圧縮した dmg を作成する。
圧縮率は -imagekey zlib-level=
n (n は 1 〜 9) で指定できて、
1 は高速圧縮、
9 が一番圧縮率が高い。
ただそれでも -format UDBZ
で bzip2 圧縮を指定した方が圧縮率は高いけどね
(そして、
その場合 -imagekey
オプションは使えない。)
だから実際に使う時は UDBZ
を使うようにしている。
この例以外にもいろいろ柔軟な dmg ファイルを作成できるようだ。