Criando um arquivo ZIP que extrai a plataforma cruzada

0

Eu preciso distribuir uma grande plataforma de arquivos (6 GB +). Por razões práticas, quero reduzir para 2 GB +. Eu usei originalmente o Mac OS 10.11 para criar o arquivo zip usando o Archive Utility. Ele extraiu bem no meu Linux, mas não iria extrair no Windows 10 (usando o utilitário do sistema). Ao compactar o arquivo original no Linux, posso extraí-lo no Windows 10, mas ele não é extraído no Mac OS X. Quando tento extraí-lo usando o programa de linha de comando unzip no Mac OS X, recebo o seguinte erro:

Archive:  UbuntuLTS.vdi.zip
warning [UbuntuLTS.vdi.zip]:  76 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [UbuntuLTS.vdi.zip]:  reported length of central directory is
  -76 bytes too long (Atari STZip zipfile?  J.H.Holm ZIPSPLIT 1.1
  zipfile?).  Compensating...
   skipping: UbuntuLTS.vdi           need PK compat. v4.5 (can do v2.1)

note:  didn't find end-of-central-dir signature at end of central dir.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

O Mac está executando zip 3.0 (5 de julho de 2008) e unzip 5.52 (28 de fevereiro de 2005). O Linux está executando zip 3.0 (5 de julho de 2008) e unzip 6.00 (20 de abril de 2009). Não faço ideia do que o Windows está usando. Eu preciso do zip para extrair corretamente no Mac OS X, Linux e Windows (7, 8, 8.1 e 10). Eu gostaria de evitar que as pessoas baixassem um programa de terceiros. Eu também gostaria de entender o que diabos está acontecendo. Eu nunca tive problemas com o formato zip sendo incompatível em diferentes plataformas.

Para qualquer solução que você proponha, o Windows Vista pós-venda é imprescindível, pois esse será o maior grupo-alvo. Estou ciente de que pedir que ele funcione no "Linux" é um pouco mal definido.

    
por Jonas 29.03.2016 / 11:42

1 resposta

1

unzip versão anterior à versão 6.0 não suporta a extração de arquivos zip com mais de 4 Gb como arquivos descompactados (ou 2 Gb, link ). Veja, por exemplo, link e link .

Infelizmente, a versão padrão de unzip fornecida pelo MacOS não é 6.0, mas 5.X. A versão 6.0 para MacOS pode ser obtida aqui: link . Este artigo descreve como instalar a versão 6: link

Além disso, unzip precisa ser compilado com as opções LARGE_FILE_SUPPORT e ZIP64_SUPPORT para poder processar arquivos acima de 2 Gb / 4 Gb. Normalmente, esse deve ser o caso. Para descobrir se unzip foi compilado de acordo, digite unzip -version . Deve haver algo assim na saída:

UnZip 6.00 of 20 April 2009 ...
...
UnZip special compilation options:
...
LARGE_FILE_SUPPORT (large files over 2 GiB supported)
ZIP64_SUPPORT (archives using Zip64 for large files supported)
....

Uma alternativa para unzip foi usar 7zip , que está disponível não oficialmente para sistemas operacionais não Windows - como o MacOS (denominado 7zX ).

    
por 29.03.2016 / 14:16