2015-10-01

MacでZIPファイルが展開できない

Raspberry Pi用のLinuxディストリビューション Raspbian Jessie のSDカードイメージが公開されていたので、さっそく試してみようとダウンロードしたのだが……

OS X Yosemite 10.10.5 + Safari 8.0.8 でダウンロードしたZIPファイルをFinderからダブルクリックで展開(解凍)しようとしておかしなことに気が付いた。

Raspbianのイメージは圧縮状態で1.33GBのかなり大きなファイルなので展開にも時間がかかる。展開の途中経過を表示するメッセージは通常なら「“2015-09-24-raspbian-jessie.zip”を展開中...」だ。

ところが、いつもと違って、展開の進捗を示すダイアログのメッセージが「“2015-09-24-raspbian-jessie.zip”アーカイブ中...」となっている。

アーカーイブ中? って、ZIPアーカイブをさらにアーカイブしてどうすんだよ。

と、不思議に思いつつも放置していると 2015-09-24-raspbian-jessie.zip.cpgz というファイルが出来上がってしまった。本当に展開せずにアーカイブしていたのだ(しかも cpgz 形式)。

Macの奇妙な挙動に閉口しつつ、ターミナルからunzipコマンドで展開しようとすると、

$ unzip 2015-09-24-raspbian-jessie.zip
Archive:  2015-09-24-raspbian-jessie.zip
warning [2015-09-24-raspbian-jessie.zip]:  76 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [2015-09-24-raspbian-jessie.zip]:  reported length of central directory is
  -76 bytes too long (Atari STZip zipfile?  J.H.Holm ZIPSPLIT 1.1
  zipfile?).  Compensating...
   skipping: 2015-09-24-raspbian-jessie.img  need PK compat. v4.5 (can do v2.1)

note:  didn't find end-of-central-dir signature at end of central dir.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

と、怒られてしまう。

ひょっとしてダウンロードしたファイルが壊れているのかと疑ってSHA-1ハッシュ値を確認してみたが、元ファイルのものと一致するので壊れているとは考え難い。

試しに Raspbian Wheezy Linux 上のunzipコマンドを使うとエラーにならず、ちゃんと展開できる。

どうやら、OS X標準のアーカイブユーティリティ('/System/Library/CoreServices/Applications/Archive Utility.app')やunzipコマンドでは展開できない(解凍できない)タイプのZIPファイルらしい。

ネットで調べると7-Zipが多様なフォーマットに対応しているようなので MacPorts でインストールして、

$ port search 7zip
p7zip @9.38.1_1 (archivers)
    7-Zip implementation

$ sudo port install p7zip

件のZIPファイルを展開してみる。

$ 7z e 2015-09-24-raspbian-jessie.zip

7-Zip [64] 9.38 beta  Copyright (c) 1999-2014 Igor Pavlov  2015-01-03
p7zip Version 9.38.1 (locale=utf8,Utf16=on,HugeFiles=on,8 CPUs)

Processing archive: 2015-09-24-raspbian-jessie.zip

Extracting  2015-09-24-raspbian-jessie.img

Everything is Ok

Size:       4325376000
Compressed: 1332985725

問題ないようだ。

コマンドラインが嫌いな人は Mac App Store をキーワード「zip」で検索して適当なアプリを探すとよいだろう。

ちなみに、拡張子 .cpgz ファイルができてしまうのはアーカイブユーティリティの初期設定が「圧縮アーカイブ」になっているからで、設定を変更していると .cpgz ではなく .cpio (通常のアーカイブ)あるいは .zip (Zip アーカイブ)となる場合もある。

1 件のコメント:

  1. tarコマンドで展開できるという話を聞いて、やってみたら本当にできた。tarってZIPも扱えるのか知らなかった。

    返信削除