Ошибка при попытке распаковать файл: «нужен ПК-компат. v6.1 (может сделать v4.6) ”

24

Я получил почтовый файл из банка. Я получаю следующую ошибку при попытке распаковать его.

unzip filename.zip 
Archive:  filename.zip
   skipping: SOME_STUFF.pdf  need PK compat. v6.1 (can do v4.6)

Команда fileвозвращает

Zip archive data

для этого файла.

Существует немало потоков, содержащих это сообщение об ошибке, но единственные конкретные предложения, которые у них есть, это использовать 7z xили 7za xиз p7zip-fullпакета. Они терпят неудачу с ошибкой:

Unsupported Method

Sub items Errors: 1

Я использую Debian Wheezy AMD64. Я не вижу значительных обновлений пакетов unzipили 7zaв тестировании / нестабильном, хотя.

Буду признателен за предложения о том, как разархивировать этот файл, и в целом, что означает сообщение об ошибке PK compat. v6.1 (can do v4.6)? Для широко используемой утилиты zipне так много документации о ней. README в источниках Debian указывает на http://www.info-zip.org/pub/infozip/, в котором перечисляется релиз от 29 апреля 2009 года для UnZip 6.0.

Вот вывод версии для unzipдвоичного файла в моей системе.

unzip -v
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ;
see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites.

Compiled with gcc 4.7.2 for Unix (Linux ELF) on Feb  3 2015.

UnZip special compilation options:
        ACORN_FTYPE_NFS
        COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported)
        SET_DIR_ATTRIB
        SYMLINKS (symbolic links supported, if RTL and file system permit)
        TIMESTAMP
        UNIXBACKUP
        USE_EF_UT_TIME
        USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported)
        USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported)
        UNICODE_SUPPORT [wide-chars, char coding: UTF-8] (handle UTF-8 paths)
        LARGE_FILE_SUPPORT (large files over 2 GiB supported)
        ZIP64_SUPPORT (archives using Zip64 for large files supported)
        USE_BZIP2 (PKZIP 4.6+, using bzip2 lib version 1.0.6, 6-Sept-2010)
        VMS_TEXT_CONV
        WILD_STOP_AT_DIR
        [decryption, version 2.11 of 05 Jan 2007]

UnZip and ZipInfo environment options:
           UNZIP:  [none]
        UNZIPOPT:  [none]
         ZIPINFO:  [none]
      ZIPINFOOPT:  [none]

dpkg сообщает версию пакета как 6.0-8+deb7u2.

Вывод zipinfo:

zipinfo filename.zip 
Archive:  filename.zip
Zip file size: 6880 bytes, number of entries: 1
-rw-a--     6.4 fat    10132 Bx defN 15-Feb-06 16:24 SOME_STUFF.pdf
1 file, 10132 bytes uncompressed, 6568 bytes compressed:  35.2%
Фахим Митха
источник
Я столкнулся с этим сообщением об ошибке, в котором предлагается установить p7zip-rarна Debian, если вы получите сообщение об 7zошибке.
Anthon

Ответы:

30

Происхождение ошибки

PK в ошибке обозначает Фила Каца, изобретателя оригинального формата PKZIP. zipУтилита не поспевает с возможностями pkzipполученного коммерческого программного обеспечения, в частности , в хранилище сертификатов , что банки , как включить в их ZIP файлов.

Википедия дает обзор развития формата. Но zipутилиты Unix не реализуют изменения после 2002 года.

Возможно, вам придется купить коммерческую версию PKWARE для Linux, чтобы распаковать это.

