Articles

Manejo de archivos RAR y 7-Zip en Linux

Los formatos de compresión de archivos RAR y 7-Zip se originaron en Windows, por lo que el soporte para ellos en Linux no es tan automático como lo es para los viejos remanentes de Unix como Gzip y TAR. Pero con el software adecuado, puede manejar estos archivos comprimidos sin mucho problema.

Primero, un poco de antecedentes. RAR – abreviatura de Roshal Archive – es un formato de compresión de archivos propietario desarrollado por Eugene Roshal. Roshal vende una utilidad comercial para Windows llamada WinRAR, pero también ofrece clientes que sólo descomprimen para una serie de sistemas operativos de forma gratuita.

7-Zip es una aplicación de Windows diseñada para manejar tantos formatos de compresión como sea posible. Su formato nativo es 7z, que utiliza una rama moderna del algoritmo de compresión LZ77. La aplicación 7-Zip para Windows y un kit de desarrollo de software 7z están disponibles bajo la licencia LGPL.

Ambos formatos pretenden lograr mejores ratios de compresión para los tipos de datos más comunes que los algoritmos más antiguos. También permiten dividir archivos grandes en varios volúmenes pequeños para facilitar la movilidad y la recuperación de errores. La combinación de estas dos características los ha convertido en opciones populares para la distribución en línea de archivos extremadamente grandes, como las imágenes ISO.

7z y Linux

La aplicación 7-Zip es de código abierto, pero sigue siendo exclusiva de Windows. Para los usuarios de Linux, el proyecto enlaza con un paquete cliente de línea de comandos llamado p7zip que proporciona dos ejecutables, 7z y 7za. Ambos tienen la misma sintaxis y opciones, y sólo se diferencian en que 7za es una aplicación autocontenida compilada sólo para su uso con 7z y los formatos esenciales de Unix (tar, gzip, bzip2, etc.), mientras que 7z utiliza una arquitectura de plugins que le permite soportar muchos formatos de compresión adicionales.

La sintaxis básica es 7z function options filename.7z. Para descomprimir un archivo, utilice 7z x myfile.7z. Se pueden extraer ficheros de un archivo con 7z e myotherfile.7z, pero el uso de la función e extrae todos los ficheros al directorio de trabajo actual, mientras que x conserva sus rutas.

RAR y Linux

La situación de RAR es un poco más complicada, debido al esquema de compresión propietario del formato de archivo. El sitio de RARLAB proporciona un cliente propietario de descompresión para Linux llamado unrar, diseñado para las distribuciones Intel de 32 bits en paquetes RPM y Slackware, y como binarios independientes para sistemas PowerPC, Intel de 64 bits y ARM Linux. Dado que el programa unrar de RARLAB no es software libre ni de código abierto, es poco probable que lo encuentres en muchas distribuciones de Linux. ¡Puede descargar un tarball con el código fuente de RARLAB, pero la licencia adjunta le prohíbe explícitamente utilizar el código fuente para desarrollar cualquier forma de codificador RAR.

Otra opción es una herramienta de línea de comandos con licencia GPLv2 desarrollada por el proyecto Gna! Aunque parezca confuso, el decodificador RAR de código abierto también se llama unrar. Gna! unrar está diseñado como una envoltura alrededor de unrarlib, una biblioteca de decodificación RAR de código abierto desarrollada por Christian Scheurer y Johannes Winkelmann – que no forman parte de Gna!.

Scheurer y Winkelmann desarrollaron unrarlib a partir del código fuente original de RARLAB, pero pidieron y obtuvieron el permiso de Eugene Roshal para publicar su trabajo como software libre. Por lo tanto, unrarlib está disponible bajo la GPLv2 y bajo la licencia propietaria original de RARLAB.

Este acuerdo de licencia parece despejar el camino para que las partes interesadas puedan hacer una carrera de fondo alrededor de RARLAB y crear un codificador RAR de la competencia a partir del código fuente original, pero eso no ha sucedido todavía. El propio Scheurer no está interesado en hacerlo, pues dice que prefiere utilizar formatos de código abierto para crear archivos. «No siempre puedes elegir en qué formato obtienes los datos, así que está bien tener una forma abierta de acceder a ellos. Pero sí se puede elegir la forma de crear un archivo. Si no quieres herramientas de compresión de código cerrado, hay buenas alternativas»

El unrar propietario utiliza la misma sintaxis básica que 7z y 7za. Para descomprimir y archivar y conservar las rutas de los archivos, escriba unrar x myarchive.rar. En el unrar GPL, basta con añadir un guión antes de la x: unrar -x myotherarchive.rar.

Actualmente, unrarlib sólo soporta hasta la versión 2 del formato de archivo RAR. Scheurer dice que está trabajando en la adición de soporte para el más reciente formato RAR3 a unrarlib, pero dice que no está seguro de qué reacción esperar de RARLAB.

Soporte de la interfaz de usuario

Si usted hace la mayor parte de su trabajo desde un gestor de ventanas de Linux, está de suerte. Tanto GNOME como KDE tienen gestores gráficos de archivos – File Roller para GNOME y Ark para KDE. Las versiones recientes de ambos utilizan plugins para soportar una amplia variedad de formatos de archivo, y se basan en p7zip para el soporte de 7z y Gna! unrar para el soporte de RAR. Sin embargo, debido a la incompatibilidad de los nuevos archivos RAR3, es posible que también tengas que instalar el unrar propietario en tu sistema.

Como he mencionado al principio, tanto 7z como RAR soportan la división de archivos grandes en trozos más pequeños. Sin embargo, en mis pruebas, ni File Roller ni Ark reconocieron que un directorio lleno de archivos numerados secuencialmente mifichero.7z.001, mifichero.7z.002, mifichero.7z.003, y así sucesivamente, constituía un archivo 7z dividido en trozos de tamaño reducido.

Así, para llegar a los datos que había en su interior, tuve que volver a unir los archivos divididos en uno solo en la línea de comandos utilizando el comando cat. cat myfile.7z.001 myfile.7z.002 myfile.7z.003 > myfile.7z pegará los archivos parciales en orden, nombrando el resultado miarchivo.7z. En este punto, puedes abrir el archivo 7z en File Roller o Ark, pero mientras estés en la línea de comandos, es mucho más rápido escribir 7z x myfile.7z, y voilà – datos, hermosos datos, al alcance de tu mano.

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *