[Linux] Compiler le code source d'un logiciel : la théorie et un peu de pratique

Avant d'aborder le cœur du sujet, un petit rappel s'impose :

Pour installer un logiciel sur une distribution Linux, il y a 4 moyens possibles : la bibliothèque de logiciels, le terminal (apt-get) ou un installateur .deb ou .rpm (deb pour les distributions Debian comme Ubuntu ou Mint).

Malheureusement, tous les logiciels linux n'ont pas d'installateurs ou ne sont pas disponibles sur les dépôts.

Dans ce cas, il faut utiliser la quatrième solution : récupérer le code source du logiciel et le rendre exécutable. C'est ce qu'on appelle la compilation (transformation du code source en code binaire compréhensible par l'ordinateur).

Voici les grandes étapes de la compilation :

Attention ! Parfois des instructions de compilation sont données par le développeur, il est préférables de les suivre.

1. Installation des paquets nécessaires pour la compilation en utilisant la commande :

sudo apt-get install build-essential

2. La récupération du code source sur le site de l'éditeur.

3. Utilisation de la commande ./configure :
  • Permet de vérifier que toutes les dépendances sont présentes sur votre système (que les paquets dont à besoin le logiciel pour la compilation sont installés).
  • Si il y a des erreurs pendant la vérification, vous devrez trouver les dépendances manquantes, sinon la commande ./configure ne pourra pas générer le fichier make. Sachez que bien souvent, vous trouverez la liste des dépendances nécessaires sur le site de l'éditeur. Il s'agit d'une aide précieuse pour trouver les paquets à installer.
  • Une fois les erreurs corrigées, relancez ./configure afin de générer un fichier make qui contiendra les instructions de compilation.
Voici une capture de la liste des dépendances nécessaires pour installer CoreBird ainsi que les commandes pour compiler.

4. Utilisation de la commande make pour effectuer la compilation.

5. Utilisation de la commande make install pour effectuer l'installation.

L'essai :

Après avoir passé une journée à essayer de compiler, voici un petit retour d'expérience (attention, il ne s'agit pas d'un tutoriel, je présente juste la méthode que j'ai utilisé pour apprendre à compiler. N'étant pas un utilisateur confirmé, ma méthode est peut-être sujet à caution) :

Sous Ubuntu 16, j'ai voulu installer build essential qui était déjà présent... Pour vérifier si un paquet est installé, vous pouvez utiliser le gestionnaire de paquet Synaptic (Ubuntu/Mint). Recherchez build essential. Pour cette vérification sous Ubuntu, il faut installer Synaptic.



Pour mon test, j'ai récupéré le code source du jeu Openttd contenu dans une archive .zip. Avant de quitter le site de l'éditeur, n'oubliez de regarder si la liste des dépendances est affichée ou si il y a des instructions de compilation.

Faites enregistrer.

Allez dans le répertoire où vous avez installé l'archive, faites un clic droit dessus et sélectionnez extraire ici.

Les fichiers apparaissent. Vous pouvez constater qu'il y a un fichier configure. Dans une zone il y n'a pas de fichiers, faites un clic droit et sélectionnez ouvrir dans un terminal.

Vous êtes bien dans le dossier openttd-1.7.1, saisissez ou copiez la commande suivante : ./configure

Une fois que l'analyse est finie, vous devez lire les lignes et repérer celle où des dépendances sont manquantes. Sur cet extrait de capture, il manque allegro et sdl. Soit vous faites une recherche google et vous arrivez à trouvez le nom du paquet et vous l'installez avec le terminal ou le gestionnaire de paquet soit vous faites la recherche directement dans le gestionnaire de paquet. J'ai opté pour cette méthode (elle ne fonctionne pas à tout les coups).

Exemple : pour trouver sdl dans Synaptic, recherchez sdl. Dans les résultats de recherche, regardez la description et le nom des paquets pour vous aider à sélectionner les bons paquets.

Sélectionnez les paquets pour l'installation.

Faites ajoutez.
Cliquez sur Appliquer.

Une fois que les paquets sont installés, j'ai relancé la commande ./configure et désormais, sdl apparaît en found donc c'est bon.

Ensuite, il faut répéter l'opération pour toutes les erreurs du même genre. C'est assez long à faire quand on ne connaît pas et certaines dépendances sont loin d'être facile à trouver !

Une fois que les erreurs sont corrigées, il ne vous reste plus qu'à utiliser la commande make puis make install.

Voilà pour ce petit retour d'expérience où j'ai voulu apprendre à compiler un logiciel. L'opération est loin d'être simple et elle s'adresse à des utilisateurs confirmés.

Enregistrer un commentaire

Les commentaires sont validés manuellement avant publication. Il est normal que ceux-ci n'apparaissent pas immédiatement.

Plus récente Plus ancienne