Справочная страница для пользователя zipимеет следующее unzip:

   A  companion  program  (unzip(1))  unpacks  zip  archives.  The zip and
   unzip(1) programs can work with archives produced by PKZIP  (supporting
   most PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can
   work with archives produced  by  zip  (with  some  exceptions,  notably
   streamed  archives,  but  recent  changes  in the zip file standard may
   facilitate better compatibility).  zip version 3.0 is  compatible  with
   PKZIP  2.04  and  also supports the Zip64 extensions of PKZIP 4.5 which
   allow archives as well as files to exceed the previous 2 GB limit (4 GB
   in  some  cases).  zip also now supports bzip2 compression if the bzip2
   library is included when zip is compiled.  Note that PKUNZIP 1.10  can‐
   not extract files produced by PKZIP 2.04 or zip 3.0. You must use PKUN‐
   ZIP 2.04g or unzip 5.0p1 (or later versions) to extract them.

Решение

Хотя zipне могу сделать работу, есть и другие инструменты, которые могут. Вы упоминаете утилиту 7zip и версию 7-Zip для командной строки для Linux / Unix, которая, среди прочего, может читать и записывать ZIPформат. Он утверждает, что если 7-Zip не может прочитать zip-файл, то в 99% случаев он поврежден . Утилиты 7-Zip должны быть в состоянии прочитать ваш файл, так что он либо сломан, либо ваш - в 1% (по которым я не нашел более подробной информации).

7-zip для Linux поставляется в различных исполняемых файлах с поддержкой разных форматов. Самый простой ( 7zr), не поддерживает ZIP, вы должны использовать по крайней мере 7zaили полноценный 7z:

7za x filename.zip

Различные версии Linux пакет 7za/ 7zв пакетах с разными именами.

Самое простое (как это часто бывает) установка на Solus:

sudo eopkg install p7zip

В производной от Debian версии Linux пакет p7zipустанавливает только базу 7z, которая не поддерживает ZIP. Это разделение вызвало некоторые проблемы, и установка p7zip-fullне делает то, что говорит, иногда вам также нужно установитьp7zip-rar В моей системе Linux Mint мне нужно было сделать:

sudo apt-get install p7zip-full p7zip-rar

В RedHat / CentOS вам нужно включить репозиторий EPEL . Например, на CentOS 7 мне нужно было сделать:

sudo yum install epel-release
sudo yum --enablerepo=epel install p7zip
Энтон
источник
Спасибо, Энтон, это очень информативно. Вы знаете, почему zipутилита не поспела? Относительно примечания: есть ли какой-нибудь защищенный паролем способ передачи, который я мог бы рекомендовать своему банку использовать, который мог бы помочь в работе на основе системы Linux без использования проприетарного программного обеспечения?
Фахим Митха
@FaheemMitha Я предполагаю, что pkware хотел заработать больше денег и не раскрывает подробности о новых форматах, а также не публикует код как открытый исходный код. Я не думаю, что ваш банк изменится только для вас, у меня были проблемы в течение нескольких лет со слегка несоответствующими PDF-файлами, которые, как оказалось, не могли прочитать, и я закончил тем, что запустил свою виртуальную машину WinXP, чтобы сделать это.
Энтон
Я не ожидаю, что мой банк сделает что-нибудь только для меня. :-) Но я подумал, что если бы был какой-то альтернативный метод, они могли бы рассмотреть возможность его использования. В этом случае этот zip-файл не был отправлен мне каким-либо автоматическим способом. Он был отправлен мне человеком по моей просьбе.
Фахим Митха
Формат ZIP, указанный в файле «APPNOTES», открыто обсуждается PKWare. @Anthon
eckes
9

Я столкнулся с той же проблемой, кроме как с PK compat. v6.3. Решил это, распаковав архив с 7-zip версией POSIX.

Пакет Arch Linux: p7zip .

мандарин
источник
1
Использование 7zip было лучшим вариантом для меня. то есть7z x archive.zip
Мэтт H
3

Я столкнулся с точно таким же кодом ошибки ( need PK compat. v6.1) при попытке разархивировать zip-файл со стандартным распаковщиком MacOS.

Я попробовал p7zip и немного углубился в него, прежде чем проверять App Store.

В App Store я нашел бесплатное приложение для разархивирования под названием «Unarchiver» (первый результат поиска на момент написания этой статьи), и оно успешно разархивировало файл без проблем.

Для пользователей Mac я бы предложил использовать эту бесплатную программу «Unarchiver».

Джонатан Стил
источник
Это не поможет OP, здесь, кто использует Debian ...
Джефф Шаллер
1
@JeffSchaller ОП давно ушел. :-) И я в порядке с ответом Mac, даже если он не отвечает прямо на вопрос. Может быть, это будет кому-то полезно.
Фахим Митха
Я думаю, что с большей вероятностью он будет полезен (и найден) в вопросе для Mac (спросите другого?)
Джефф Шаллер
2
@JeffSchaller Ну, если кто-то погуглит сообщение об ошибке, он, скорее всего, наткнется на этот вопрос.
Фахим Митха
Я согласен, мы должны помнить, что SO полезен также для вопросов, похожих на исходный, на самом деле было бы хуже, если бы был такой вопрос для каждой отдельной ОС ...
Франческо Маркетти-Штази