J'ai récemment essayer de décompresser un gros fichier .zip (>2GB). Et j'obtiens le message suivant:
(please check that you have transferred or created the zipfile in the appropriate BINARY mode and that you have compiled UnZip properly)
N'importe quoi ! Bon Google m'apprends rapidement que, souvent, par défaut sous linux, unzip n'est pas compilé avec le suport des "large files". En tout cas c'est le cas sur ma Debian Lenny. Je ne sais pas ce qu'il en ait pour les dernières versions d'Ubuntu et de Fedora. Mais c'est trop la honte, surtout qu'un ami m'a dit que ya pas de problème sous un certain windaube.
Je ne comprends pas pourquoi cette option n'est pas activée par défaut, alors que de nos jours, on trouve en magasin des disques de plusieurs To !
Bon ben c'est pas grave, on recompile le unzip, c'est ça la force du libre aussi:
1) Bon, il nous faut les sources fraîches de la dernière version de unzip. Mon primeur préféré c'est sourceforge:
2) Après, une fois dans l'archive, éditer le Makefile:
unix/Makefile
3) Trouver la ligne suivante:
linux_noasm: unix_make
$(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall"
Et modifier la comme suit:
linux_noasm: unix_make
$(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 "
4) Enfin on passe, le tout au four, en compilant avec un
make -f unix/Makefile linux_noasm
Bon, j'ai choisi de compilé linux_noasm sinon ya des problèmes sur les systèmes 64bits (sinon il y a du code assembleur 32 bits)
_______________________________________________