Vous êtes sur la page 1sur 40

Administration & Sécurité des Systèmes

d’Exploitation

Par : L’équipe
administration
système et sécurité

1
Administration & Sécurité des Systèmes
d’Exploitation
Chapitre 2

Installation et gestion des


paquetages

Par : L’équipe
administration système et
sécurité 2
Administration & Sécurité des Systèmes
d’Exploitation

Archivage et Compression

3
Compiler et installer des programmes
à partir des sources

Les archives:

On appelle archive un ensemble de fichiers qui ont une


relation et stockés dans un fichier unique (pour faciliter la
copie, par exemple).

La commande permettant de rassembler fichiers et


sous-répertoires dans une archive est tar.

C'est pourquoi il est courant de dire qu'un fichier tar est


une archive.
4
Compiler et installer des programmes
à partir des sources

La commande tar (=Type ARchive) est une ancienne


commande Unix qui permet d'archiver des fichiers

Utiliser pour faire des sauvegardes d'un ensemble


de fichiers en un seul fichier.

Par défaut la taille du fichier .tar créer, est identique


a la taille de l’ensemble des fichier source

5
Compiler et installer des programmes
à partir des sources

La commande d’archivage tar:

tar fonction options fichiers

Fonctions courantes:
-c: Crée une nouvelle archive.
-t: liste les fichiers rassemblés dans un fichier tar.
-x: Extrait le contenu d'un fichier tar.

Options courantes:
-f file: Spécifie le nom du fichier tar.

6
Compiler et installer des programmes
à partir des sources

tar -cvf monbackup.tar ~

tar -cvf usr.tar /usr

tar -tvf monbackup.tar

tar -xvf monbackup.tar

7
Compiler et installer des programmes
à partir des sources

Principe de compression:
L'idée de base est de supprimer les redondances.
Donc éliminé les informations inutiles.

Exemple Sur un fichier texte, la ligne :


" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX " (30 lettre X) occupe 30 Octets.

Si on remplace la ligne par " 30*X ", nous n'occupons


plus sur le disque que 4 Octets.

Les algorithmes de compression sont plus complexes


dans la réalité mais le principe est le même.
8
Compiler et installer des programmes
à partir des sources

Principe de compression:

Avantages
Contre
Inconvénients
??
9
Compiler et installer des programmes
à partir des sources

La compression des fichiers :


La compression permet d'économiser l'espace de
stockage et les besoins inhérents au transfert de
fichiers.

Il existe de nombreux utilitaires de compression de


fichiers:
compress, uncompress: Le plus ancien algorithme de compression
gzip, gunzip: Le plus utilisé.
bzip2, bunzip2: Le meilleur algorithme de compression.

Une fois qu'une archive a été créée, elle peut être


compressée.
10
Compiler et installer des programmes
à partir des sources

Exemple

$ gzip -v backup.tar
backup.tar: 53.8% -- replaced with backup.tar.gz

$ bzip2 -v backup.tar
backup.tar: 2.260:1, 3.540 bits/byte, 55.75% saved, 22773760 in, 10 077 846 out.

11
Compiler et installer des programmes
à partir des sources

La compression des fichiers :


$ ls -l backup.tar
-rw-r--r-- 1 rarrigon users 22 773 760 nov 10 11:07 backup.tar

$ gzip -v backup.tar
backup.tar: 53.8% -- replaced with backup.tar.gz

$ ls -l backup.tar.gz
-rw-r--r-- 1 rarrigon users 10 507 393 nov 10 11:07 backup.tar.gz

$ gunzip backup.tar.gz

$ bzip2 -v backup.tar
backup.tar: 2.260:1, 3.540 bits/byte, 55.75% saved, 22773760 in, 10 077 846 out.

12
Compiler et installer des programmes
à partir des sources

Archivage et compression des fichiers :


tar -cvzf backup.tgz ~
Backup du répertoire utilisateur avec gzip
tar -cvjf backup.tbz ~
Backup du répertoire utilisateur avec with bzip2
tar -xvzf backup.tgz
Décompression et extraction de backup.tgz avec gunzip
tar -xvjf backup.tbz
Décompression et extraction de backup.tbz avec bunzip2

