タイトルBrowsing Mac OS X》dmgファイルをダウンロードしようとして化け文字が表示?カテゴリーインターネット全般, Browsing Mac OS X
作成日2001/7/10 14:32:27作成者新居雅行
Mac OS X対応ソフトがどんどんと世の中に出始めている。商品よりも、フリーソフト系が目立つのは仕方ないとしても、世界中のあちらこちらのサイトで、すでにたくさんのソフトが配付されている。従来のMac OSでは、そうしたオンラインソフトのファイルは、StuffItで圧縮したsitファイル、あるいはさらにそれをBinHex形式にエンコードしたbinファイルあたりがメジャーなところだろう。自己解凍可能なseaファイルもあるが、Mac OSにStuffIt Expanderが同梱されているだけに、sitでも十分と考える人が多いようだ。これらのファイルへのリンクをクリックすると、何も考えなくてもちゃんとダウンロードして、デスクトップなどにファイルはきちんと取り込まれている。PDFファイル(.pdf)や、Excelのワークシート(.xls)なんかもそのままアップロードしてもとりあえずはなんとかなっているというのが事情である。
ところが、Mac OS Xのソフトをダウンロードする時、ブラウザの画面にいきなり化け文字が並んでしまうという経験は、何度もダウンロードしている人だと必ずぶちあたっているだろう。これは、ソフトウエアを含むファイルの中身は確かにインターネットを通じてダウンロードできているのだが、それをWebページなどブラウザで表示するものだと勘違いしてWebブラウザで表示してしまっているのである。この場合にどうすればいいのかということを、紹介してみたい。

まず、こうした結果になるのは、おそらく拡張子が.dmgのファイルだろう。これは、ディスクイメージファイルと呼ばれるもので、デスクトップにマウントされるボリュームの中身全体が入ったファイルなのである。Disk Copyアプリケーションを使えば、このdmgファイルの内容をもとに、ハードディスクのようなボリュームが作られ、そこにたくさんのファイルやフォルダが入っているようにできるというわけだ。つまり、昔風に言えば、フロッピーディスクにいろいろなファイルを配置した状態を、そっくりそのままダウンロードした人のデスクトップに再現できるというものなのである。もちろん、Mac OS Xではインストーラでのインストールも可能な.pkgというファイル形式があるのだが、アプリケーションなど単にダブルクリックすれば使えるようなものにわざわざインストーラを作るにしても使うにしても効率が悪い。そういうアプリケーションだと、dmgファイルで、アプリケーションそのものとたとえばReadMeファイルをいっしょにして配付してしまおうというわけだ。
ちなみに、dmgファイルの種類をFinderのインスペクタ見ると、UDIF device imageとなっているが、UDIFはUniversal Disk Image Formatの略である。ディスクイメージの変遷はいろいろあるが、Terminalで「man hdiutil」などとしてhdiutilコマンドをマニュアルを参照するとある程度の説明はある。UDIFはMac OS X向けにアップデートされたディスクイメージファイルのフォーマットである。

前置きが長くなったが、dmgファイルをダウンロードしようとしてクリックするけど、化け文字が並ぶという場合には、即座にブラウザの「中止」ボタンをクリックする。そして、「戻る」ボタンで、ダウンロードのリンクのあるページに戻る。そして、dmgファイルへのリンクをcontrol+クリックするか、プッシュし続けてメニューをだし、「リンクをディスクにダウンロード」を選択する。ここでは保存するファイル名やフォルダ名を指定するダイアログボックスが出るので、適当にファイルを保存しておく。とりあえず、この手順でダウンロードができる。

このようにWebクライアント側で化け文字が見えるのは、実はサーバの設定に関係している。サーバ側では、ファイルの拡張子に応じて、ブラウザ側での動作をどのようにするかといった設定ができる。一連の設定は、MIMEタイプで管理されている。動作の上ではサーバ、クライアントとともにカスタマイズができるのだが、事実上はデフォルトで使うことが多いだろう。たとえば、.htmlや.txt、.jpgといった拡張子ならブラウザのウインドウに表示される。.sitや.lzhといった拡張子だったらダウンロードされるのである。いずれにしても、サーバとクライアントの設定でこうした動作になっていると考えればよい。.dmgファイルはダウンロードされるようになってほしいのだが、一般的な状態ではhtmlなどと同じくWebブラウザのウインドウに表示されてしまうといった設定になっているのである。
では、.dmgファイルの場合はどうすればいいのだろうか。もちろん、クライアント側でどうこうするということも選択肢としては存在するのだが、ダウンロードする人に設定を変えて下さいというのもそうも行かないことも多いだろう。そこで、サーバ側の設定を変更して、ブラウザ側を変更しなくても確実にブラウザ側でダウンロードされるようにするのがよい。やり方は1つではないが、いちばん確実なやり方は、dmgという拡張子に対して、「application/octet-stream」というMIMEタイプが割り当てられるようにすることだ。Apacheだと、設定ファイルのディレクトリ(httpd.confのあるディレクトリに)、mime.typesというファイルがある。ルートになるなどして、そのファイルを変更する。たとえば、以下のようになっている行をみつける。

application/octet-stream bin dms lha lzh exe class

行の後半に拡張子が並んでいるので、そこに、dmgを追加すればよい。たとえば、追加後は、以下の通りだ。

application/octet-stream bin dms lha lzh exe class dmg

そして保存をして、Apacheを再起動すればよい。これで、このWebサーバから送信されるdmgファイルは、Webクライアント側では一般には直接ファイルに保存され、ウインドウに中身が表示するということはない。
なお、Apache以外のIISやWebStarなどのWebサーバでも、dmgファイルに対するMIMEタイプの対応付けは設定されていないと思われる。適切な方法で、設定を行えば良いだろう。

なお、Mac OS X Serverでも、dmgファイルに対するMIMEタイプの割り当ては設定されていない。(Mac OS Xでも同様だが、/etc/httpd/mime.typesファイルを上記のように変更すればよい。)
Mac OS X Serverの場合は、Server Adminを使って定義を追加することができる。Sever Adminの「インターネット」のタブに「Webサービス」という設定がある。そのアイコンをクリックして、「Webサービスを設定」を選択すると、設定ダイアログボックスが表示される。そして「MIMEタイプ」のタブをクリックすると、設定されているMIMEタイプが一覧されるはずだ。そして「追加」ボタンをクリックして、dmgに対してapplication/octet-streamのMIMEタイプを割り当てるように設定を行う。図を参考にしてもらいたい。

◇dmgに対してapplication/octet-streamを割り当てる
 

何年もすると、WebサーバのデフォルトのMIMEタイプ設定にdmgファイルに対する適切なMIMEタイプが設定されるようになるのかもしれないが、現状では以上のように、ダウンロードする側もファイルを公開する側も注意をしなければならない。ただ、自分でサーバーを管理している人なら設定をいじることができるが、ネットワーク管理者がいる場合や、あるいはプロバイダのレンタルサーバなどの場合では自分で設定をいじることができない。いずれにしても、拡張子とそれに対するMIMEタイプの割り当てを追加するようにお願いすれば、一般的には応じてもらえるはずだ。いずれにしても、ダウンロードする側を混乱させないためには、とりあえずはサーバ側で対処しないといけないというのが現状でのdmgファイルの利用では欠かせないのである。もし、どうしても、サーバの設定がかえられない場合、せめて、「クリックはしないで、control+クリックしてメニューからダウンロードを選んでください」などのメッセージはWebページに記入しておくべきだろう。
関連リンク