La norme [34] pour la compression sous UNIX est le format gzip, développé par le projet GNU, et considéré comme un des meilleurs outils de compression généralistes.
gzip est souvent associé à un utilitaire nommé tar. Celui-ci 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 les uns des autres) tous les fichiers d'un répertoire dans un seul fichier grâce à 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).
Pour décompresser cette archive, on peut utiliser gzip, puis tar ensuite. Mais la version GNU de tar (tar) permet d'utiliser gzip «à la volée» , et ainsi de décompresser une archive de manière transparente, sans nécessiter d'espace disque supplémentaire.
L'utilisation de tar est d'une grande simplicité :
tar <options de fichier> <fichier en .tar.gz> [fichiers] |
L'option <fichiers> est facultative. 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.
$ 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 :
v permet de rendre tar «verbeux» : c'est-à-dire qu'il affichera à l'écran tous les fichiers qu'il trouve dans l'archive ; si cette option est omise, alors le traitement sera silencieux;
f est une option obligatoire. Sans elle, tar essaiera d'utiliser une bande magnétique à la place d'un fichier d'archive (c'est-à-dire le périphérique /dev/rmt0);
z permet de manipuler une archive compressée par gzip (avec suffixe de nom de fichier en .gz). Si vous oubliez cette option lors du décompactage d'une archive compressée, alors tar produira une erreur. Inversement, si vous êtes en face d'une archive non compressée, n'utilisez pas cette option.
tar permet d'effectuer plusieurs manipulations différentes sur une archive (extraction, lecture, création, ajout...). Une option permet de spécifier l'usage qui en est fait :
c : permet de créer une archive, ce qui implique de détruire son contenu actuel. Vous n'utiliserez probablement cette option que dans le cas de votre usage personnel (vos sauvegardes, par exemple);
r : permet d'ajouter des fichiers à la fin de l'archive. Elle ne fonctionne pas dans le cas d'une archive compressée.
Un format de compression nommé bzip2 a déjà remplacé gzip pour l'utilisation générale, même si certains logiciels sont encore distribués au format gzip, principalement par compatibilité avec les anciens systèmes. La plupart des logiciels libres sont maintenant distribués dans des des archives à l'extension .tar.bz2.
bzip2 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 j. Par exemple :
$ tar xvjf toto.tar.bz2 |
A la place, certaines distributions utilisent (ou ont utilisé) l'option I :
$ tar xvfI toto.tar.bz2 |
Une autre possibilité (qui semble être plus portable, mais plus longue à taper !) :
$ tar --use-compress-program=bzip2 -xvf toto.tar.bz2 |
Précisons qu'il faut avoir installé bzip2 et l'avoir inclus dans la variable PATH avant d'exécuter tar.
Maintenant que vous êtes prêt(e) à 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, et même si ce n'est pas le cas de toutes ces manipulations, il est plus facile d'agir en tant que root pendant toute la durée de l'opération, même si ce n'est pas idéal du point de vue de la sécurité.
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 d'espace disque, sauvegardez l'archive sur disquette après avoir installé le logiciel, ou effacez-la, mais assurez-vous de pouvoir la retrouver sur le Web à tout moment.
Normalement, le décompactage d'une archive tar devrait créer un nouveau répertoire (détail dont vous pouvez vous être assuré(e) grâce à l'option t). Rendez-vous maintenant dans ce répertoire, vous êtes prêt(e) à continuer.
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 et en particulier, cela immunise aussi le système contre les virus.
En revanche, l'utilisateur root a le droit de tout faire, y compris d'exécuter un programme malveillant (tel virus). Disposer du code source est une garantie de sécurité face aux virus, mais vous avez tout à fait le droit d'être paranoïaque[35].
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 ait également besoin 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épertoires accessibles en écriture pour ce groupe.
Une fois que ces précautions sont prises, vous pouvez effectuer les manipulations décrites dans la section intitulée “Le plus simple”.
[34] Sous GNU/Linux, on utilise de plus en plus un nouveau programme, appelé bzip2, plus efficace sur les fichiers texte, mais plus gourmand en puissance de calcul. Voir plus loin, la section intitulée “Bzip2” à ce sujet.
[35] Un proverbe venant du monde BSD dit : «never trust a package you don't have the sources for» (ne faites jamais confiance en un paquetage dont vous n'avez pas les sources.)