13
Administration & Sécurité des Systèmes
d’Exploitation

Compiler et installer des


programmes à partir des sources

1- Les Bibliothèques

14
Compiler et installer des programmes
à partir des sources

Les bases de la compilation


Il existe des types de langage de programmation :

- Les « langages de script », permettent de lancer


directement des programmes écrits dans ces langages
de programmation.

- Les « langages compilés » comme le C ou le C++,


exigent au contraire que le programme écrit dans ce
langage soit converti, « compilé », en un fichier
binaire en langage machine, pour pouvoir être
exécuté.
15
Compiler et installer des programmes
à partir des sources

Les bases de la compilation


La compilation a lieu en principe une fois et ensuite,
c'est le fichier binaire qui sera exécuté, et non sa
«source» en C, ou C++.
La compilation traduit un texte lisible par l'homme, la
«source», en un fichier lisible par la machine, le fichier
«binaire».
La première chose dont on a besoin pour compiler est
un compilateur.
Sous Linux, le compilateur est gcc pour les
programmes écrits en C et g++ pour les programmes
écrits en C++. 16
Compiler et installer des programmes
à partir des sources

Les bases de la compilation


le programmeur n'écrit pas la totalité de ces
programmes.
Il utilise des bibliothèques qui lui fournissent un
ensemble de fonctions déjà disponibles
communément utilisées.
Le programmeur introduit seulement un lien dans le
fichier source, lien qui renvoie à une bibliothèque ou à
une fonction de cette bibliothèque.
Le binaire compilé aura besoin de cette bibliothèque
pour être exécuté. 17
Gérer les bibliothèques partagées
Les Liens:
Ce lien peut être statique ou dynamique.
Un lien statique signifie que l'exécutable final
contiendra les fonctions de la bibliothèque dans ses
propres fichiers.
Sous Linux, la bibliothèque prend alors l'extension .a
Inconvénient: Le programme final est très volumineux et il consomme beaucoup de ressource
mémoire lors de chargement.Si plusieurs programmes utilisent la même bibliothèque, donc sa
taille va etre multiplier plusieurs fois
Un lien dynamique signifie que la bibliothèque devra
être chargée en mémoire RAM quand le programme
aura besoin d'exécuter les fonctions qu'elle contient.
Sous Linux, la bibliothèque prend alors l'extension .so
18
Gérer les bibliothèques partagées
Les répertoires par défaut
des bibliothèques standards :
/lib: utilisé principalement par les programmes de /bin.

/usr/lib: utilisé principalement par les programmes de


/usr/bin.

Le fichier /etc/ld.so.conf est utilisé par le système pour


indiquer les éventuelles autres localisations des
bibliothèques.
19
Gérer les bibliothèques partagées
Les répertoires par défaut
des bibliothèques standards :

Le fichier /etc/ld.so.conf sert donc à configurer les


chemins de recherche des bibliothèques partagées.

Par défaut, le chargeur recherche les bibliothèques


partagées dans les répertoires /lib et /usr/lib.

Pour ajouter un chemin de recherche, on peut ajouter


une ligne dans le fichier ld.so.conf

20
Gérer les bibliothèques partagées
Les répertoires par défaut
des bibliothèques standards :
Le fichier ld.so.conf n'est pas utilisé directement par le
chargeur, à la place celui-ci utilise un cache binaire avec
les informations des bibliothèques.
Ce cache est stocké dans le fichier /etc/ld.so.cache.
Pour que les bibliothèques des chemins
de ld.so.conf soient intégrés au cache, il faut utiliser la
commande ldconfig.
Une erreur courante est de modifier ld.so.conf et
d'oublier de lancer ldconfig.
21
Gérer les bibliothèques partagées
Dépendance de bibliothèques :

Pour afficher la liste des dépendances d'un programme (ou d'une


bibliothèque) en termes de bibliothèques partagées, utilisez ldd.

22
Gérer les bibliothèques partagées
Chargeur de liens :

