Articles

Umgang mit RAR- und 7-Zip-Archiven unter Linux

Die Dateikompressionsformate RAR und 7-Zip haben ihren Ursprung unter Windows, daher ist die Unterstützung für sie unter Linux nicht so selbstverständlich wie für alte Unix-Überbleibsel wie Gzip und TAR. Aber mit der richtigen Software können Sie diese komprimierten Dateien ohne große Probleme handhaben.

Zunächst ein wenig Hintergrund. RAR – kurz für Roshal Archive – ist ein proprietäres Dateikompressionsformat, das von Eugene Roshal entwickelt wurde. Roshal vertreibt ein kommerzielles Dienstprogramm für Windows namens WinRAR, bietet aber auch kostenlose reine Komprimierungsprogramme für eine Reihe von Betriebssystemen an.

7-Zip ist eine Windows-Anwendung, die darauf ausgelegt ist, möglichst viele Komprimierungsformate zu verarbeiten. Sein natives Format ist 7z, das einen modernen Ableger des LZ77-Kompressionsalgorithmus verwendet. Die 7-Zip-Windows-Anwendung und ein 7z-Software-Entwicklungskit sind unter der LGPL verfügbar.

Beide Formate geben vor, bessere Kompressionsraten für gängige Datentypen zu erreichen als ältere Algorithmen. Außerdem unterstützen sie die Aufteilung großer Archive in mehrere kleine Volumes, um die Mobilität und Fehlerbehebung zu erleichtern. Die Kombination dieser beiden Eigenschaften hat sie zu einer beliebten Wahl für die Online-Distribution von extrem großen Dateien wie ISO-Images gemacht.

7z und Linux

Die 7-Zip-App ist quelloffen, bleibt aber nur für Windows. Für Linux-Benutzer verlinkt das Projekt auf ein Kommandozeilen-Client-Paket namens p7zip, das zwei ausführbare Dateien bereitstellt, 7z und 7za. Die beiden haben die gleiche Syntax und die gleichen Optionen und unterscheiden sich nur dadurch, dass 7za eine eigenständige Anwendung ist, die nur für die Verwendung mit 7z und den wesentlichen Unix-Formaten (tar, gzip, bzip2 usw.) kompiliert wurde, während 7z eine Plugin-Architektur verwendet, die es ihm ermöglicht, viele zusätzliche Kompressionsformate zu unterstützen.

Die grundlegende Syntax ist 7z function options filename.7z. Um ein Archiv zu dekomprimieren, verwenden Sie 7z x myfile.7z. Sie können Dateien aus einem Archiv mit 7z e myotherfile.7z extrahieren, aber wenn Sie die Funktion e verwenden, werden alle Dateien in das aktuelle Arbeitsverzeichnis extrahiert, während x die Pfade beibehält.

RAR und Linux

Die Situation bei RAR ist etwas komplizierter, da das Dateiformat ein eigenes Kompressionsschema hat. Die RARLAB-Website bietet einen kostenlosen, proprietären Unrar-Client für Linux an, der für 32-Bit-Intel-Distributionen in RPM- und Slackware-Paketen und als eigenständige Binärdateien für PowerPC-, 64-Bit-Intel- und ARM-Linux-Systeme entwickelt wurde. Da das unrar-Programm von RARLAB weder freie Software noch Open Source ist, werden Sie es wahrscheinlich nicht mit vielen Linux-Distributionen finden. Sie können einen Quellcode-Tarball von RARLAB herunterladen, aber die beigefügte Lizenz verbietet es Ihnen ausdrücklich, den Quellcode zu verwenden, um irgendeine Form von RAR-Encoder zu entwickeln.

Eine weitere Option ist ein GPLv2-lizenziertes Kommandozeilen-Tool, das vom Gna! Projekt entwickelt wurde. Verwirrenderweise heißt der Open-Source-RAR-Decoder auch unrar. Gna! unrar ist als Wrapper um unrarlib konzipiert, eine Open-Source-RAR-Dekodierungsbibliothek, die von Christian Scheurer und Johannes Winkelmann entwickelt wurde – die nicht Teil von Gna! sind.

