next up previous contents Next: Paquets binaires RedHat et Up: Paquets sources et binaires. Previous: Paquets sources et binaires.   Table des matières  


25.1 Construction de paquets sources GNU.

Presque tous les paquets proviennent de sources C (archivées par la commande tar et compressées) disponibles à partir d'un des sites FTP publiques comme metalab.unc.edu. Les développeurs attentifs ont préparé des paquets conformes aux normes de GNU (GNU standards compliant). Ceci veut dire que le désarchivage du paquet produit les fichiers suivants dans un répertoire principal (le plus souvent de même nom que celui du paquet):

INSTALL
C'est le document de référence qui commence par la ligne ``These are generic installation instructions.'' Etant donné que tous les paquets GNU sont installés de la même manière, ce fichier devrait toujours être le même d'un paquet à l'autre.

NEWS
Ce sont les commentaires (relatifs aux nouveautés) à l'attention des utilisateurs.

README
Toute information essentielle y est contenue. Il s'agit traditionnellement des explications à propos de ce que réalise le programme, le matériel promotionnel et toute information nécessaire à l'installation du paquet.

COPYING
Ce fichier contient la licence GNU-GPL (GNU General Public Licence).

AUTHORS
Ce fichier contient la liste des personnes contribuant au projet.

ChangeLog
Il s'agit d'une liste de format spécial contenant un historique de tous les changements faits sur le paquet, les noms de personnes l'ayant modifié et la date des modifications. Ce fichier est utilisé pour tracer les modifications effectuées au cours du temps.

Le fait qu'un paquet obéisse au standard de GNU signifie aussi qu'il doit pouvoir être installé à l'aide des trois commandes:

./configure  
make 
make install 


Cela implique également que les paquets doivent pouvoir être compilés sur n'importe quel système UNIX. Par conséquent, cette section va vous apprendre à utiliser des paquets LINUX pouvant être installés et pouvant fontionner sur des systèmes non-LINUX.

Nous allons choisir un exemple à titre d'illustration. Commençons par télécharger cooledit à partir du site metalab.unc.edu. dans le répertoire /pub/Li nux/apps/editors/X/cooledit, en utilisant ftp. [NdT: par exemple en lançant ftp, puis en entrant open metalab.unc.edu.] Maintenant, entrez:

cd /opt/src 
tar -zxvf cooledit-3.17.5.tar.gz 
cd cooledit-3.17.5 


Vous noterez que le nom de la plupart des sources est du type package-major.mi nor.patch.tar.gz. Le nombre majeur n'est modifié que lorsque les développeurs ont réalisé des changements substantiels ou lorsqu'une version présente des incompatibilités vis-à-vis des versions précédentes. Le nombre mineur est mis à jour lors de modifications peu importantes. Le numéro de correctif (patch, aussi connu sous le terme niveau de correctif) correspond à une mise à jour vers toute nouvelle version (release) et usuellement, dans ce cas, il y a des corrections de bogues.

A ce stade, vous pouvez appliquer au besoin tous les patches dont vous disposez. Référez-vous à la section 21.7.3.

Vous pouvez alors lancer la commande ./configure. Le script ./configure est produit par autoconf, un paquet utilisé par les développeurs pour créer un code source C qui compilera le paquet sur tout type d'UNIX. Le paquet autoconf contient également les GNU Coding Standards auxquels tous logiciels devraient se conformer [autoconf est le fruit du travail remarquable de David MacKenzie. J'ai souvent entendu le mythe selon lequel les systèmes Unix avaient tellement divergé au cours du temps qu'ils n'étaient plus compatibles. Le fait qu'un logiciel évolué comme cooledit (et de nombreux autres) soit compilable sur tous les UNIX devrait dissiper ce non-sens. Il y a aussi un exagération à propos des developpeurs ``portant'' des logiciels UNIXcommerciaux sous LINUX. Si pour commencer, ils avaient écrits leur logiciel proprement, il n'y aurait pas de ``portage'' à réaliser. En bref, tousles logiciels LINUXfonctionnent sur tous les UNIX. Les seules exceptions sont des paquets qui exploitent des caractéristiques propres au noyau LINUX].

./configure -prefix=/opt/cooledit 


En l'occurrence, -prefix indique le répertoire-parent sous lequel le paquet sera installé (voir la section 18.2). Essayez ensuite:

./configure -help 


pour obtenir les options spécifiques au paquet.

Une autre astuce consiste à fixer les options de compilation:

CFLAGS='-O2 -fomit-frame-pointer -s -pipe' ./configure -prefix=/opt/cooledit 


Ces options ont la signification suivante:

-O2
fixe les options de compilation pour ``rendre le paquet compilé aussi rapide que possible sans en augmenter la taille'' (-O3 ne produit pratiquement jamais d'amélioration).

-fomit-frame-pointer
permet au compilateur d'utiliser un registre supplémentaire qui, normalement, est dévolu au débogage. N'utilisez cette option que lorsque vous êtes absolument sûr que vous ne devrez pas analyser des problèmes associés à l'installation d'un paquet.

-s
élimine le code objet. Ceci réduit la taille du code objet en supprimant toute donnée de débogage.

-pipe
indique de ne pas utiliser de fichiers temporaires. En fait, cette option permet d'utiliser des tubes pour distribuer le code parmi les différents étages de compilation. Elle s'avère utile pour accélérer la compilation.

A présent, il faut compiler le code, ce qui peut prendre jusqu'à plusieurs heures en fonction de la quantité de code et de la puissance de la CPU [cooledit est compilé en moins de 10 minutes sur toute machine de base existant au moment de la rédaction de la version originale anglaise de cet ouvrage (NdT: 2001)].

make 


Vous pouvez aussi lancer:

make CFLAGS='-O0 -g' 


si vous décidez de compiler avec l'aide de débogage. L'installation se poursuit avec:

make install 


Voici une jolie astuce [qui n'est pas toujours supportée] pour installer le paquet dans un sous-répertoire différent :

mkdir /tmp/cooledit 
make install prefix=/tmp/cooledit 


Vous pouvez utiliser ces commandes pour empaqueter la construction ainsi réalisée afin de la désarchiver sur un système différent. Cependant, vous ne devrez pas exécuter le programme à partir d'un répertoire différent de celui pour lequel il a été -prefixé durant l'étape d'installation. En effet, en majorité, les paquets sont compilés à cet endroit et accèdent aux données installées en fonction de cela.

L'utilisation d'un paquet source est souvent le meilleur moyen de pratiquer une installation quand vous voulez qu'un paquet fonctionne de la manière imaginée à l'origine par ses développeurs. Il vous sera aussi souvent nécessaire de trouver de la documentation car il se peut que les distributeurs aient oublié d'inclure certains fichiers.


next up previous contents Next: Paquets binaires RedHat et Up: Paquets sources et binaires. Previous: Paquets sources et binaires.   Table des matières  
1-01-2006