Le chargeur de liens ld.so cherche la bibliothèque dont


un programme a besoin et la charge en mémoire RAM.

L'ordre de recherche de ld.so est :

1- LD_LIBRARY_PATH
2- Le fichier cache /etc/ld.so.cache
3- Les répertoires par défaut /lib et /usr/lib

23
Gérer les bibliothèques partagées
LD_LIBRARY_PATH
Vous pouvez tester l'effet d'une nouvelle bibliothèque
avant de l'utiliser pour tous vos programmes.
Pour ce faire, vous pouvez installer les bibliothèques
partagées dans un dossier et puis définissez la variable
d'environnement LD_LIBRARY_PATH.
Cette variable d'environnement spécifie les répertoires
supplémentaires pour la recherche pour les
bibliothèques.
$ export LD_LIBRARY_PATH=/usr/local/testlib
24
Administration & Sécurité des Systèmes
d’Exploitation

Compiler et installer des


programmes à partir des sources

1- Compilation et installation

25
Compiler et installer des programmes
à partir des sources

Outils GNU:

L'installation d'un programme à partir des sources se


résume à la suite de commandes :

# ./configure
# make
# make install

La dernière commande demande généralement les droits


super-utilisateur (root) pour s'exécuter avec succès.

26
Compiler et installer des programmes
à partir des sources

Outils GNU:

Sous Linux, toutes les sources peuvent être compilées


avec la chaine d'outils standard de GNU.

• gcc est un compilateur C

• g++ est un compilateur C++

27
Compiler et installer des programmes
à partir des sources

./configure

C'est la première commande que vous devez taper.

En pratique elle va faire 2 choses :

-Tout d'abord vérifier que toutes les dépendances


sont présentes.

-Configurer et écrire un fichier Makefile qui


contiendra les ordres de compilation.

28
Compiler et installer des programmes
à partir des sources

./configure

Pour la partie configuration, il y a un certain nombre


de paramètres à passer à la commande.

Pour en avoir la liste :


$ ./configure --help

Le paramètre le plus utilisé est --prefix= qui spécifie le


répertoire dans lequel on veut installer le logiciel.
Par défaut c'est /usr/local, ce qui est très bien
lorsqu'on est dans une distribution standard.
29
Compiler et installer des programmes
à partir des sources

make

C'est la 2e commande.

Celle ci ne vous demandera rien, elle effectue juste la


compilation.

Elle sera plus ou moins longue selon la taille du projet.

Elle peut s'arrêter en cas de problème de compilation.

30
Compiler et installer des programmes
à partir des sources

Make install

Cette command est séparée de make, bien que les règles


font qu'en général make install effectue le make si besoin.

En effet, cette commande doit être tapée en tant que


root si des droits spéciaux sont requis pour
l'installation du logiciel.
c'est le cas si vous installez celui-ci ailleurs que dans votre
home.

31
Compiler et installer des programmes
à partir des sources

Outils GNU:

Beaucoup d'archives contiennent des fichiers


d'information (README, INSTALL) qui expliquent comment
le programme doit être compilé et installé.

Les fichiers Makefile.in et configure.in sont les fichiers


de base servant à produire le Makefile final.

Le fichier configure est généralement un script qui va


explorer le système et produire un Makefile final.

32
Compiler et installer des programmes
à partir des sources

Recap

33
Compiler et installer des programmes
à partir des sources
Exemple simple de make:

34
Compiler et installer des programmes
à partir des sources

Autre Exemple : Etape extraction

35
Compiler et installer des programmes
à partir des sources

Autre Exemple : Etape extraction


A titre d’exemple
Contenu de configure.in

36
Compiler et installer des programmes
à partir des sources

A titre d’exemple
Contenu de Makefile.in

37
Compiler et installer des programmes
à partir des sources
./configure

38
Compiler et installer des programmes
à partir des sources

make
Compiler et installer des programmes
à partir des sources

Lien intéressant :

http://raphaello.univ-fcomte.fr/Linux/11-InstallationApplications/InstallationApplications.htm

Vous aimerez peut-être aussi