[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-team] xfce -> généralités Linux





> D'autre part, dans le site que j'ai quand même pu atteindre, on parle
> souvent d' "archive".  Qu'est-ce qu'une archive ?
>
> A mon avis, voici ce que j'en ai compris :
> Une archive se retrouve aussi dans le monde dos ou Windows.
> Il s'agit d'un fichier qui est compressé (rendu plus petit pour occupé moins
> de place) et qui s'exécute.
> Lorsque tu le download il ne met pas trop de temps à se charger.
> sous dos on utilise des programmes comme ...pkzip, unzip, compress, ...,
> sous Windows le fameux WinzipExe, ...
> et sous Linux les utilitaires ne manquent pas.
> Sous Linux les archives se terminent par tar.gz.
> Il n'y a pas besoin de passer par un utilitaire. Il existe une commande qui
> te permet de  décompresser le tout et d'exécuter l'archive : tar

C'est exact, une archive sert a... archiver des fichiers. Initialement, elles
etaient utilisees pour faire un 'backup', une sauvegarde de ses donnees. En cas
d'incident malencontreux (crash disk, mauvaise manipulation, virus ou autres),
il suffisait de recuperer les documents et les programmes sauves dans les
archives, pour retrouver son PC comme s'il ne s'etait rien produit (a condition
bien sur, de faire cette sauvegarde regulierement).

Ces utilitaires ont 2 objectifs. Le premier est de regrouper un ensemble de
donnees en un seul fichier, pour former une archive. C'est ainsi que la commande
'tar' sous Unix (et donc par extension, sous Linux) servait a rassembler
plusieurs fichiers en un, afin de les stocker sur des bandes magnetiques.
Aujourd'hui les choses ont evolue, mais des entreprises utilisent encore de gros
ordinateurs appeles 'main frame', qui utilisent tjrs les bandes et la commande
'tar' doit donc toujours assurer sa fonction originale. Il se fait que
maintenant, il est possible d'obtenir le resultat de l'archive dans un fichier,
situe a l'endroit voulu sur son 'filesystem' plutot que de l'envoyer
obligatoirement sur une bande. Pour pouvoir identifier ces fichiers, on les
termine par '.tar'.

Le deuxieme objectif est la compression. En utilisant des techniques
particulieres, se basant sur la redondance des informations, il est possible de
conserver toutes l'info dans un espace reduit, malheureusement incomprehensible
directement par la machine (en cas de code machine) ou par l'etre humain (en cas
de fichier texte). C'est le role des utilitaires de compression/decompression,
qui permettent d'effectuer cette traduction, pour passer de l'etat normal a
l'etat compresse ou vice versa. Sous Linux, on trouve plusieurs utilitaires plus
ou moins performant: compress, gzip, bzip,...  Selon l'utilitaire, on terminera
le fichier par '.Z', '.gz' ou autre...
Un fichier produit par 'tar' et compresse par 'gzip', se terminera donc par
'.tar.gz', par exemple 'nomfichier.tar.gz'.

Sous dos, win9x et compagnie, c'est effectivement pkzip, pkarc, lha, rar,
compress, winzip, winrar, etc... La difference est que ceux-ci remplissent a la
fois la fct. de 'tar' et celle de 'gzip' par exemple. S'adressant directement au
monde PC, l'archive est rassemblee en un fichier portant une extension (les 3
caracteres apres le point dans un nom de fichier dos, par ex: 'fichier.ext')
indiquant le mode de compression utilise: zip -> pkzip, arc -> pkarc, lzh -> lha
(eh oui, il faut le savoir !)... Les versions winzip, winrar, etc... ne sont
rien d'autre que la version windoz de ces utilitaires dos, associes aux memes
extensions.

Je disais que les choses evoluaient... Eh ben, sous Linux, la commande 'tar'
inclut egalement une option (z) permettant de produire directement une archive
compressee.
Personnellement, je prefere encore effectuer les 2 etapes car je ne suis pas sur
que cette option soit supportee sur toutes les plate-forme Unix.
Ce qui donne, pour archiver le repertoire 'tostore' et son contenu dans le
fichier 'archive.tar'.

    tar cvf archive.tar ./tostore
    gzip archive.tar

Ce qui cree finalement l'archive 'archive.tar.gz'.

La decompression se fait dans l'ordre inverse:
    gunzip archive.tar.gz
    tar xvf archive.tar


ou plus rapidement dans l'univers Unix (incluant les Unix-like OS, comme Linux
par ex.):

    tar cvf - ./tostore | gzip > archive.tar.gz

Voir la manpage de 'tar'  (tres longue !) a l'option '-', qui demande de
produire le resultat sur l'output standard (cad l'ecran !). Heureusement le pipe
'|' redirige ce resultat vers gzip, qui le recupere et qui le sauve dans le
fichier voulu (grace au redirecteur '>').

    decompression: gunzip -c archive.tar.gz | tar xvf -


