Il existe deux grandes façons d’installer des programmes sous Linux. Soit vous utilisez un paquetage préconstruit, soit vous compilez le programme vous-même. De nos jours, la première solution l’emporte généralement par défaut, mais il y a des cas où vous pouvez envisager de compiler le programme à partir du code source.


Qu’est-ce qu’un paquetage binaire ?

Format des paquets DEB

L’installation de programmes sous Linux est généralement très différente de la méthode traditionnelle d’installation de logiciels sous Windows. Plutôt que de télécharger un programme d’installation à partir du site web d’un vendeur, les fichiers proviennent d’un dépôt de programmes généralement adaptés à votre distribution Linux. Vous accédez à ce dépôt à l’aide d’un gestionnaire de paquets Linux ou d’un magasin d’applications.

Les fichiers qui composent les programmes de ces dépôts sont présentés sous forme d’archives. Cela permet de tout regrouper dans un seul fichier pour en faciliter l’accès et la distribution. Debian, par exemple, utilise le format DEB pour stocker et distribuer les programmes. Ces paquets sont appelés paquets binaires.

Comment lire le code binaire

Vous avez besoin d’un programme spécial pour extraire ces fichiers et les installer sur votre ordinateur, généralement votre gestionnaire de paquets ou votre magasin d’applications. Ces outils remplissent également d’autres fonctions utiles, telles que le suivi des fichiers que vous avez installés et la gestion des mises à jour logicielles.

Les formats de paquets plus récents comme Flatpak et Snap fonctionnent sur différentes versions de Linux, mais ils consistent toujours en des programmes binaires pré-compilés. Tous deux nécessitent un magasin d’applications graphique ou un gestionnaire de paquets en ligne de commande pour l’installation.

Qu’est-ce que le code source ?

Tous les logiciels sont constitués de lignes de texte appelées code source, écrites dans des langages de programmation spécifiques, tels que le C ou le C++. Il n’est généralement pas possible de regrouper ce code source dans une archive et de l’appeler « paquetage ». Ces lignes doivent être traduites dans un langage que votre ordinateur peut comprendre et exécuter.

Ce processus s’appelle la compilation, et le résultat final crée des binaires que votre ordinateur peut exécuter. La différence entre les paquets et les logiciels est que les binaires des logiciels sont stockés ensemble dans un paquet, avec d’autres éléments tels que les fichiers de configuration.

Qu’est-ce que l’installation « à partir des sources » ?

Makefile pour Emacs

Installer un programme « à partir des sources » signifie installer un programme sans utiliser de gestionnaire de paquets. Vous compilez le code source et copiez les binaires sur votre ordinateur.

La plupart du temps, vous pouvez télécharger le code source d’un projet à partir de services d’hébergement tels que GitHub, GitLab ou Bitbucket. Les programmes plus importants peuvent même héberger le code source sur un site web personnel. Le code est généralement compressé dans un format d’archive (également appelé paquet source).

Un ensemble spécial d’outils permet d’automatiser le processus de construction. Sur les ordinateurs de bureau Linux, ces outils se présentent souvent sous la forme d’un programme de ligne de commande appelé make. Les codes sources écrits dans différents langages nécessitent des compilateurs et des commandes spécifiques pour les transformer en binaires. Le programme make automatise ce processus.

Pour que cette automatisation fonctionne, les programmes doivent fournir à make un fichier Makefile qui lui indique ce qu’il doit faire et compiler. De nos jours, le Makefile est généralement généré automatiquement par un logiciel spécial tel que CMake. C’est là que vous intervenez. À partir de là, vous pouvez spécifier exactement les fonctionnalités que vous souhaitez voir compilées dans votre logiciel.

Exemple de construction « à partir de la source

Par exemple, la commande ci-dessous génère un fichier de configuration pour la Calligra Office Suite à l’aide de CMake. Le fichier créé indique au programme make de ne compiler que le composant Writer de Calligra.

 cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra 

Une fois cette opération effectuée, il suffit de lancer l’outil make pour compiler et copier les résultats sur l’ordinateur. Cela se fait de la manière suivante :

 make
make install

Bien qu’il s’agisse du modèle général de compilation des programmes, il existe de nombreuses autres façons d’installer les paquets source. Gentoo Linux, par exemple, dispose d’une méthode intégrée pour gérer cela, ce qui rend le processus beaucoup plus rapide et facile. Mais la construction de paquets binaires nécessite quelques étapes supplémentaires par rapport aux commandes ci-dessus.

Avantages de l’utilisation de paquets binaires

Si vous utilisez Linux, il est plus que probable que quelqu’un a pré-compilé le logiciel que vous avez installé. Cette pratique est devenue beaucoup plus courante que l’utilisation des paquets source. Mais pourquoi ?

1. Les versions binaires sont plus faciles à gérer

le format de paquetage deb

Les paquets binaires contiennent bien plus que des fichiers d’installation compilés. Ils stockent également des informations qui permettent à votre gestionnaire de paquets de suivre facilement tous vos programmes. Par exemple, les fichiers DEB (le format de paquet pour Debian et ses dérivés) contiennent également des informations importantes telles que les autres logiciels dont le programme a besoin pour fonctionner, et sa version actuelle.

