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

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Compiler et installer des programmes à partir des sources
Icône de la faculté
Chapitre no 3
Leçon : LPIC1 101 : Installation de Linux et gestion des packages
Chap. préc. :Installer un gestionnaire d'amorçage (boot manager)
Chap. suiv. :Gérer les bibliothèques partagées
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Installation de Linux et gestion des packages : Compiler et installer des programmes à partir des sources
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
 », n'a pu être restituée correctement ci-dessus.

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]

  1. 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.
  2. Copiez le fichier /usr/src/packages/SOURCES/grub-09.tar.bz2 dans /tmp, et compilez les sources en lisant les fichiers README et INSTALL.
  3. Trouvez un moyen de décompresser une archive .deb et .rpm. Qu'y-a-t'il dedans ?
  4. En une seule commande, compressez un nouveau fichier, puis décompreser le dans un autre endroit.