Sous Linux, on peut faire encore plus simple avec la fameuse option z

    tar cvzf archive.tar.gz ./tostore

    decompression: tar xvzf archive.tar.gz

Rem: parfois, on rencontrera 'archive.tgz', avec 'tgz' comme raccourci pour
'.tar.gz'


Finalement, ces archives sont utilisees abondamment pour transmettre les infos
d'une personne a l'autre, et sur Internet car la compression des donnees permet
d'economiser la bande passante (et donc de ne pas diminuer les performances du
reseau, et de  restreindre un tant soit peu la note de telephone :-)


Voila, c'etait un peu long, mais je pense que c'est complet et que c'est
interessant de savoir comment ca marche d'un OS a l'autre... Pour le reste, je
te laisse glaner les infos ou tu pourras les trouver :-)


> Compiler : voici ce que j'en ai compris pour l'instant :
> pour qu'un programme puisse tourner sous linux, il faut lui donner un
> certain nombre d'information, le préparer. On utilise la commande make qui
> permet de faire une partie de ce travail puis il te faut encore ranger les
> choses au bon endroit, ....

En fait, meme sous dos, les programmes doivent etre compiles...
Tu ecris un programme dans un langage de programmation, par exemple en C (ou son
grand frere C++) qui est enormement utilise, bien que ce ne soit pas le seul.
L'interet est de pouvoir donner au programmeur un outil pour creer ses
programmes. Schematiquement, il decrira en utilisant ce langage les actions
qu'il souhaite que l'ordinateur realise, en utilisant des commandes bien
definies.

Par ex, en C:

printf("Hello");

affichera 'Hello' a l'ecran.

Cependant, l'ordinateur ne connait que des 0 et des 1, et donne a disposition de
l'utilisateur qu'un jeu de commande (appelees instructions) parfaitement defini.
Ce jeu est le meme pour tous les PC, mais est different sur un Mac, ou une autre
machine. Quand tu compiles un programme, tu traduis les commandes comme 'printf'
en termes d'instrcutions machine (representees par un nombre, donc
representables par des 0 et des 1). Tu le realises grace a un utilitaire appele
compilateur. Le compilateur utilisera les instructions propre a la machine pour
laquelle il a ete concu. Ainsi, un programme C (utilisant des fonctions de base,
car c'est un peu plus complique que cela) pourra tourner aussi bien sur un Mac
que sur un PC.

Quand tu recois un fichier pour dos/windoz, il est deja compile (fichiers .com,
.exe, .dll, .bin, etc...) mais il ne tournera que sur un PC.
Sous Linux, il te suffit d'avoir le kernel (noyau, cad le coeur du systeme
Linux, ce qui est vraiment proche de la machine) pour la machine que tu veux
(PC, Mac, ...) ensuite, vu que toutes les applications sont disponibles sous
forme de code source (habituellement un programme en C), "tu n'as qu'a"  les
compiler et elles tourneront aussi bien sur ton PC que sur ton Mac, genial, non
?

La seule chose dont tu dois t'assurer, c'est que les librairies necessaires a
ton application (un ensemble de commandes mises a dispositions par le kernel)
soient installees. Le compilateur s'arrange ensuite pour que ton application
puisse avoir access a ces commandes proposees par les librairies. En fait, ce
sont elles qui permettent d'assurer la compatibilite des applications Linux,
quelque soit la machine utilisee.

La commande 'make' utilise un fichier d'information appele 'makefile', a partir
duquel elle compile tous les fichiers necessaires, place les donnees relatives a
ton application aux endroits adhoc,... Le seul hic, c'est que les differentes
distributions de Linux utilisent des repertoires differents, d'ou les peites
modif a faire a la main...

> Avec les "archives style Redhat, il te suffit de la placer dans ton
> répertoire racine (\) puis tu tape la commande rpm -i nomdupaquetage.rpm
> et le paquetage s'installe.
> Mais pour plus de détails va voir la man de rpm

En fait, si je ne me trompe pas les rpm sont des fichiers deja compiles sous un
systeme Redhat ou SusE. La commande rpm se charge donc simplement de faire le
lien avec les librairies de ton systeme, a configurer quelques parametres,...

Rem: le repertoire racine, sous Linux, c'est '/' et non '\', comme sous dos/win
:-p
Mais ce n'est pas grave, tu t'y feras tres vite...

> >Grand merci,
> De rien

 De rien non plus, j'espere que j'ai pu faire un bon debroussaillage, sans
rendre les choses plus confuses (et sans trop me tromper, aussi ;-).


Bye,

Christophe.



---------
This message was sent by Majordomo 1.94.3. Please repport problems to
manu@rtfm.be. If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.