Cela rend les paquets beaucoup plus faciles à installer, car vous n’avez pas à vous soucier des autres fichiers dont vous avez besoin pour faire fonctionner un programme avec succès. Votre gestionnaire de paquets peut lire ces informations dans le paquet lui-même et télécharger automatiquement toutes les dépendances nécessaires.

Lorsque vous installez des programmes à partir des sources, à moins que vous ne compiliez le code dans un paquet binaire, vous serez chargé de gérer ce logiciel. Vous devrez garder à l’esprit les autres programmes dont vous avez besoin pour le faire fonctionner et les installer vous-même.

2. Les versions binaires sont plus stables

Les personnes qui maintiennent les dépôts pour votre gestionnaire de paquets ont tendance à tester les binaires pour détecter les problèmes et à faire de leur mieux pour corriger ceux qui apparaissent. Cela peut conduire à une meilleure stabilité, puisque les responsables des paquets peuvent repérer quelque chose qu’une personne qui a installé à partir des sources pourrait manquer.

Les paquets Plus doivent généralement adhérer à un ensemble de règles strictes pour s’assurer qu’ils fonctionneront sur votre système. Debian et Ubuntu ont un manuel de règles, par exemple, comme beaucoup d’autres distributions Linux.

Certains programmes s’appuient également sur différentes versions d’une même dépendance logicielle pour fonctionner. Les dépôts de paquets font de leur mieux pour résoudre ces conflits afin que vous n’ayez pas à le faire.

Avantages de la compilation des paquets de sources

L’installation de programmes à partir des sources n’est pas une chose que tout le monde doit faire, car il est généralement plus facile d’entretenir son PC si l’on s’en tient aux paquets binaires. Néanmoins, cette méthode d’installation de programmes un peu plus complexe présente certains avantages.

1. Le code source offre les logiciels les plus récents

L’un des inconvénients de la fiabilisation des programmes est qu’il faut du temps pour les améliorer et les corriger. Parfois, un binaire est disponible, mais le code source est plus tardif. Les personnes qui veulent le nec plus ultra peuvent même préférer un peu d’instabilité en échange d’un logiciel plus récent.

Bien qu’il existe des systèmes d’exploitation Linux qui répondent à ce besoin sans compiler les programmes, ils présentent quelques inconvénients. Par exemple, les logiciels qui ne publient pas fréquemment des versions de paquetage sont plus difficiles à maintenir à jour dans un dépôt que lors d’une installation à partir des sources.

Cela est dû au fait que les paquets binaires sont généralement créés à partir des versions officielles des programmes. En tant que tels, les changements entre ces versions ne sont généralement pas pris en compte. En compilant votre propre logiciel à partir des sources, vous pouvez bénéficier immédiatement de ces changements.

Il est également possible que votre système d’exploitation Linux ne dispose pas du logiciel que vous souhaitez. Dans le passé, cela signifiait que l’installation du logiciel à partir des sources était votre seule option. Les formats de paquets universels ont changé cette situation. Les paquets Flatpak et Snap reçoivent généralement des mises à jour beaucoup plus rapidement que les dépôts du système. Mais il arrive encore que la compilation soit le seul moyen d’obtenir ce que l’on veut.

2. Vous pouvez choisir

caractéristiques de ffmpeg

Un autre avantage de l’utilisation de paquets source est que vous avez plus de contrôle sur les programmes que vous installez. Lors de l’installation à partir d’un dépôt binaire, vous êtes limité dans la façon dont vous pouvez personnaliser vos paquets.

Prenons l’exemple de FFmpeg, le convertisseur audio et vidéo en ligne de commande. Par défaut, il est livré avec un grand nombre de fonctionnalités, dont certaines que vous ne toucherez peut-être jamais. Par exemple, le support audio JACK est disponible dans FFmpeg, même si ce logiciel n’est généralement utilisé que dans des environnements de production.

Compiler FFmpeg vous permet de supprimer les éléments dont vous ne voulez pas, ce qui le rend plus léger et adapté à vos besoins. Il en va de même pour d’autres programmes lourds.

Lorsque les ressources sont limitées, la suppression de fonctionnalités peut être un excellent moyen d’alléger la charge. Il n’est pas étonnant que ChromeOS, que l’on trouve sur de nombreux ordinateurs bas de gamme, soit basé sur Gentoo Linux. Gentoo, étant basé sur le code source, compile une grande partie de ses logiciels, ce qui permet d’alléger considérablement le fonctionnement de ces systèmes.

Pourquoi ne pas utiliser les paquets binaires et les paquets sources ?

Bien que vous ne souhaitiez probablement pas compiler des paquets quotidiennement, c’est quelque chose d’utile à garder à l’esprit. Cela dit, avec les nouveaux formats de paquets universels disponibles sur des sites tels que Snap Store et Flathub, il est moins probable que vous ayez besoin de compiler à partir des sources pour obtenir les logiciels les plus récents.