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).
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 :
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 cette option, tar essaiera d'utiliser une bande magnétique à la place d'un fichier d'archive (c'est à dire le device /dev/rmt0).
z permet de manipuler une archive compressée par gzip (suffixe .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 :
x : cette option permet d'extraire des fichiers de l'archive,
t : cette option permet de tester l'intégrité de l'archive. utilisée en combinaison avec l'option v, elle permet de lister le contenu de l'archive,
c : cette option permet de créer une archive, ce qui implique détruire son contenu actuel. Cette option n'est intéressante pour vous que dans le cas de votre usage personnel (vos sauvegardes, par exemple),
r : cette option 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 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 !
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.
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.
[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) |