2. Décompactage

2.1. Archive tar.gz

Le standard de compression sous les systèmes UNIX est le format gzip, développé par GNU, et considéré comme un des meilleurs outils de compression généralistes.

gzip est souvent associé à un utilitaire nommé tar. tar est un rescapé des temps préhistoriques où les informaticiens stockaient leurs informations sur des bandes magnétiques. Aujourd'hui, les disquettes et les CD-ROM ont remplacé les bandes magnétiques, mais tar est toujours utilisé pour créer des archives. Il est par exemple possible de concaténer (mettre à la suite) tous les fichiers d'un répertoire dans un seul fichier tar. Ce fichier peut ensuite être facilement compressé à l'aide de gzip.

C'est pourquoi de nombreux logiciels libres sont disponibles sous la forme d'archives tar, compressées avec gzip. Leur extension est donc .tar.gz (ou encore, sous forme abrégée, .tgz).

2.2. Utilisation de GNU Tar

Pour décompresser cette archive, on peut utiliser gzip, puis tar ensuite. Mais la version GNU de tar (gtar) permet d'utiliser gzip à la volée, et ainsi de décompresser une archive de manière transparente.

L'utilisation de tar est incantatoire :

tar options fichier.tar.gz fichiers

L'option fichiers est falcutative. Dans le cas où elle est omise, le traitement s'effectuera sur toute l'archive. Si vous voulez extraire le contenu d'une archive .tar.gz, alors vous n'avez certainement pas besoin de spécifier cet argument.

Par exemple :

$ 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

Parmi les options à passer à tar :

2.3. bzip2

Un format de compression nommé bzip2 tend en ce moment à remplacer gzip. bzip2 produit des archives de taille plus petite que gzip, mais n'est pas encore un standard de fait. On trouve donc depuis peu des archives à l'extension .tar.bz2.

bzip s'utilise de la même manière que gzip par le biais de la commande tar. Il suffit de remplacer la lettre z par la lettre I. Par exemple sous GNU/Linux  :

$ tar xvfI pouet.tar.bz2

Sous BSD :

$ tar xvfy pouet.tar.bz2

Une autre possibilité (qui semble être plus portable, mais plus longue!) :

$ tar --use=bzip2 -xvf pouet.tar.bz2

Je précise qu'il est nécessaire que bzip2 soit installé et inclut dans la variable PATH avant d'exécuter tar !

2.4. Just do it !

2.4.1. Le plus simple

Maintenant que vous êtes prêt à décompacter l'archive, n'oubliez pas de le faire en tant qu'administrateur (root). En effet, vous allez avoir besoin de faire des manipulations qu'un simple utilisateur ne peut faire.

Commencez par vous rendre dans le répertoire /usr/local/src, et copiez l'archive dans ce répertoire. Cela vous permet de retrouver à tout moment l'archive si vous perdez le logiciel installé. Si vous n'avez pas beaucoup de place disque, alors sauvegardez l'archive sur disquette après avoir installé le logiciel, ou alors effacez-la, mais soyez sûr de pouvoir la retrouver sur le net à tout moment.

Normalement, le décompactage d'une archive tar devrait créer un nouveau répertoire. Rendez vous maintenant dans ce répertoire, vous êtes prêt à continuer.

2.4.2. Le plus sûr

Le système Unix (dont font partie GNU/Linux et FreeBSD) est un système sécurisé. Cela signifie que les utilisateurs normaux ne peuvent pas effectuer des opérations qui mettraient le système en danger (comme par exemple formater un disque), ni altérer les fichiers des autres utilisateurs. Dans la pratique, cela imunise aussi le système aux virus.

En revanche, l'utilisateur root à le droit de tout faire, y compris d'exécuter un programme malicieux (virus). La disposition du code source est une garantie de sécurité face aux virus, mais vous avez tout à fait le droit d'être paranoïaque[1].

L'idée consiste à créer un utilisateur dédié à l'administration (free ou admin par exemple) par le biais de la commande adduser. Ce compte devra avoir le droit d'écrire dans le répertoire /usr/local/src ainsi que dans les répertoires /usr/local/bin, /usr/local/lib et toute l'arborescence de /usr/man (il se peut qu'il nécessite aussi de copier des fichiers ailleurs). Pour cela, je vous recommande soit de rendre cet utilisateur propriétaire des répertoires nécessaires, soit de créer un groupe pour lui, et de rendre ces réertoires accessibles en écriture pour ce groupe.

Une fois que ces précautions sont prises, vous pouvez effectuer les manipulations décrites dans la section Le plus simple.

Notes

[1]

Un proverbe venant du monde BSD dit : never trust a software you don't have the sources (ne faites pas confiance en un programme dont vous n'avez pas les sources)