Compiler le code source
100%

Packages · Leçon 7

Compiler le code source

Découvrez comment vérifier, configurer, construire, tester, préparer et suivre un logiciel compilé depuis son code source.

La construction depuis les sources peut fournir une version ou une fonctionnalité absente des dépôts configurés, mais elle vous transfère le travail d’intégration, de mise à jour et de confiance normalement assuré par la distribution. Préférez un paquet pris en charge par la distribution lorsqu’il répond au besoin.

Vérifier et lire avant de construire

Obtenez le code source depuis le canal authentifié de publication du projet en amont. Vérifiez sa signature ou sa somme de contrôle par une voie de confiance, puis examinez l’archive avant de l’extraire dans un répertoire intermédiaire sans privilèges. Lisez les fichiers tels que README, INSTALL, SECURITY et la documentation de construction du projet.

Les instructions de construction sont du code exécutable. Un script configure, une définition de construction, un test ou un greffon de compilateur peut exécuter des commandes arbitraires en tant que votre utilisateur. Ne construisez pas de code source non fiable et n’exécutez pas la construction elle-même avec sudo.

Pourquoi l’étape de compilation doit-elle normalement s’exécuter sans sudo ?

Installer les prérequis de construction

Sur un système de développement de la famille Debian, un point de départ courant est :

$ sudo apt install build-essential

Cette commande installe un compilateur de base et des outils de construction, mais pas toutes les dépendances nécessaires à chaque projet. Les projets peuvent aussi exiger des environnements d’exécution de langages, des générateurs, des outils de systèmes de construction, des en-têtes de développement ou des versions précises de bibliothèques. Installez les prérequis depuis des dépôts de confiance et distinguez les dépendances de construction de celles nécessaires à l’exécution.

Que fournit build-essential sur un système de la famille Debian ?

Configurer et construire

Un projet traditionnel de style Autoconf emploie :

$ ./configure --prefix=/usr/local
$ make

configure examine l’environnement et génère les fichiers de construction selon les options choisies. make lit les règles de dépendances et de commandes, généralement dans un Makefile, puis crée les cibles demandées.

Cette séquence n’est pas universelle. Les projets peuvent employer CMake, Meson, Ninja, des outils propres à un langage ou des scripts personnalisés. Suivez la documentation de la version exacte au lieu d’exécuter ./configure uniquement par habitude. Un répertoire de construction distinct de l’arborescence source peut isoler les fichiers générés lorsque le système de construction le permet.

Dans la procédure traditionnelle, que fait make ?

Tester avant l’installation

Exécutez la cible de test documentée par le projet, par exemple :

$ make check

La cible réelle peut être test, check ou une commande distincte. Analysez les échecs au lieu d’installer un résultat non testé. Les tests peuvent nécessiter un accès réseau, des services, du matériel particulier ou une isolation ; examinez-les avant leur exécution comme tout autre code de construction.

Que faut-il faire lorsque la suite de tests documentée échoue ?

Préparer et suivre l’installation

sudo make install peut copier directement des fichiers dans les préfixes système sans les enregistrer dans la base native des paquets. Les cibles de désinstallation sont facultatives et parfois incomplètes, tandis que des mises à niveau ultérieures peuvent écraser ou abandonner des fichiers.

Préférez l’une de ces méthodes contrôlées :

  • construire un paquet natif officiel avec les outils de la distribution ;
  • installer sous un préfixe clairement séparé tel que /usr/local lorsque la politique le permet ;
  • préparer les fichiers dans une racine de paquet temporaire avec un mécanisme pris en charge tel que DESTDIR ;
  • employer un préfixe utilisateur sans privilèges, un environnement isolé ou un conteneur selon le besoin.

checkinstall peut créer un paquet simple pour certaines procédures make install, mais il n’est pas universel et ne remplace pas une recette de paquet de qualité, examinée pour la distribution. Ne le considérez jamais comme une règle absolue. Avant toute copie privilégiée, examinez la liste des fichiers préparés, leur propriété, leurs permissions, leurs chemins ainsi que le plan de désinstallation ou de mise à niveau.

Quel est le but d’une installation intermédiaire prise en charge avec DESTDIR ?

Leçon terminée

Vous avez terminé Compiler le code source

Vous savez maintenant traiter la construction depuis les sources comme une chaîne d’approvisionnement logicielle contrôlée.

  • Authentifier la source et considérer ses instructions comme du code exécutable à examiner.

  • Installer les prérequis explicites depuis des dépôts de confiance.

  • Configurer, construire et tester sans privilèges inutiles.

  • Préparer et examiner les résultats avant l’installation système.

  • Suivre les fichiers installés au moyen d’un paquet natif ou d’un préfixe isolé choisi délibérément.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Retour à Packages