Erreur lors de la tentative de décompression du fichier: «need PK compat. v6.1 (peut faire v4.6) "

24

J'ai reçu un fichier zip d'une banque. J'obtiens l'erreur suivante lorsque j'essaye de le décompresser.

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

La filecommande retourne

Zip archive data

pour ce fichier.

Il y a un bon nombre de threads contenant ce message d'erreur, mais les seules suggestions concrètes qu'ils ont à utiliser 7z xou à 7za xpartir du p7zip-fullpackage. Ceux-ci échouent avec l'erreur:

Unsupported Method

Sub items Errors: 1

J'utilise Debian wheezy amd64. Je ne vois cependant pas de mises à jour significatives des packages unzipou 7zadans testing / unstable.

J'apprécierais des suggestions sur la façon de décompresser ce fichier, et plus généralement, que signifie le message d'erreur PK compat. v6.1 (can do v4.6)? Pour un utilitaire largement utilisé, il zipn'y a pas beaucoup de documentation disponible à ce sujet. Le fichier README dans les sources Debian pointe vers http://www.info-zip.org/pub/infozip/ qui répertorie une version datée du 29 avril 2009 pour UnZip 6.0.

Voici la sortie de la version pour le unzipbinaire sur mon système.

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 signale la version du package comme 6.0-8+deb7u2.

La sortie de zipinfoest:

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
la source
Je suis tombé sur ce rapport de bogue qui suggère de l'installer p7zip-rarsur Debian au cas où vous obtenez l' 7zerreur que vous avez obtenue.
Anthon

Réponses:

30

Origine de l'erreur

Le PK dans l'erreur représente Phil Katz, l'inventeur du format PKZIP original. L' ziputilitaire n'a pas suivi les capacités des pkziplogiciels commerciaux dérivés, en particulier le stockage de certificats que les banques aiment inclure dans leurs fichiers ZIP.

Wikipedia donne un aperçu du développement du format. Mais les ziputilitaires Unix n'implémentent pas les modifications après l'année 2002.

Vous devrez peut-être acheter la version commerciale PKWARE pour Linux pour décompresser cela.

La page de manuel de zipa ce qui suit à dire pour elle-même et 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.

Solution

Bien zipqu'il ne puisse pas faire le travail, il existe d'autres outils qui le peuvent. Vous mentionnez l'utilitaire 7zip et la version Linux / Unix en ligne de commande de 7-Zip qui, entre autres, peuvent lire et écrire au ZIPformat. Il affirme que si 7-Zip ne peut pas lire un fichier zip, que dans 99% des cas, le fichier est cassé . Les utilitaires 7-Zip devraient pouvoir lire votre fichier, soit il est cassé, soit le vôtre est dans le 1% (pour lequel je n'ai trouvé aucun détail supplémentaire).

7-zip sous Linux est disponible en différents exécutables avec un support de format différent. La plus basique ( 7zr), ne prend pas en charge ZIP, vous devez utiliser au moins 7zaou la version complète 7z:

7za x filename.zip

Différents packages de versions Linux 7za/ 7zdans des packages avec des noms différents.

L'installation la plus simple (comme souvent) sur Solus:

sudo eopkg install p7zip

Sur la version Linux dérivée de Debian, le paquet p7zipinstalle uniquement la base 7zqui ne prend pas en charge ZIP. Cette séparation a causé des problèmes et l'installation p7zip-fullne fait pas ce qu'elle dit, parfois vous devez également installerp7zip-rar sur mon système Linux Mint que je devais faire:

sudo apt-get install p7zip-full p7zip-rar

Sur RedHat / CentOS, vous devez activer le référentiel EPEL . Par exemple, sur CentOS 7, je devais faire:

sudo yum install epel-release
sudo yum --enablerepo=epel install p7zip
Anthon
la source
Merci, Anthon, c'est très instructif. Savez-vous pourquoi l' ziputilitaire n'a pas suivi? Sur une note connexe, existe-t-il une méthode de transmission protégée par mot de passe que je pourrais dire à ma banque d'utiliser qui pourrait avoir une chance de travailler sur un système basé sur Linux sans utiliser de logiciel propriétaire?
Faheem Mitha
@FaheemMitha Je suppose que pkware voulait gagner plus d'argent et ne divulgue pas les détails des nouveaux formats ni ne publie le code en open source. Je ne pense pas que votre banque va changer juste pour vous, j'ai eu des problèmes pendant plusieurs années avec des fichiers PDF légèrement non conformes qui ne pouvaient pas être lus et j'ai fini par allumer ma machine virtuelle WinXP pour le faire.
Anthon
Je ne m'attends pas à ce que ma banque fasse quoi que ce soit juste pour moi. :-) Mais j'ai pensé que s'il y avait une autre méthode disponible, ils pourraient envisager de l'utiliser. Dans ce cas, ce fichier compressé ne m'a pas été envoyé via une méthode automatisée. Il m'a été envoyé par une personne à ma demande.
Faheem Mitha
Le format ZIP tel que spécifié dans le fichier "APPNOTES" est documenté ouvertement par PKWare. @Anthon
eckes
9

J'ai rencontré le même problème, sauf avec PK compat. v6.3. Résolu en extrayant l'archive avec la version POSIX 7-zip.

Package Arch Linux: p7zip .

mandarin
la source
1
Utiliser 7zip était la meilleure option pour moi. soit7z x archive.zip
Matt H
3

J'ai rencontré exactement le même code d'erreur ( need PK compat. v6.1) en essayant de décompresser un fichier zip avec la décompression MacOS par défaut.

J'ai essayé le p7zip et je suis allé un peu en profondeur avant de consulter l'App Store.

Dans l'App Store, j'ai trouvé une application de décompression gratuite appelée "Unarchiver" (le premier résultat de recherche à ce jour) et il a réussi à décompresser le fichier sans aucun problème.

Pour les utilisateurs de Mac, je suggère d'utiliser ce programme gratuit "Unarchiver".

Jonathan Steele
la source
Cela ne va pas aider l'OP, ici, qui utilise Debian ...
Jeff Schaller
1
@JeffSchaller L'OP a depuis longtemps évolué. :-) Et je suis d'accord avec une réponse Mac, même si elle ne répond pas directement à la question. Ce sera peut-être utile à quelqu'un.
Faheem Mitha
Je pense que ce serait plus susceptible d'être utile (et trouvé) sur une question Mac (Ask Different?)
Jeff Schaller
2
@JeffSchaller Eh bien, si quelqu'un google le message d'erreur, il est probable qu'il tombe sur cette question.
Faheem Mitha
Je suis d'accord, nous devons nous rappeler que SO est également utile pour des questions similaires à l'original, ce serait en fait pire s'il y avait une question comme celle-ci pour chaque OS différent ...
Francesco Marchetti-Stasi