`.dmg`ファイルを介してソフトウェアをインストールするのはなぜですか?


28

ソフトウェアをインストールするときは、通常.dmg(Disk iMaGe)ファイルをダウンロードします。私はそれを開くと、この.dmg私が、「仮想ディスク」(私は推測それゆえ、その名前)を呼び出すだろうとに記載されているもののようなファイルルックス FinderdevicesDisk Utility下にもリストされてDisk Imagesおり、他のディスクと同様に消去またはマウント解除できるようです。

  • このような「仮想ディスク」でソフトウェアをインストールする必要があるロジックは何ですか?
  • なぜ単純なバイナリファイルとして提供されないのか、または何がわからないのですか?

12
ソフトウェアをインストールすると、常にd a m a g eが発生します。
デザート

1
単純なバイナリファイルはインストーラーになります。DMGを使用すると、インストーラーを実行せずにアプリケーションをコピーするだけです。
するThorbjörnRavnアンデルセン

10
ほとんどのMacアプリは単一のファイルのように見えますが、実際には「アプリケーションバンドル」であり、基本的には内部に多くのファイルがあるフォルダーです。Finderはそれを単一のエンティティとして表示しますが、それらを右クリックして[コンテンツを開く]を選択し、内部のファイルを検査できます。そのため、「単純なバイナリ」は機能しません。
el.pescado


最後の段落は個別の質問になるはずです
user151019

回答:


34

DMGには、単純な古いzipよりも優れたいくつかの重要な機能があります

  • 完全なファイルシステムです(つまり、ファイルのアクセス許可を保存したり、カスタムフォルダーの背景を作成したりできるなど)。
  • マウントする前に「必須の」EULAをサポートします。これは法的事項に適しています
  • より信頼性の高い実行環境を提供します。インストールのために絶対パスを行う必要がある場合(これはすべきではありません)、DMGを準備し、読み取り専用としてマークし、それを使用してインストールすることができます

本当に重要な機能は、完全なHFS +ファイルシステムをサポートしていることです。Zip(一般に、Linuxバージョンは許可をサポートすることがあります)は愚かで、ファイルとフォルダーのバンドルのみをサポートし、それ以外は何もサポートしません。メタデータなし、ファイルのみ。


14
その他のポイント:10.12以降、.dmgファイルは整合性のためにコード署名できます(.zipファイルに署名済みコードを含めることができますが、ダウンロード後もそのままの方法で署名することはできません)。また、ほとんどのmacOSソフトウェアはプレーンファイルではなく、パッケージ(複雑な(隠された)内部構造を持つフォルダー)として提供されるため、「シンプルバイナリ」オプションはまったく機能しません。
ゴードンデイヴィソン

9
「Zipはバカで、サポートしているのは...」-その評価には同意しません。何かが単純だからといって、それが愚かだというわけではありません。シンプルさは美徳であり、めったにない(多くの場合、目に見えない)分散インストーラーの値のファイルメタデータです。

14
@Dai彼は愚かなように愚かなことを意味します。プログラムは何をしているのかわからない-役に立たないわけではない。
ティム

3
私はZIPはあまり良い比較ではないと思います。なぜ例えばTARを圧縮しないのtar.gzですか?権限を保存します。
ルスラン

2
@Dai、「分散インストーラーの値の(めったに見えない)ファイルメタデータ」-他の多くのプラットフォームではtrueですが、Appleは「リソースフォーク」に重要なコンテンツ(アイコンなど)を保存してきた長い歴史があります(最近では、xattrs)。
チャールズダフィー

3

Macソフトウェアは、.appアプリケーションバンドル(基本的にすべてのプログラムリソースを含むフォルダー)として、または.pkgWindowsと同様の方法でアプリケーションをインストールするプログラムであるインストーラーとして配信できます。

コマンドラインツールのみがプレーンバイナリとして利用でき、ユーザーのどこかにコピーさPATH/usr/local/binます。

これらは、(OS X / MacOSのディスクイメージにパッケージ化することができる.dmg)、または例えば従来のアーカイブ形式.zipまたは.tar


このような「仮想ディスク」でソフトウェアをインストールする必要があるロジックは何ですか?

これは主に開発者次第です。A .dmgはインストーラではなく単なる仮想ハードドライブです。を使用する選択.dmgは、インストールではなくパッケージングについてです。

アプリケーションが単純な.appバンドルの場合、それは自己完結型であり、ダブルクリックして実行できます。/Applications便宜上、一般的にコピーされます。

暗号化および開封時のEULAに加えて.dmg、アーカイブタイプよりも利点はブランド化です。.dmgsにカスタムアイコン、カスタム背景画像を与え、コンテンツのレイアウトを修正できます。.dmgsも一般に読み取り専用であるため、開発者が意図したとおりに内容が保持されます。

また、ユーザーがアプリケーションを希望する場所を選択するように強制します。アーカイブを解凍すると、通常、アーカイブのある場所にコンテンツが抽出されます。対照的に、.dmgsはファイルシステムにマウントされ、.appバンドルを明示的にコピーする必要があります。


なぜ単純なバイナリファイルとして提供されないのか、または何がわからないのですか?

Macアプリケーションは単なるバイナリではありません。(にある<appname>.app/Contents/MacOS/)バイナリに加えて、.appはにいくつかのリソースを含み<appname>.app/Contents/Resources/ます。これらのリソースには、アイコン、グラフィック、およびなどのローカライズファイルが含まれen.lprojます。


2

ソフトウェアのインストール以外の.dmgファイルの使用法はありますか?

DMGに関する別の便利な機能(他の使用法について尋ねたため)は、暗号化されたストレージスペースを作成し、その保護されたスペースにファイルを保存する機能です。一部のファイルを保護したいが、メインハードディスク全体を暗号化したくない場合に便利です。

暗号化された.dmgファイルの作成の詳細については、「macOS Sierraのディスクユーティリティ:ディスクユーティリティ使用してディスクイメージを作成する」を参照してください。


ただし、暗号化はを必要とせずにすでに実行可能です.dmg。Unixは暗号化されませんか?
18

@ Pacerier-確かに-Linux / Unixのすべてと同様に、何かをする方法は複数あります。
ケン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.