OpenBSDのソースからビルドしようとすると、ファイルの解凍で問題が発生しました。最初はファイルが破損しているだけだと思っていましたが、その後、さまざまなプログラムやさまざまなダウンロード方法(curl -O
、FTP、WindowsにダウンロードしてWinSCP経由で転送)、さらには同じプログラムの異なるファイル(.xz
、.bz2
、.lz
)私は何か間違ったことをしているに違いないと信じるようになりました。使用時に発生するエラー
tar xzvf file
です
gzip: stdin: unrecognized file format
tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
それは、さまざまなプログラム、さまざまなダウンロード方法、さらにはさまざまなファイルで発生しており、これは私を夢中にさせています。
現在解凍できないファイルの例:gnutls-3.4.3.tar.xz
およびgmp-6.0.0a.tar.bz2
Windows経由でダウンロードされ、WinSCPバイナリモード経由で転送されます。
ls -L
出力:
-rw-r--r-- 1 root wheel 6546268 Jul 12 09:18 gnutls-3.4.3.tar.xz
-rw-r--r-- 1 root wheel 2319400 Jul 24 2015 gmp-6.0.0a.tar.bz2
od -x
出力:
od -x gnutls-3.4.3.tar.xz | head -10
0000000 37fd 587a 005a 0400 d6e6 46b4 0002 0121
0000020 0016 0000 2f74 a3e5 00e8 f06d 5d02 3300
0000040 8b9b 1912 a356 72d2 a129 5502 49fb f64d
0000060 c492 64da be73 7fde 4d79 9170 c055 27b9
0000100 8fc9 6caa 3f02 b551 e014 fd24 a2ad c57d
0000120 ce49 59f3 da73 0ee9 0319 b7ea c55c 5e2e
0000140 8fd8 7af6 4f97 b1a8 1ac9 d553 a703 1f1d
0000160 b226 682e 3e00 d2bc a0f8 4b57 13d0 f887
0000200 7f84 c83f 94cd 154b 1dfe 37cd 25db 13d9
0000220 cdcd 5861 6558 acc3 0103 21ed e8d9 979d
私のtarはJ
をオプションとして認識していないようです:
tar xJvf gmp-5.1.3.tar.xz
tar: unknown option J
そして、2番目のコマンドからのエラー出力:
tar xjvf gmp-6.0.0a.tar.bz2
tar: could not exec bzip2: No such file or directory
tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
より有用なエラー出力:
tar xvf gnutls-3.4.3.tar.xz
tar: Cannot identify format. Searching...
tar: Cpio file name length 36039 is out of range
tar: Invalid header, starting valid header search.
tar: Cpio file name length 63118 is out of range
tar: Cpio file name length 38744 is out of range
<suppressed similar errors>
tar: Cpio file name in header is corrupted
tar: Cpio file name length 46161 is out of range
tar: Cpio file name length 32085 is out of range
<suppressed similar errors>
tar: Cpio file name in header is corrupted
<more suppressed similar errors>
tar: End of archive volume 1 reached
z
オプションは、tar
にgunzip
(またはその内部の同等のもの)を使用してアーカイブを解凍するように指示し、gzip
で圧縮されたアーカイブにのみ適切です。 .tar.gz
拡張。
他の圧縮形式を使用してアーカイブを解凍するには、
tar xvf file
あなたのtar
が自分で物事を理解できるほど賢いかどうかを確認します。そうでない場合は、使用する解凍ツールに指示するか、アーカイブを解凍してパイプで送ることができます。
.tar.bz2
の場合:tar xjvf file
またはbunzip2 -c file | tar xvf -
.tar.xz
の場合:tar xJvf file
またはxzcat file | tar xvf -
.tar.lz
の場合:tar xjf file --lzip
またはlunzip -c file | tar xvf -
使用しているファイル:
tar xJvf gnutls-3.4.3.tar.xz
tar xjvf gmp-6.0.0a.tar.bz2
またはどうやらOpenBSDでtar
:
xzcat gnutls-3.4.3.tar.xz | tar xvf -
bunzip2 -c gmp-6.0.0a.tar.bz2 | tar xvf -
xz
およびbunzip2
がインストールされていることを確認する必要があります。 bunzip2
はbzip2
と一緒にパッケージ化できます。