Автоинструментальные средства - tar Это не похоже на архив tar - PullRequest
16 голосов
/ 26 июля 2010

После запуска make distcheck я получаю сообщение, что я успешно собрал пакет и готов к распространению. Если я распаковываю tar.gz с tar -zxvf hello-0.2.tar.gz, он успешно извлекает все его содержимое. Однако, когда я пытаюсь извлечь их на разных машинах, я получаю:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Странно то, что он работал раньше.

На машине, где я пытаюсь собрать пакет, я обновил automake 1.10.1, autoconf 2.61, and tar 1.20 to automake 1.11.1, autoconf 2.65, and tar 1.23 и все тот же вопрос.

Есть идеи, в чем может быть проблема?

Ответы [ 2 ]

14 голосов
/ 10 января 2012

Проблема не в сборке машины; проблема на целевых машинах.

Не все версии tar автоматически распознают распаковку для применения к сжатому файлу tar. Учитывая, что gunzip, за которым следует tar, работает, то tar на вашей целевой машине является одним из таких. Версии tar в основных системах Unix (AIX, HP-UX, Solaris) не распознают сжатые tar-файлы автоматически. Те, на Linux и MacOS X, делают.

Обратите внимание, что вы можете использовать:

gzip -dc hello-0.2.tar.gz | tar -xf -

, чтобы избежать создания промежуточного несжатого файла.

4 голосов
/ 16 января 2013

На самом деле это может произойти, когда сервер, с которого вы загружаете, применяет еще один раунд GZip, а клиент, который вы использовали для загрузки файла, не читает / не учитывает заголовок HTTP Content-Encoding и сохраняет полезную нагрузку HTTP, как это было в сети .

Несмотря на то, что файл имеет только расширение .tar.gz, на самом деле это .tar.gz.gz. после того, как вы запустите gunzip, как только файл получит расширение .tar, но на этот раз команда tar tar xf hello-0.2.tar распознает формат GZip и неявно пропустит файл через gunzip еще раз перед извлечением.

Вы можете проверить это, запустив head hello-02.tar.gz и head hello-02.tar. GZip - это очень двоичный формат, тогда как tar довольно читабелен. Если файл .tar выглядит «слишком двоичным», у вас есть дважды закодированный файл.

...