FreeBSD QandA 76

FreeBSD QandA

Q. ダウンロードしてきた package がうまくインストールできなかったり、アー
   カイヴファイル (.gz、.tgz、.bz2 .lzh .zip など) がうまく展開できません。
   また、その為か ports/packages のインストールに失敗することがあります。

   例えば、以下のようなエラーが出ます。

     gzip: test.tar.gz: invalid compressed data--format violated

     bunzip2: test.tar.bz2: data integrity (CRC) error in data
     You can use the `bzip2recover' program to attempt to recover
     data from undamaged sections of corrupted files.

     gzip: stdin: invalid compressed data--format violated
     tar: Unexpected EOF on archive file
     tar: child returned status 1

     ports の場合だと、
     >> Checksum mismatch for xxx.tar.gz.
     というエラーで止まってしまうことがあります。

A. 転送時にファイルが壊れた可能性があります。
   ・ブラウザなどを使ってファイルを get した場合、ファイルの転送がうまく
     いかないことがあるようです。
     バイナリデータをきちんと転送できるようにして再度 get し直してみるか、
     (WWW ブラウザではなく) FTP client でファイルを転送してみて下さい。
   ・FTPクライアントを用いた場合、転送モードが ASCII モードになっていると
     ファイルの中の 0x0d が 0x0d、0x0a に置き換えられてしまい正常に展開で
     きません。転送モードをバイナリモードにして下さい。

   リモートのファイルサイズが表示される場合は、転送後のファイルサイズと等
   しいか比較して確認できます。(ただし、kb オーダーで表示されていたりする
   と正しく比較できないこともあります)。

   ports の場合は、転送はうまくいったものの、配布ファイルが変更されていて
   MD5 チェックサムが変わってしまった為、チェックにひっかかっている可能性
   もあります。
   配布ファイルが名前を変更せずに更新されていた場合は、MD5 のチェックを無
   視するようにしてもよいですが、第三者の手によって好ましくない変更が加え
   られている可能性もあるので、きちんと確認すべきでしょう。

   尚、DOS 用の tar には -a オプションを有するものがあり、これを指定して
   展開しようとするとうまく行かないという報告があります。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。