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

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

Objectif modifier

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

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

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

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

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

  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.