Fink

Paquets - 4. Organisation des fichiers

Les règles d'organisation des fichiers suivantes font partie intégrante des règles de construction des paquets de Fink.

4.1 Hiérarchie standard des fichiers

Fink suit l'esprit de Filesystem Hierarchy Standard - Norme de hiérarchie du système de fichiers, ou FHS en raccourci. Il ne peut qu'en suivre l'esprit car FHS a été conçu pour les vendeurs de systèmes qui ont le contrôle des arborescences / et /usr. Fink n'est qu'une distribution supplémentaire qui ne contrôle que son répertoire (ou préfixe) d'installation. Les exemples ci-dessous utilisent le préfixe par défaut, soit /sw.

4.2 Répertoires

Les fichiers doivent être placés dans les sous-répertoires suivant de l'arborescence :

RépertoireUtilisation
/sw/bin

Ce répertoire est dédié aux exécutables généraux. Il n'existe pas de sous-répertoire.

/sw/sbin

Ce répertoire correspond aux exécutables pour administrateurs système. Les démons lancés en tâche de fond y sont placés. Il n'y a pas de sous-répertoire.

/sw/include

Ce répertoire stocke les headers C et C++. On peut créer autant de sous-répertoires que nécessaire. Si un paquet installe des headers qui peuvent être confondus avec des headers standard C, les headers du paquet doivent être installés dans un sous-répertoire.

/sw/lib

Ce répertoire est destiné aux fichiers de données et bibliothèques dépendants de l'architecture du système. Les bibliothèques statiques et partagées doivent être placées dans /sw/lib, sauf s'il existe une bonne raison pour ne pas le faire. C'est également là que sont placés les exécutables qui ne doivent pas être directement lancés par l'utilisateur (dans le cas contraire, ils sont placés dans libexec).

On peut créer un sous-répertoire spécifique à un paquet, afin d'y mettre des données privées ou des modules chargeables. Pensez à utiliser des noms de répertoire qui garantissent la compatibilité entre versions. Il est bon d'utiliser le numéro de version majeur du paquet dans le nom du sous-répertoire ou à un niveau inférieur de la hiérarchie ; par exemple, /sw/lib/perl5 ou /sw/lib/apache/1.3. Faites attention si vous utilisez le type d'hôte dans le nom des répertoires créés. Un sous-répertoire nommé powerpc-apple-darwin1.3.3 ne garantit pas la compatibilité entre versions ; utilisez plutôt powerpc-apple-darwin1.3 ou powerpc-apple-darwin.

/sw/lib/ppc64 /sw/lib/x86_64

Ce répertoire est dédié aux bibliothèques 64-bit. Le répertoire /sw/lib/ppc64 est utilisé sous architecture powerpc et le répertoire /sw/lib/x86_64 sous architecture i386. Les bibliothèques combinées (fat) doivent être enregistrées dans le répertoire /sw/lib.

/sw/share

Ce répertoire sert aux fichiers de données indépendants de l'architecture. Les mêmes règles que celles en vigueur pour /sw/lib s'appliquent ici. Quelques sous-répertoires courants sont décrits ci-dessous.

/sw/share/man

Ce répertoire contient les pages de manuel. Son arborescence suit celle des sections courantes. Chaque programme installé dans /sw/bin et /sw/sbin doit avoir une page de manuel associée dans ce répertoire.

/sw/share/info

Ce répertoire contient la documentation en format Info (produit à partir de sources Texinfo). La maintenance du fichier dir est automatisée par la version Debian du programme install-info (qui fait partie du paquet dpkg). Utilisez le champ de description InfoDocs pour générer le code approprié utilisé par les scripts de paquet postinst et prerm. Fink s'assure qu'aucun paquet n'installe un fichier dir de lui-même. Il n'y a pas de sous-répertoire.

/sw/share/doc

Ce répertoire contient la documentation autre que les pages de manuel ou les documents Info. Les fichiers README, LICENSE et COPYING sont placés dans ce répertoire. Chaque paquet doit y créer un sous-répertoire, dont le nom est basé sur celui du paquet. Le nom du sous-répertoire ne doit pas contenir de numéro de version (sauf s'il fait lui-même partie du nom du paquet). Conseil : utilisez %n.

/sw/share/locale

Ce répertoire contient les catalogues de messages de traduction.

/sw/var

Le répertoire var contient les données variables. Ceci inclut les répertoires spool (fichiers en attente de traitement), les fichiers verrous (lock), les bases de données des variables d'état (db), les données variables des jeux (games) et les fichiers d'historique (log).

/sw/etc

Ce répertoire contient les fichiers de configuration. Quand un paquet possède plus d'un ou deux fichiers de configuration, un sous-répertoire doit être créé. Le nom du sous-répertoire doit être celui du paquet ou d'un de ses programmes, de façon à l'identifier facilement.

/sw/src

Ce répertoire sert à stocker et compiler le code source. Un paquet ne doit rien installer dans ce répertoire.

/sw/Applications

This directory is for storing OS X-style applications which are launched by double-clicking rather than from the command line.

/sw/Library/Frameworks

This directory is for storing OS X-style frameworks, sometimes used by OS X-style applications.

4.3 À éviter

Aucun autre répertoire que ceux mentionnés ci-dessus ne doit être créé dans /sw. En particulier, les répertoires suivant ne doivent pas être utilisés : /sw/man, /sw/info, /sw/doc, /sw/libexec et /sw/lib/locale.

Suite: 5. Compilateurs