La compilation d’un logiciels.
Quand on récupère les sources d’un logiciels, il faut passer par l’étape de la compilation pour pouvoir ensuite installer le logiciel. les sources sont souvent compressées, sous différents formats :
Décompression des sources
Le plus souvent, le fichier d’archive contenant les fichiers sources est compressé, selon différents formats identifiables par le suffixe du fichier :
Fichier.tar.Z
Fichier d’archive TAR, compressé par l’utilitaire compress. On le décompresse par la commande uncompress Fichier.tar.Z ou par l’option -Z de la commande tar.
Fichier.tar.gz
Fichier d’archive TAR, compressé par l’utilitaire gzip. On le décompresse par la commande gunzip Fichier.tar.gz ou par l’option -z de la commande tar.
Fichier.tar.bz2
Fichier d’archive TAR, compressé par l’utilitaire bzip2. On le décompresse par la commande bunzip2 Fichier.tar.bz ou par l’option -j de la commande tar.
Fichier.tar.xz
Fichier d’archive TAR, compressé par l’utilitaire xz. On le décompresse par la commande unxz Fichier.tar.xz ou par l’option -J de la commande tar.
Exemple avec le logiciel serveur nginx , on télécharge l’archive nginx-1.22.0.tar.gz
on peut vérifier l’arborescence du fichier avant de le décompresser :
> tar tvzf nginx-1.22.0.tar.gz
la liste des fichiers s’affiche, on peut maintenant le décompresser réellement :
> tar xvzf nginx-1.22.0.tar.gz
si on vérifie avec la commande ls -l nginx-1.22.0 on voit que tout y est .
Avant de pouvoir compiler , il faut installe les logiciels nécessaire, sur redhat et forks, il faut installer le groupe Develpment Tools :
> sudo dnf groupinstall « Development Tools »
pour debian et autres dérivés c’est le group « Build-essentials » :
> sudo apt install build-essential
pour s’assurer que le script de configuration vérifie la version du systeme, on peut faire un grep :
> grep uname configure
ce qui affiche :
NGX_SYSTEM=`uname -s 2>/dev/null`
NGX_RELEASE=`uname -r 2>/dev/null`
NGX_MACHINE=`uname -m 2>/dev/null`
on peut donc lancer la configuration avec :
> ./configure
il arrive qu il manque certaine librairie, l’erreur explique comment l’installer ou continuer sans la librairie, ici j’ai du installer la librairie :
> sudo apt install libpcre3-dev
sudo apt install zlib1g-dev
une fois la configuration terminée, on peut lancer la compilation avec la commande make :
> make
une fois terminé, les modules et executables sont situés dans le dossier objs, on peut le lister :
> ls -ltr objs
si on veut des infos sur l executable nginx :
> file objs/nginx
il ne rest plus qu a installer nginx avec la commande :
> sudo make install
une fois installé , on peu verifier la version avec :
> /usr/local/nginx/sbin/nginx -V
En cas de probleme, on peut utiliser la commande :
> make clean
qui va nettoyer les fichiers générés et
> make mrproper
pour savoir quelle commande on peut analyser, il faut analyser le fichier makefile :
> cat makefile
dans la liset des commandes on verra laquell est utilisable.
pour desinstaller un programme compilé, il faut se placer dans le repertoire d’ou on a lancé l’installation puis lancer la commande :
> make uninstall