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
modifierObjectif
modifierDescription: 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
modifierOn 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
modifierLa 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
modifierIl 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
modifierSous 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- 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.