Certification Linux LPI/Administrateur système débutant/Examen 101/Installation de Linux et gestion des packages/Compiler et installer des programmes à partir des sources
Compiler et installer des programmes à partir des sources
[modifier | modifier le wikicode]Objectif
[modifier | modifier le wikicode]Description: Les Candidats seront capables de compiler et installer un programme exécutable à partir de ses sources. Cet objectif inclus des adaptations simples au Makefile, par exemple modifier des chemins ou ajouter un répertoire d'inclusions supplémentaire.
fichiers clés termes et utilitaires
:
gunzip
gzip
bzip2
tar
configure
make
Fichiers source
[modifier | modifier le wikicode]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.
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.
Exemples:
tar cvf monbackup.tar ~ tar cvf usr.tar /usr tar tvf monbackup.tar tar xvf monbackup.tar
On utilise généralement l'extension .tar pour toutes archives créées par l'utilitaire tar.
Compression de fichiers
[modifier | modifier le wikicode]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 # vieil algorithme Unix de compression
- gzip, gunzip # Le plus utilisé
- bzip2, bunzip2 # l'algorithme donnant la meilleure compression (au coût de la vitesse...)
Une fois qu'une archive a été créée, elle peut être compressée.
Exemples:
$ ls -l backup.tar -rw-r--r-- 1 rarrigon users 22773760 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 10507393 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, 10077846 out.
Archivage de fichiers et compression
[modifier | modifier le wikicode]Il est possible de rassembler des fichiers et de compresser l'archive obtenue en une seule commande.
Exemples:
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
Par défaut, tar utilise des chemins relatifs, mais il est possible de sauver des fichiers en chemin absolu en utilisant l'option -P. Dans ce mode, les fichiers seront toujours extraits au même endroit.
Chaîne d’outils GNU
[modifier | modifier le wikicode]Sous Linux, toutes les sources peuvent être compilées avec la chaine d’outils standard de GNU.
- L'utilitaire make permet de construire un programme à partir de plusieurs fichiers sources. Il utilise les règles définies dans le Makefile.
- gcc est un compilateur C compatible ANSI.
- g++ est un compilateur C++.
Beaucoup d'archives contiennent des fichiers d'information (README, INTALL) 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. C'est pourquoi il est courant que 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.
Exercices
[modifier | modifier le wikicode]- Faites une archive des répertoires /bin et /sbin. Quel utilitaire obtiendra la meilleure compression ? Utilisez -v pour obtenir la réduction de taille en pourcentage.
- Copiez le fichier /usr/src/packages/SOURCES/grub-09.tar.bz2 dans /tmp, et compilez les sources en lisant les fichiers README et INSTALL.
- Trouvez un moyen de décompresser une archive .deb et .rpm. Qu'y-a-t'il dedans ?
- En une seule commande, compressez un nouveau fichier, puis décompreser le dans un autre endroit.