Das Standard-Packprogramm unter Unix ist (noch) gzip[1].
gzip wird häufig zusammen mit tar verwendet. tar wurde ursprünglich für die Datensicherung auf Band entwickelt. Wenn im Privatbereich heutzutage auch meist andere Medien zur Datensicherung verwendet werden, wird tar auch hier immer noch zur Erstellung von Archiven verwendet. So können zum Beispiel alle Dateien eines Verzeichnisses in einer Datei zusammengefasst werden und diese Datei lässt sich dann mittels gzip komprimieren.
Das ist der Grund, warum freie Software oft als mit gzip gepacktes tar-Archiv vertrieben wird. Ein solches Archiv erkennen Sie an der Endung .tar.gz (oder auch .tgz).
Eine Möglichkeit ein solches Archiv zu entpacken ist die Verwendung von gzip und im Anschluss daran die Verwendung von tar. Die GNU-Version von tar (gtar) ermöglicht jedoch die automatische Verwendung von gzip und somit das Entpacken in einem Arbeitsgang. Sie werden somit das Benutzen von gzip kaum erkennen. Außerdem brauchen Sie für das entpackte Archiv keinen Speicherplatz freizuhalten.
tar wird folgendermaßen aufgerufen:
tar <Datei Verzichnis> <.tar.gz Datei> [Dateien] |
Die <Dateien>-Option ist nicht zwingend. Wenn sie weggelassen wird, wird das ganze Archive verarbeitet. Dieses Argument wird zum Entpacken von .tar.gz-Archiven nicht gebraucht.
Ein Beispiel:
$ tar xvfz guile-1.3.tar.gz -rw-r--r-- 442/1002 10555 1998-10-20 07:31 guile-1.3/Makefile.in -rw-rw-rw- 442/1002 6668 1998-10-20 06:59 guile-1.3/README -rw-rw-rw- 442/1002 2283 1998-02-01 22:05 guile-1.3/AUTHORS -rw-rw-rw- 442/1002 17989 1997-05-27 00:36 guile-1.3/COPYING -rw-rw-rw- 442/1002 28545 1998-10-20 07:05 guile-1.3/ChangeLog -rw-rw-rw- 442/1002 9364 1997-10-25 08:34 guile-1.3/INSTALL -rw-rw-rw- 442/1002 1223 1998-10-20 06:34 guile-1.3/Makefile.am -rw-rw-rw- 442/1002 98432 1998-10-20 07:30 guile-1.3/NEWS -rw-rw-rw- 442/1002 1388 1998-10-20 06:19 guile-1.3/THANKS -rw-rw-rw- 442/1002 1151 1998-08-16 21:45 guile-1.3/TODO ... |
Es folgen Erklärungen zu einigen Optionen von tar:
v: macht tar ,,gesprächiger``, das heißt es gibt die Namen aller Dateien im Archiv wieder. Ohne diese Option verläuft die Bearbeitung ohne Ausgabe.
f: ist hier zwingend. Ohne diese Option versucht tar auf ein Bandgerät (/dev/rmt0) und nicht auf eine Archivdatei zuzugreifen.
z: erlaubt die Verarbeitung eines mit gzip gepackten Archivs (Dateiendung .gz). Ohne diese Option zeigt tar bei gzip-Archiven eine Fehlermeldung an. Bei nicht komprimierten Archiven darf diese Option logischerweise nicht verwendet werden.
tar erlaubt verschiedene Archiv-Operationen (auspacken, hinzufügen, erstellen, lesen...). Eine Option definiert die gewünschte Aktion:
x: extrahiert Dateien aus einem Archiv.
t: listet den Inhalt eines Archivs auf.
c: erstellt ein Archiv. Gleichnamige Archive werden ersetzt. Damit können Sie beispielsweise Ihre persönlichen Dateien sichern.
r: fügt Dateien einem bereits bestehenden Archiv zu. Komprimierte Archive müssen zunächst mit gzip entpackt werden.
Ein recht neues Kompressionsformat namens bzip2 ersetzt langsam gzip. Es erstellt besser komprimierte Archive als gzip, ist aber noch nicht Standard. Trotzdem findet man seit kurzem mehr und mehr Dateien mit der Endung .tar.bz2.
bzip2 wird wie gzip durch das tar Kommando verwendet. Sie müssen lediglich die Option z durch die Option y ersetzen. Ein Beispiel:
$ tar xyvf foo.tar.bz2 |
Einige (ältere) Versionen benutzen stattdessen die Option I:
$ tar xvfI foo.tar.bz2 |
Eine weitere, plattformunabhängigere, aber längere Möglichkeit ist:
$ tar --use-compress-program=bzip2 -xvf foo.tar.bz2 |
bzip2 muss natürlich installiert sein und sich in einem Verzeichnis befinden, das in der Umgebungsvariable PATH vorkommt, damit tar es verwenden kann.
Nun da Sie gelernt haben, wie man ein solches Archiv entpackt, schreiten wir zur Tat. Einiges was Sie nun tun, erfordert Rechte, die ein ,,normaler`` Benutzer nicht hat. Daher müssen Sie nun auf das privilegierte Benutzerkennzeichen (root) wechseln (Wie das geht wurde in Grundlegende Unix Konzepte erklärt).
Kopieren Sie das Archiv nach /usr/local/src und wechseln Sie in dieses Verzeichnis. Hier können Sie die Quellarchive speichern. Natürlich können Sie Archive auch auf einem externen Datenträger speichern oder nach dem Entpacken löschen. Bei letzterem sollten Sie aber sicherstellen, das Sie über eine Quelle verfügen, von der Sie das Archiv jederzeit wieder beziehen können.
Für gewöhnlich entpackt sich ein tar-Archiv in ein neues Verzeichnis (mit der Option t können Sie das ja vorher überprüfen). Wechseln Sie in dieses neue Verzeichnis, es heißt für gewöhnlich so ähnlich wie das Archiv.
Unix-Systeme (zu denen GNU/Linux gehört) sind abgesicherte Systeme. Das heißt, dass ein normaler Benutzer nicht Aktionen durchführen darf, die das System oder die Dateien anderer Benutzer in Gefahr bringen könnten (z.B. die Festplatte formatieren, fremde Dateien ändern oder löschen usw.). In der Praxis sichert dies das System auch gegen Viren.
Andererseits darf root alles, sogar ein schädliches Programm laufen lassen. Die Erhältlichkeit des Quellcodes stellt aber schon eine gute Sicherheit gegen Viren dar[2].
Eine Idee wäre mittels des Kommandos adduser ein spezielles Benutzerkonto für diese Aufgaben einzurichten (beispielsweise admin). Dieser Benutzer braucht Schreibrechte für die folgenden Verzeichnisse: /usr/local/src, /usr/local/bin, /usr/local/lib sowie für Handbuchauszüge /usr/local/man und deren Unterverzeichnisse. Entweder sollten dem Benutzer diese Verzeichnisse gehören oder er sollte einer Gruppe angehören, die die Schreibrechte besitzt.
Haben Sie diese Vorbereitungen getroffen, können Sie den Anweisungen im Absatz Der einfachste Weg folgen.
[1] | Es wird langsam durch ein neueres Programm, bzip2, ersetzt. bzip2 braucht zum Ein- und Auspacken zwar mehr Ressourcen, liefert bei Textdateien aber bessere Ergebnisse. Siehe Abschnitt 13.2.3 für mehr Details. |
[2] | Ein Sprichwort aus der BSD-Welt besagt: Never trust a software you don't have the sources for! (,,Traue keiner Software, deren Quellen Du nicht hast!``) |