Помилка під час розпакування файлу: "потрібен PK compat. 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помилку, яку ви отримали.
Антон

Відповіді:


30

Походження помилки

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

Вікіпедія дає огляд розвитку формату. Але zipутиліти Unix не впроваджують зміни після 2002 року.

Можливо, вам доведеться придбати комерційну версію PKWARE для Linux, щоб скасувати це.

Сторінка "man" для себе 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

У версії Linux, створеної Debian, пакет 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 без використання власного програмного забезпечення?
Faheem Mitha

@FaheemMitha Моя здогадка полягає в тому, що pkware хотіла заробити більше грошей і не розголошує подробиці новіших форматів і не публікує код як відкритий код. Я не думаю, що ваш банк не зміниться лише для вас, у мене були проблеми протягом декількох років із незначно невідповідними PDF-файлами, які, напевно, не могли прочитати, і я закінчив звільнення мого WinXP VM, щоб це зробити.
Антон

Я не очікую, що мій банк зробить щось тільки для мене. :-) Але я подумав, що якщо є якийсь альтернативний метод, можна подумати про його використання. У цьому випадку цей заархівований файл мені не надсилався деяким автоматизованим методом. Це було надіслано мені людиною на моє прохання.
Faheem Mitha

Формат ZIP, визначений у файлі "APPNOTES", PKWare відкрито підтверджується. @Anthon
eckes

9

Я зіткнувся з тією ж проблемою, окрім як PK compat. v6.3. Вирішили це, витягнувши архів із 7-zip версією POSIX.

Пакет Arch Linux: p7zip .


1
Використання 7zip було найкращим варіантом для мене. тобто7z x archive.zip
Метт Н

3

Я наткнувся на той самий код помилки ( need PK compat. v6.1), намагаючись розпакувати zip-файл із розпакувачем MacOS за замовчуванням.

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

У App Store я знайшов безкоштовну програму unzipper під назвою "Unarchiver" (перший результат пошуку з моменту написання цього тексту), і він успішно розпакував файл без проблем.

Користувачам Mac я пропоную скористатися цією безкоштовною програмою "Unarchiver".


Це не допоможе ОП, ось хто використовує Debian ...
Джефф Шалер

1
@JeffSchaller ОП давно перейшов. :-) І я в порядку з відповіддю на Mac, навіть якщо це не відповідає безпосередньо на питання. Можливо, комусь це стане в нагоді.
Faheem Mitha

Я думаю, що це буде більш корисно (і знайдеться) у питанні Mac (Задати питання іншим?)
Jeff Schaller

2
@JeffSchaller Добре, якщо хтось googles повідомлення про помилку, вони, швидше за все, наткнуться на це питання.
Faheem Mitha

Я погоджуюсь, ми повинні пам’ятати, що ТАК корисний також для питань, подібних до оригіналу, насправді було б гірше, якби запитання на зразок цього було для кожної різної ОС…
Франческо Маршетті-Стасі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.