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

24

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 filecomando retorna

Zip archive data

para este arquivo.

Há um número razoável de threads contendo essa mensagem de erro, mas as únicas sugestões concretas que eles têm é usar 7z xou 7za xdo p7zip-fullpacote. Estes falham com o erro:

Unsupported Method

Sub items Errors: 1

Estou usando o Debian wheezy amd64. Não vejo atualizações significativas dos pacotes unzipou 7zano testing / unstable.

Gostaria de receber sugestões de como descompactar este arquivo e, de maneira mais geral, o que significa a mensagem de erro PK compat. v6.1 (can do v4.6)? Para um utilitário amplamente usado, zipnão há muita documentação disponível sobre ele. O README nas fontes Debian aponta para http://www.info-zip.org/pub/infozip/, que lista um lançamento datado de 29 de abril de 2009 para o UnZip 6.0.

Aqui está a saída da versão para o unzipbinário 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%
Faheem Mitha
fonte
Me deparei com este relatório de bug que sugere a instalação p7zip-rarno Debian, caso você receba o 7zerro que recebeu.
Anthon

Respostas:

30

Origem do erro

O PK no erro significa Phil Katz, o inventor do formato PKZIP original. O ziputilitário não acompanhou os recursos do pkzipsoftware comercial derivado, principalmente 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 ziputilitários Unix não implementam as alterações após o ano de 2002.

Pode ser necessário comprar a versão comercial do PKWARE para Linux para descompactar isso.

A página de manual para ziptem o seguinte a dizer por si mesma 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 zipnã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 no ZIPformato. Alega que, se o 7-Zip não pode ler um arquivo zip, em 99% dos casos o arquivo está quebrado . Os utilitários do 7-Zip devem poder ler seu arquivo, para que ele esteja quebrado ou o seu esteja em 1% (sobre o qual não encontrei mais detalhes).

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

7za x filename.zip

Pacote de versão diferente do Linux 7za/ 7zem 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 p7zipinstala apenas a base 7zque não suporta ZIP. Essa divisão causou alguns problemas e a instalação p7zip-fullnão faz o que diz: às vezes você também precisa instalarp7zip-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
Anthon
fonte
Obrigado, Anthon, isso é muito informativo. Você sabe por que o ziputilitário não acompanhou? Em uma nota relacionada, existe algum método de transmissão protegido por senha que eu poderia pedir ao meu banco para usar e que poderia funcionar em um sistema baseado em Linux sem usar software proprietário?
Faheem Mitha
@FaheemMitha Meu palpite é que o pkware queria ganhar mais dinheiro e não está divulgando os detalhes dos formatos mais recentes nem publicando o código como código aberto. Não acho que o seu banco vá mudar apenas para você, tive problemas por vários anos com arquivos PDF ligeiramente não conformes que não conseguiam ler e acabei acionando minha VM WinXP para fazer isso.
Anthon
Não espero que meu banco faça nada apenas por mim. :-) Mas eu pensei que, se houvesse algum método alternativo disponível, eles poderiam considerar usá-lo. Nesse caso, esse arquivo compactado não foi enviado a mim por algum método automatizado. Foi-me enviado por uma pessoa a meu pedido.
Faheem Mitha
O formato ZIP, conforme especificado no arquivo "APPNOTES", é documentado pelo PKWare abertamente. @Anthon
eckes
9

Corri para o mesmo problema, exceto com PK compat. v6.3. Resolvido, extraindo o arquivo morto com a versão 7-zip POSIX.

Pacote do Arch Linux: p7zip .

Mandarim
fonte
1
Usar o 7zip foi a melhor opção para mim. isto é,7z x archive.zip
Matt H
3

Encontrei exatamente o mesmo código de erro ( need PK compat. v6.1) ao tentar descompactar um arquivo zip com o descompactador padrão do MacOS.

Eu experimentei o p7zip e mergulhei fundo nele antes de verificar a App Store.

Na App Store, encontrei um aplicativo descompactador gratuito chamado "Desarquivador" (o primeiro resultado de pesquisa deste artigo) e descompactou com êxito o arquivo sem problemas.

Para usuários de Mac, sugiro usar o programa "Unarchiver" gratuito.

Jonathan Steele
fonte
Isso não vai ajudar o OP, aqui, que está usando o Debian ...
Jeff Schaller
1
@JeffSchaller O OP há muito tempo mudou. :-) E eu estou bem com uma resposta do Mac, mesmo que ela não responda diretamente à pergunta. Talvez seja útil para alguém.
Faheem Mitha 29/01
Eu acho que seria mais provável que fosse útil (e encontrado) em uma pergunta do Mac (pergunte a diferente?)
Jeff Schaller
2
@JeffSchaller Bem, se alguém pesquisar a mensagem de erro no Google, provavelmente tropeçará nessa questão.
Faheem Mitha 29/01
Concordo, devemos lembrar que o SO é útil também para perguntas semelhantes à original, seria realmente pior se houvesse uma pergunta como essa para cada sistema operacional diferente ...
Francesco Marchetti-Stasi