Wystąpił błąd podczas próby rozpakowania pliku: „Need PK Comp. wersja 6.1 (można zrobić wersję 4.6) ”

24

Otrzymałem plik zip z banku. Podczas próby rozpakowania pojawia się następujący błąd.

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

Te filepowroty dowodzenia

Zip archive data

dla tego pliku.

Istnieje sporo wątków zawierających ten komunikat o błędzie, ale jedyne konkretne sugestie, które mają, to użycie 7z xlub 7za xz p7zip-fullpakietu. Te kończą się błędem:

Unsupported Method

Sub items Errors: 1

Używam Debiana wheezy amd64. Nie widzę jednak istotnych aktualizacji pakietów unziplub 7zaw testowaniu / niestabilności.

Byłbym wdzięczny za sugestie, jak rozpakować ten plik, a bardziej ogólnie, co oznacza komunikat o błędzie PK compat. v6.1 (can do v4.6)? W przypadku powszechnie używanego narzędzia zipnie ma dużo dokumentacji na ten temat. README w źródłach Debiana wskazuje na http://www.info-zip.org/pub/infozip/, który zawiera listę wydań z 29 kwietnia 2009 dla UnZip 6.0.

Oto dane wyjściowe wersji pliku unzipbinarnego w moim systemie.

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 zgłasza wersję pakietu jako 6.0-8+deb7u2.

Dane wyjściowe zipinfoto:

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%
Faheem Mitha
źródło
Natknąłem się na ten raport o błędzie, który sugeruje instalację p7zip-rarna Debianie na wypadek, gdybyś dostał 7zbłąd.
Anthon

Odpowiedzi:

30

Geneza błędu

Błąd PK oznacza Phila Katza, wynalazcę oryginalnego formatu PKZIP. zipNarzędzie nie zachowało się z możliwościami tej pkzippochodzącej komercyjnego oprogramowania, zwłaszcza do przechowywania certyfikatów, które banki lubią zaliczać do swoich plików ZIP.

Wikipedia zawiera przegląd rozwoju tego formatu. Ale zipnarzędzia uniksowe nie wdrażają zmian po roku 2002.

Być może trzeba będzie kupić komercyjną wersję PKWARE dla systemu Linux, aby ją zdekompresować.

Strona zippodręcznika man ma dla siebie następujące słowa i 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.

Rozwiązanie

Chociaż zipnie można wykonać pracy, istnieją inne narzędzia, które mogą. Wspominasz o narzędziu 7zip i wersji 7-Zip w linii poleceń Linux / Unix , która między innymi może odczytywać i zapisywać ZIPformat. Twierdzi, że jeśli 7-Zip nie może odczytać pliku zip, to w 99% przypadków plik jest uszkodzony . Narzędzia 7-Zip powinny być w stanie odczytać twój plik, więc albo jest uszkodzony, albo twój jest w 1% (dla których nie znalazłem żadnych dalszych szczegółów).

7-zip w systemie Linux jest dostępny w różnych plikach wykonywalnych z obsługą różnych formatów. Najbardziej podstawowa ( 7zr), nie obsługuje ZIP, powinieneś użyć przynajmniej 7zapełnej wersji 7z:

7za x filename.zip

Inny pakiet wersji Linux 7za/ 7zw pakietach o różnych nazwach.

Najłatwiejszą (jak często) jest instalacja na Solusie:

sudo eopkg install p7zip

W wersji Linuksa pochodzącej z Debiana pakiet p7zipinstaluje tylko bazę 7z, która nie obsługuje ZIP. Ten podział spowodował pewne problemy, a instalacja p7zip-fullnie robi tego, co mówi, czasem trzeba też zainstalowaćp7zip-rar na moim systemie Linux Mint, co musiałem zrobić:

sudo apt-get install p7zip-full p7zip-rar

W RedHat / CentOS musisz mieć włączone repozytorium EPEL . Np. Na CentOS 7 musiałem zrobić:

sudo yum install epel-release
sudo yum --enablerepo=epel install p7zip
Anthon
źródło
Dzięki, Anthon, to bardzo pouczające. Czy wiesz, dlaczego zipnarzędzie nie nadąża? W powiązanej notatce, czy istnieje jakakolwiek chroniona hasłem metoda transmisji, którą mógłbym polecić mojemu bankowi do użycia, która mogłaby mieć szansę na pracę w systemie opartym na Linuksie bez korzystania z prawnie zastrzeżonego oprogramowania?
Faheem Mitha
@FaheemMitha Domyślam się, że pkware chciał zarobić więcej pieniędzy i nie ujawnia szczegółów nowszych formatów ani nie publikuje kodu jako open source. Nie sądzę, aby twój bank zmienił się tylko dla ciebie, przez kilka lat miałem problemy z nieco niezgodnymi plikami PDF, których ewangelia nie mógł odczytać, i skończyło się to uruchomieniem mojej maszyny Wirtualnej WinXP.
Anthon,
Nie oczekuję, że mój bank zrobi coś tylko dla mnie. :-) Ale pomyślałem, że jeśli istnieje jakaś alternatywna metoda, mogą rozważyć jej użycie. W tym przypadku ten skompresowany plik nie został wysłany do mnie za pomocą automatycznej metody. Został mi przesłany przez osobę na moją prośbę.
Faheem Mitha,
Format ZIP określony w pliku „APPNOTES” jest jawnie dokumentowany przez PKWare. @Anthon
eckes
9

Natknąłem się na ten sam problem z wyjątkiem PK compat. v6.3. Rozwiązano go, rozpakowując archiwum w wersji POSIX z 7-zipem.

Pakiet Arch Arch: p7zip .

Mandarynka
źródło
1
Korzystanie z 7zip było dla mnie najlepszą opcją. tj.7z x archive.zip
Matt H
3

need PK compat. v6.1Napotkałem dokładnie ten sam kod błędu ( ) podczas próby rozpakowania pliku zip za pomocą domyślnego rozpakowania MacOS.

Wypróbowałem p7zip i trochę się w to zagłębiłem przed sprawdzeniem App Store.

W App Store znalazłem bezpłatną aplikację do rozpakowywania o nazwie „Unarchiver” (pierwszy wynik wyszukiwania w tym piśmie) i bez problemu rozpakowałem plik.

Użytkownicy komputerów Mac sugerują skorzystanie z bezpłatnego programu „Unarchiver”.

Jonathan Steele
źródło
To nie pomoże OP, który używa Debiana ...
Jeff Schaller
1
@JeffSchaller PO już dawno się przeprowadził. :-) I zgadzam się z odpowiedzią na komputer Mac, nawet jeśli nie odpowiada ona bezpośrednio na pytanie. Może komuś się przyda.
Faheem Mitha
Myślę, że bardziej przydałoby się (i znalazło) na Macintoshu Pytanie (Ask Different?)
Jeff Schaller
2
@JeffSchaller Cóż, jeśli ktoś przejrzy komunikat o błędzie, prawdopodobnie natknie się na to pytanie.
Faheem Mitha
Zgadzam się, powinniśmy pamiętać, że SO jest przydatny również w przypadku pytań podobnych do pierwotnego, w rzeczywistości byłoby gorzej, gdyby było takie pytanie dla każdego innego systemu operacyjnego ...
Francesco Marchetti-Stasi,