Scheurer und Winkelmann entwickelten unrarlib aus dem ursprünglichen RARLAB-Quellcode, baten aber Eugene Roshal um die Erlaubnis, ihre Arbeit als freie Software zu veröffentlichen, und erhielten diese. Somit ist unrarlib unter der GPLv2 und unter der originalen proprietären Lizenz von RARLAB verfügbar.

Diese Lizenzvereinbarung scheint interessierten Parteien den Weg freizumachen, um RARLAB zu umgehen und einen konkurrierenden RAR-Encoder aus dem originalen Quellcode zu erstellen, aber das ist bisher nicht passiert. Scheurer selbst ist nicht daran interessiert, es zu verfolgen, da er es vorzieht, Open-Source-Formate für die Erstellung von Archiven zu verwenden. „Man kann sich nicht immer aussuchen, in welchem Format man die Daten bekommt, also ist es gut, einen offenen Weg zu haben, um darauf zuzugreifen. Aber Sie können die Art und Weise wählen, wie Sie ein Archiv erstellen. Wenn Sie keine Closed-Source-Kompressionswerkzeuge wollen, gibt es gute Alternativen.“

Das proprietäre unrar verwendet die gleiche grundlegende Syntax wie 7z und 7za. Um ein Archiv zu dekomprimieren und die Dateipfade zu erhalten, geben Sie unrar x myarchive.rar ein. Beim GPL-unrar fügen Sie einfach einen Bindestrich vor dem x ein: unrar -x myotherarchive.rar.

Heute unterstützt unrarlib nur bis zur Version 2 des RAR-Dateiformats. Scheurer sagt, dass er daran arbeitet, unrarlib Unterstützung für das neuere RAR3-Format hinzuzufügen, sagt aber, dass er nicht sicher ist, welche Reaktion von RARLAB zu erwarten ist.

GUI-Unterstützung

Wenn Sie die meiste Arbeit von einem Linux-Fenstermanager aus erledigen, haben Sie Glück. Sowohl GNOME als auch KDE haben grafische Archiv-Manager – File Roller für GNOME und Ark für KDE. Neuere Versionen von beiden verwenden Plugins, um eine Vielzahl von Archivformaten zu unterstützen, und verlassen sich auf p7zip für 7z-Unterstützung und Gna! unrar für RAR-Unterstützung. Aufgrund der Inkompatibilität neuerer RAR3-Dateien müssen Sie allerdings möglicherweise auch noch das proprietäre unrar auf Ihrem System installieren.

Wie eingangs erwähnt, unterstützen sowohl 7z als auch RAR das Aufteilen großer Dateien in kleinere Stücke. In meinen Tests erkannten jedoch weder File Roller noch Ark, dass ein Verzeichnis voller fortlaufend nummerierter Dateien myfile.7z.001, myfile.7z.002, myfile.7z.003 usw. eine in mundgerechte Stücke aufgeteilte 7z-Datei darstellt.

Um an die darin enthaltenen Daten zu gelangen, musste ich also die aufgeteilten Dateien auf der Kommandozeile mit dem Befehl cat wieder zu einer einzigen zusammenfügen. cat myfile.7z.001 myfile.7z.002 myfile.7z.003 > myfile.7z fügt die Teildateien wieder der Reihe nach zusammen und nennt das Ergebnis myfile.7z. An diesem Punkt könnten Sie das 7z-Archiv in File Roller oder Ark öffnen, aber solange Sie sich bereits in der Kommandozeile befinden, ist es viel schneller, einfach 7z x myfile.7z einzugeben, und voilà – Daten, schöne Daten, direkt an Ihren Fingerspitzen.

Eine Antwort schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.