La norme [36] 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 alors que les informaticiens stockaient leurs informations sur des bandes magnétiques. Aujourd'hui, les disquettes, les CD-ROM et les DVD 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 de la décompression 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 déjà 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 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
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écompresser
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é[37].
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. C'est aussi une bonne idée de sauvegarder
la ligne de commande utilisée pour configurer le logiciel,
voire toute la séquence de commandes nécessaires à la
génération de la copie de travail : vous devrez
peut-être choisir les mêmes options lorsque vous voudrez
actualiser l'application.
Normalement, la décompression d'une archive
tar devrait créer un nouveau répertoire (détail dont
vous pouvez vous assurer grâce à l'option
t
). Rendez-vous maintenant dans ce
répertoire, vous êtes prêt à 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[38].
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, nous vous
recommandons 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 Section 2.4.1, « Le plus simple », en remplaçant l'utilisateur
root
par celui nouvellement créé.
[36] 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 Section 2.3, « Bzip2 » à ce sujet.
[37] Vous aurez
seulement besoin d'être root
pour installer les
fichiers générés. Avec une application se comportant
adéquatement, il devrait être possible de réaliser toutes
les autres étapes en tant que simple
utilisateur.
[38] 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.)