miércoles, 25 de junio de 2008

Compilar unzip para almacenar archivos de 2GB

Al descomprimir un archivo zip en un linux me dio el error: "write error (disk full?). Continue? (y/n/^C)", el problema no era el espacio en disco sino un archivo de más de 2GB que contenía el comprimido.

Para solucionar el problema he tenido que recompilar el programa unzip de la siguiente forma:

  • Obtener el código fuente del unzip de los paquetes de fuentes de la distribución o desde http://www.info-zip.org/
  • Editar el archivo unix/Makefile
  • En la sección" # Linux on 386 platform, using the assembler replacement for crc32.c." cambiar la línea:
CF="-O3 -Wall -I. -DASM_CRC $(LOC)"\

por la línea:

CF="-O3 -Wall -I. -DASM_CRC -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(LOC)"\

  • Recompilar con el comando: make -f unix/Makefile linux
  • Reemplazar el archivo /usr/bin/unzip por el recién recompilado