¿Cómo puedo actualizar mi versión de `unzip` a la versión 6.00 o superior?

Es un problema común que, al descomprimir (léase: 'abrir con doble clic'), algunos archivos dan como resultado un archivo .zipde tamaño similar . .cpgzPero esperaba un archivo o una carpeta descomprimidos.

El programa de descompresión predeterminado en OS X es '/System/Library/CoreServices/Archive Utility.app'

Cuando intentas descomprimirlo en la Terminal ( /usr/bin/unzip) ves lo siguiente:

$ unzip SE.zip

Archive:  SE.zip
warning [SE.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).
error [SE.zip]:  missing 8256083459 bytes in zipfile
  (attempting to process anyway)
error [SE.zip]:  attempt to seek before beginning of zipfile
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

Tengo Mavericks 10.9.5 ejecutándose y unzip -vse entera de que estamos en la versión 5.52:

$ unzip -v
UnZip 5.52 of 28 February 2005, by Info-ZIP.  Maintained by C. Spieler. Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
...

Lo curioso es que el mismo archivo zip 'corrupto' se extrae bien en mi sistema CentOS. No hay ningún error y el archivo parece estar bien. Mi sistema CentOS ejecuta la versión de descompresión 6.00:

$ unzip -v
UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
...

Mi pregunta: ¿Cómo puedo actualizar mi versión de unzipa la versión 6.00 o superior?

Y pregunta afiliada: ¿mi nueva versión de descompresión de OS X también afectará la descompresión predeterminada 'Archive Utility.app'?

PD. Prefiero el uso de un administrador de paquetes como el brewanterior compilando desde la fuente. brew install unzipresultados en:Error: No available formula for unzip

Use macports, tiene la versión de descompresión 6.0 :)
ja, ja, cerveza contra macports... Ya tengo mi sistema marinado con cerveza. Pero tal vez pueda comprobar la fuente. ¡Gracias de cualquier manera!
¿Fue respondida su pregunta sobre "afiliados"? "¿Mi nueva versión de descompresión de OS X también afectará la descompresión predeterminada 'Archive Utility.app'?" Me preguntaba lo mismo.

Respuestas (2)

Usando Homebrew (según lo solicitado):

$ brew tap homebrew/dupes
$ brew install unzip

Esto instalará descomprimir en (considerando los valores predeterminados)/usr/local/Cellar/unzip/6.0/bin/unzip

Luego puede alias como unzip6en algún lugar de su camino.

Además, es posible que desee probar "The Unarchiver" de la tienda de aplicaciones. En mi opinión, mucho más útil que la Utilidad de archivo de Apple.

ACTUALIZAR

dupes ha quedado obsoleto en Homebrew, por lo brew tap homebrew/dupesque ya no es necesario. Todo lo que necesita ahora (suponiendo que Homebrew esté instalado) es:

brew install unzip

Luego puede agregar un enlace /usr/local/bincon:

ln -s /usr/local/opt/unzip/bin/unzip /usr/local/bin/unzip6

Ahora el sistema unzipdebería funcionar con unzipy la versión 6 funcionará conunzip6

me faltaba el brew tap homebrew/dupes. No tengo idea de lo que hace, pero ahora puedo descomprimir la instalación de cerveza. gracias un montón.
Aunque ahora tengo un descomprimir 6.0.0 que funciona, tal como quería, ahora tengo un nuevo error. Podrías ayudarme con eso, pero está más allá de este tema. skipping: foobar need PK compat. v4.5 (can do v2.1)para cada archivo en el zip.
No se puede resolver el problema, aunque supongo que el archivo se comprimió con PKZip e hizo algo... único
Por cierto, el comando tap abre nuevas aplicaciones en brew que no están predeterminadas por varias razones (específicamente agrega nuevos repositorios git homebrew específicos). Esto incluye cosas como dupes, gamesy phpetc.
En caso de que alguien acceda a esta página porque recibe un error al descomprimir archivos zip grandes, vaya con The Unarchiver en el enlace. Trabajó para mi.
Este novato quiere saber: ¿Qué quiere decir cuando dice: "Entonces puede alias como descomprimir6 en algún lugar de su camino"? ¿Por qué alguien querría hacer eso? Si alguien lo hace, ¿cómo se usaría el alias en el futuro?
@EJMak Usar la aplicación The Unarchiver puede ser su mejor opción. Dicho esto... Cuando Homebrew instala algo que ya forma parte de MacOS (es decir unzip), no lo vinculará , por lo que es fácil de usar. En el caso de unzipHomebrew lo instalaremos en /usr/local/opt/unzip/bin/unzip. Para crear un alias o un enlace utiliza el siguiente comando (desde la línea de comando (terminal.app)) ln -s /usr/local/opt/unzip/bin/unzip /usr/local/bin/unzip6. Suponiendo que /usr/local/bin esté en su camino, puede usar unzip6desde la línea de comando para usar esto, o unzipusar el valor predeterminado de Mac.

Puede encontrar que p7zip hace lo que quiere. Use brew install p7zippara instalar, luego ejecute 7z -hpara obtener ayuda.

Estoy usando 7z tun archivo zip de 20GB mientras escribo esto, para probar su integridad. Tanto Unzip 5.52 como Unzip 6.0 se atragantaron.

¡Sí! Por ejemplo, p7zip funciona muy bien para descomprimir las imágenes de VM de IE de Microsoft, que tienen más de 5 GB.
Genial, pero no responde a la pregunta.