Tant qu'à faire, voici ma méthode de travail quand je compile.
J'ai un dossier « Developpement » quelque part, pour la suite, on va considérer qu'il est dans mon dossier « Maison » (
~/Developpement/). Ensuite, je crée un dossier destiné à contenir mes scripts de configuration, à savoir :
~/Developpement/configure-scripts. J'y crée un modèle qui va me servir pour tous les projets qui ne méritent pas d'options spéciales. Je l'ai appelé « baseconfig ». Pour le créer,
jetez un ½il ici. Si on décide d'utiliser le Terminal et Emacs, ça donne :
mkdir -p ~/Developpement/configure-scripts
chmod 700 ~/Developpement/
cd ~/Developpement/configure-scripts
emacs baseconfig
On y met :
Bloc de code:
cat ./myconfig
./configure --prefix=/mysw --sysconfdir=/etc --with-includes=/sw/include --with-libraries=/sw/lib
Le
--with-includes=/sw/include --with-libraries=/sw/lib est pour ceux qui ont installé
Fink. Pour quitter Emacs
ctrl-X ctrl-S puis
ctrl-X ctrl-C. Ensuite il faut rendre le script exécutable.
chmod +x baseconfig
Imaginons que je veuille compiler
Lynx à partir de l'archive compressée en « bz2 ». Ça donne :
cd ~/Developpement/ - on va dans le dossier « Developpement ».
mkdir lynx - création du dossier.
cd lynx - on va dans le dossier « lynx ».
curl -O http://lynx.isc.org/release/lynx2.8.5.tar.bz2 - téléchargement.
bunzip2 -c lynx2.8.5.tar.bz2 | tar xvf - - extraction des sources.
cd lynx2-8-5 - on va dans le dossier des sources.
ln -s ../../configure-scripts/baseconfig myconfig - création d'un lien symbolique nommé « myconfig ».
./myconfig - équivalent de
./configure mais avec mes options.
make - compilation.
su - on passe en root.
Passwd: - mot de passe de root (pour l'activer,
voir ici).
make install - installation proprement dite.
exit - on sort de root.
Une fois installé, il n'y a plus lieu de garder les sources, l'archive téléchargée suffit.
cd .. - on remonte dans le dossier « lynx ».
rm -rf lynx2-8-5/ - on efface les sources et le résultat de la compilation.
Autre exemple, compilation de GnuPG à partir de l'archive compressée en « gz ». Comme il y a des options supplémentaires à mettre, on commence par préparer le script de configuration.
cd ~/Developpement/configure-scripts
cp baseconfig gnupg
emacs gnupg
On y met :
Bloc de code:
cat ./myconfig
./configure --prefix=/mysw --sysconfdir=/etc --with-includes=/sw/include --with-libraries=/sw/lib --disable-asm --with-libiconv-prefix=/mysw
Pour quitter Emacs
ctrl-X ctrl-S puis
ctrl-X ctrl-C. Ensuite :
cd ~/Developpement/ - on va dans le dossier « Developpement ».
mkdir gnupg - création du dossier.
cd gnupg - on va dans le dossier « gnupg ».
curl -O ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.2.4.tar.gz - téléchargement.
tar xvzf gnupg-1.2.4.tar.gz - extraction des sources.
cd gnupg-1.2.4 - on va dans le dossier des sources.
ln -s ../../configure-scripts/gnupg myconfig - création d'un lien symbolique nommé « myconfig ».
./myconfig - équivalent de
./configure mais avec mes options.
make - compilation.
su - on passe en root.
Passwd: - mot de passe de root.
make install - installation proprement dite.
exit - on sort de root.
Évidemment, on revire les sources.
Quelques explications sur les options de base.
--prefix=/mysw Tous mes projets sont installés dans un dossier nommé « /mysw ». Ça permet de garder les originaux du système sans le polluer. Mais il faut alors mettre les bons dossiers dans le « PATH » pour que le mac puisse trouver les nouvelles commandes. À ne faire qu'une fois :
su - on passe en root.
Passwd: - mot de passe de root.
emacs /etc/profile - on édite le fichier /etc/profile et on remplace la ligne PATH par
Bloc de code:
PATH="/mysw/sbin:/mysw/bin:/sw/sbin:/sw/bin:/bin:/sbin:/usr/bin:/usr/sbin"
On quitte Emacs comme d'habitude, puis on quitte le Terminal et on le relance.
--sysconfdir=/etc Ça c'est plus contestable.
J'aime avoir mes fichiers de config dans /etc. À manier avec précaution si vous compilez des projets qui on une version déjà présente dans Mac OS X. Je ne mets pas les manuels dans
/usr/share/man pour cette raison et
ManOpen permet d'ajouter des emplacements pour les pages de manuel.
Quant on veut recompiler un projet parce qu'il y a une nouvelle version, il suffit de télécharger les sources, de faire le bon lien « myconfig » et vous êtes sûr de recompiler avec les bonnes options mises patiemment au point auparavant.
Voilà.
À+