Articles

Gestire gli archivi RAR e 7-Zip in Linux

I formati di compressione dei file RAR e 7-Zip sono nati su Windows, quindi il loro supporto su Linux non è così automatico come per i vecchi residui di Unix come Gzip e TAR. Ma con il software giusto, è possibile gestire questi file compressi senza molti problemi.

Prima di tutto, un po’ di background. RAR – abbreviazione di Roshal Archive – è un formato di compressione file proprietario sviluppato da Eugene Roshal. Roshal vende un’utilità commerciale per Windows chiamata WinRAR, ma offre anche client di sola decompressione per un certo numero di sistemi operativi gratuitamente.

7-Zip è un’applicazione per Windows progettata per gestire quanti più formati di compressione possibile. Il suo formato nativo è 7z, che usa una moderna derivazione dell’algoritmo di compressione LZ77. L’applicazione 7-Zip per Windows e un kit di sviluppo software 7z sono disponibili sotto la LGPL.

Entrambi i formati pretendono di raggiungere migliori rapporti di compressione per tipi di dati comuni rispetto ai vecchi algoritmi. Supportano anche la suddivisione di grandi archivi in più piccoli volumi per una più facile mobilità e recupero degli errori. La combinazione di queste due caratteristiche li ha resi scelte popolari per la distribuzione online di file estremamente grandi come le immagini ISO.

7z e Linux

L’applicazione 7-Zip è open source, ma rimane solo per Windows. Per gli utenti Linux, il progetto si collega ad un pacchetto client a riga di comando chiamato p7zip che fornisce due eseguibili, 7z e 7za. I due hanno la stessa sintassi e le stesse opzioni, differendo solo per il fatto che 7za è un’applicazione autocontenuta compilata solo per l’uso con 7z e i formati Unix essenziali (tar, gzip, bzip2, ecc.), mentre 7z usa un’architettura a plugin che gli permette di supportare molti altri formati di compressione.

La sintassi base è 7z function options filename.7z. Per decomprimere un archivio, usa 7z x myfile.7z. È possibile estrarre i file da un archivio con 7z e myotherfile.7z, ma usando la funzione e si estraggono tutti i file nella directory di lavoro corrente, mentre x conserva i loro percorsi.

RAR e Linux

La situazione RAR è un po’ più complicata, a causa dello schema di compressione proprietario del formato. Il sito RARLAB fornisce un client proprietario gratuito di sola decompressione per Linux chiamato unrar, progettato per distro Intel a 32-bit in entrambi i pacchetti RPM e Slackware, e come binari indipendenti per sistemi PowerPC, Intel a 64-bit e ARM Linux. Poiché il programma unrar di RARLAB non è né software libero né open source, è improbabile che lo troviate in molte distribuzioni Linux. Puoi scaricare un tarball di codice sorgente da RARLAB, ma la licenza allegata ti proibisce esplicitamente di usare il codice sorgente per sviluppare qualsiasi forma di codificatore RAR.

Un’altra opzione è uno strumento a riga di comando con licenza GPLv2 sviluppato dal progetto Gna! Abbastanza confusamente, il decodificatore RAR open source si chiama anche unrar. Gna! unrar è progettato come un wrapper intorno a unrarlib, una libreria open source di decodifica RAR sviluppata da Christian Scheurer e Johannes Winkelmann – che non fanno parte di Gna!.

Scheurer e Winkelmann hanno sviluppato unrarlib dal codice sorgente originale di RARLAB, ma hanno chiesto e ottenuto il permesso da Eugene Roshal di rilasciare il loro lavoro come software libero. Così, unrarlib è disponibile sotto la GPLv2 e sotto la licenza proprietaria originale di RARLAB.

Questo accordo di licenza sembrerebbe liberare un percorso per le parti interessate a fare un giro intorno a RARLAB e creare un encoder RAR concorrente dal codice sorgente originale, ma questo non è ancora successo. Scheurer stesso non è interessato a perseguirlo, dicendo che preferisce usare formati open source per creare archivi. “Non si può sempre scegliere in quale formato si ottengono i dati, quindi va bene avere un modo aperto per accedervi. Ma si può scegliere il modo in cui si crea un archivio. Se non volete strumenti di compressione closed source, ci sono buone alternative.”

L’unrar proprietario usa la stessa sintassi di base di 7z e 7za. Per decomprimere e archiviare e preservare i percorsi dei file, digitate unrar x myarchive.rar. Nell’unrar GPL, è sufficiente aggiungere un trattino prima della x: unrar -x myotherarchive.rar.

Oggi, unrarlib supporta solo fino alla versione 2 del formato RAR. Scheurer dice che sta lavorando per aggiungere il supporto per il più recente formato RAR3 a unrarlib, ma dice che non è sicuro di quale reazione aspettarsi da RARLAB.

Supporto GUI

Se fate la maggior parte del vostro lavoro da un window manager Linux, siete fortunati. Sia GNOME che KDE hanno gestori di archivi grafici – File Roller per GNOME e Ark per KDE. Le versioni recenti di entrambi usano plugin per supportare un’ampia varietà di formati di archivio, e si basano su p7zip per il supporto a 7z e Gna! unrar per il supporto a RAR. A causa dell’incompatibilità dei file RAR3 più recenti, però, potresti aver bisogno di installare anche l’unrar proprietario sul tuo sistema.

Come ho detto all’inizio, sia 7z che RAR supportano la suddivisione di file di grandi dimensioni in pezzi più piccoli. Tuttavia, nei miei test, né File Roller né Ark hanno riconosciuto che una directory piena di file numerati in sequenza myfile.7z.001, myfile.7z.002, myfile.7z.003, e così via costituivano un file 7z diviso in pezzi di dimensioni ridotte.

Quindi, per arrivare ai dati al suo interno, ho dovuto riunire i file divisi in uno solo sulla linea di comando usando il comando cat. cat myfile.7z.001 myfile.7z.002 myfile.7z.003 > myfile.7z incollerà i file parziali di nuovo insieme in ordine, nominando il risultato myfile.7z. A quel punto, potreste aprire l’archivio 7z in File Roller o Ark, ma se siete già alla linea di comando, è molto più veloce digitare 7z x myfile.7z, e voilà – dati, bei dati, a portata di mano.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *