Erro ao tentar descompactar o arquivo: “need PK compat. v6.1 (pode fazer v4.6) ”

16

Recebi um arquivo zip de um banco. Eu recebo o seguinte erro ao tentar descompactá-lo.

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

O comando file retorna

Zip archive data

para este arquivo.

Há um número razoável de encadeamentos contendo essa mensagem de erro, mas a única sugestão concreta é usar 7z x ou 7za x do pacote p7zip-full . Estes falham com o erro:

Unsupported Method

Sub items Errors: 1

Estou usando o Debian wheezy amd64. No entanto, não vejo atualizações significativas dos pacotes unzip ou 7za em testing / unstable.

Gostaria de receber sugestões de como descompactar esse arquivo e, em geral, o que significa a mensagem de erro PK compat. v6.1 (can do v4.6) ? Para um utilitário amplamente utilizado, zip não possui muita documentação disponível sobre ele. O README nas fontes Debian aponta para o link que lista um lançamento datado de 29 de abril de 2009 para o UnZip 6.0. / p>

Aqui está a saída da versão para o binário unzip no meu sistema.

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]

O dpkg reporta a versão do pacote como 6.0-8+deb7u2 .

A saída de 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%
    
por Faheem Mitha 07.02.2015 / 07:59

2 respostas

20

Origem do erro

O PK no erro significa Phil Katz, o inventor do formato PKZIP original. O utilitário zip não acompanhou os recursos do software comercial derivado pkzip , particularmente o armazenamento de certificados que os bancos gostam de incluir em seus arquivos ZIP.

A Wikipedia fornece uma visão geral do desenvolvimento do formato. Mas os utilitários zip do Unix não implementam as mudanças após o ano de 2002.

Você pode ter que comprar a versão comercial do PKWARE para o Linux para descompactar isso.

A página man de zip tem o seguinte para dizer por si e 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.

Solução

Embora zip não possa fazer o trabalho, existem outras ferramentas que podem. Você mencionou o utilitário 7zip e a versão de linha de comando do Linux / Unix do 7-Zip que, entre outros, pode ler e escrever ZIP formato. Ele alega que, se o 7-Zip não puder ler um arquivo zip, em 99% dos casos, o arquivo está quebrado . Os utilitários 7-Zip devem ser capazes de ler o seu arquivo, então ele está quebrado ou então o seu está no 1% (para o qual eu não encontrei mais detalhes).

O 7-zip no Linux vem em vários executáveis com diferentes formatos de suporte. O mais básico ( 7zr ), não suporta ZIP, você deve usar pelo menos 7za ou o total 7z :

7za x filename.zip

Diferente pacote de versão do Linux 7za / 7z em pacotes com nomes diferentes.

O mais fácil (como sempre) é instalar no Solus:

sudo eopkg install p7zip

Na versão Linux derivada do Debian, o pacote p7zip instala apenas a base 7z que não suporta ZIP. Esta divisão causou alguns problemas e instalar p7zip-full não faz o que diz, às vezes você também tem que instalar p7zip-rar No meu sistema Linux Mint eu precisava fazer:

sudo apt-get install p7zip-full p7zip-rar

No RedHat / CentOS você precisa ter o repositório EPEL ativado. Por exemplo, no CentOS 7 eu precisava fazer:

sudo yum install epel-release
sudo yum --enablerepo=epel install p7zip
    
por 07.02.2015 / 08:20
8

Eu corri para o mesmo problema, exceto com PK compat. v6.3 . Resolveu-o extraindo o arquivo com a versão POSIX de 7-zip.

Pacote Arch Linux: p7zip .

    
por 18.02.2016 / 20:30

Tags