Fink

Guide utilisateur - 6. Utilisation de l'outil fink en ligne de commande

6.1 Utilisation de l'outil fink

L'outil fink possède lui-même plusieurs commandes qui lui permettent de travailler sur les paquets de la distribution source. Certaines nécessitent au moins un nom de paquet, mais peuvent gérer plusieurs noms à la fois. Vous pouvez n'indiquer que le nom du paquet (par exemple gimp), le nom et la version (par exemple gimp-1.2.1), ou le nom, la version et la révision (par exemple gimp-1.2.1-3). Fink choisira automatiquement la version et la révision la plus récente si elles ne sont pas spécifiées. D'autres commandes possèdent des options.

Voici la liste des commandes de l'outil fink :

6.2 Options globales

Ce sont des options qui s'appliquent à toutes les commandes fink à partir de la version 0.26. Pour obtenir la liste des options, exécutez fink --help :

-h, --help : affiche ce message d'aide.

-q, --quiet : diminue le niveau de verbosité de fink, effet contraire à celui de --verbose. Prend le pas sur l'option Verbose du fichier fink.conf.

-V, --version : affiche les informations de version.

-v, --verbose : augmente le niveau de verbosité de fink, effet contraire à celui de --quiet. Prend le pas sur l'option Verbose du fichier fink.conf.

-y, --yes : applique la réponse par défaut à toutes les questions interactives.

-K, --keep-root-dir : force fink à ne pas supprimer le sous-répertoire root-[nom]-[version]-[révision] du répertoire Buildpath à la fin du processus de compilation d'un paquet. Correspond au champ KeepRootDir de fink.conf.

-k, --keep-build-dir : force fink à ne pas supprimer le sous-répertoire [nom]-[version]-[révision] du répertoire Buildpath à la fin du processus de compilation d'un paquet. Correspond au champ KeepBuildDir de fink.conf.

-b, --use-binary-dist : télécharge les paquets pré-compilés de la distribution binaire s'ils sont disponibles (pour réduire le temps de compilation ou l'encombrement du disque par exemple). Notez que, dans ce mode, fink télécharge la version requise d'un paquet, si elle est disponible, mais ne force pas fink à choisir la version en fonction de sa disponibilité binaire. Correspond à l'option UseBinaryDist de fink.conf.

--no-use-binary-dist : n'utilise pas les paquets pré-compilés de la distribution binaire (inverse de l'option --use-binary-dist). C'est l'option par défaut, à moins qu'elle ait été changée dans le fichier de configuration fink.conf via une ligne UseBinaryDist: true.

--build-as-nobody : utilise un utilisateur n'ayant pas de super privilèges pendant les phases de décompression, rustine, compilation et installation. Notez que les paquets avec cette option peuvent ne pas fonctionner. Vous ne devez utiliser ce mode que pour le développement ou le débogage des paquets.

-m, --maintainer : permet aux mainteneurs de paquets d'effectuer certaines opérations, telle la validation des fichiers .info avant la compilation et des fichiers .deb après la construction d'un paquet. Certains messages d'attention deviennent alors des messages d'erreur. Disponible à partir de la version 0.25 de fink. À partir de la version 0.26.0 de fink, cette option active également les options --tests et --validate, ce qui entraîne l'exécution des séries de tests spécifiés dans le champ correspondant.

--tests[=on|off|warn] : entraîne l'activation des champs InfoTest et l'exécution des séries de tests spécifiés dans le script TestScript. Voir Guide de création de paquets de Fink). Si l'option ne comporte aucun argument ou si son argument est on, alors les erreurs sur la série de tests seront considérées comme des erreurs fatales de construction du paquet. Si l'argument est warn, les erreurs sur la série de tests seront traités comme des messages d'attention. Disponible à partir de la version 0.26 de fink.

--validate[=on|off|warn] : permet de valider le paquet pendant sa construction. Si l'option ne comporte aucun argument ou si son argument est on, alors les erreurs de validation seront considérées comme des erreurs fatales de construction du paquet. Si l'argument est warn, les erreurs sur la validation seront traités comme des messages d'attention.

-l, --log-output : sauvegarde une copie de la sortie terminal lors de la compilation de paquets. Par défaut, le fichier est enregistré sous le nom de /tmp/fink-build-log_[nom]-[version]-[révision]_[date]-[heure], avec la date sous la forme année.mois.jour et l'heure sous la forme heure.minutes.secondes. Vous pouvez utiliser l'option --logfile pour changer le nom de la sauvegarde.

--no-log-output : ne sauvegarde pas la copie de la sortie terminal lors de la compilation de paquets. Inverse de l'option --log-output. C'est l'option par défaut.

--logfile=nomdefichier : sauvegarde les logs de compilation dans le fichier nomdefichier au lieu de les sauvegarder dans le fichier par défaut (voir l'option --log-output, qui attribue implicitement une valeur par défaut à l'option --logfile). On peut utiliser les raccourcis pour inclure automatiquement des données spécifiques aux paquets. Voir la liste complète des raccourcis dans Création de paquets Fink. Voici quelques raccourcis couramment utilisés :

-t, --trees=expr : ne tient compte que des paquets des arborescences qui correspondent à expr. expr est une liste d'arborescences séparées par des virgules. fink compare les arborescences existantes dans le fichier fink.conf à celles de expr. Seules les arborescences existantes dans les deux sources sont prises en compte. L'ordre de prise en compte dépend du résultat de la comparaison. Si aucune option --trees n'est utilisée, toutes les arborescences existantes dans le fichier fink.conf sont prises en compte dans l'ordre où elles existent dans ce fichier. Si l'arborescence dans expr contient une barre inclinée (/), la comparaison est faite de façon stricte. Dans le cas contraire, la comparaison a lieu sur le premier élément du chemin de l'arborescence. Par exemple, --trees=unstable/main correspond strictement à l'arborescence unstable/main, mais --trees=unstable correspond aux deux arborescences unstable/main et unstable/crypto. Certaines spécifications spéciales peuvent être incluses dans expr :

L'exclusion (ou l'échec d'inclusion) de ces spécifications spéciales n'est actuellement gérée que pour les opérations qui n'installent pas ou ne suppriment pas de paquets.

-T, --exclude-trees=expr : ne prend en compte que les paquets des arborescences qui ne correspondent pas à expr. La syntaxe est la même que celle de l'option --trees, y compris les spécifications spéciales. Néanmoins, ici les arborescences sont exclues au lieu d'être incluses. Notez que les arborescences correspondant à la fois à --trees et --exclude-trees sont exclues.

Exemples d'options --trees et --exclude-trees :

La plupart de ces options ne nécessite pas d'explication supplémentaire. La plupart d'entre elles peuvent être configurées dans le fichier de configuration de Fink (fink.conf) si vous souhaitez les rendre permanentes et non pas restreindre leur effet à une seule invocation de fink.

6.3 install - installation

La commande install est utilisée pour installer des paquets. Elle télécharge, configure, compile et installe les paquets désirés. Elle installe aussi automatiquement les dépendances requises, mais vous demande confirmation avant de le faire. Exemple :

fink install nedit

Reading package info... Information about 131 packages read. 
The following additional package will be installed:
 lesstif
Do you want to continue? [Y/n]

Ici fink lit les fichiers d'information des paquets, donne le nombre de fichiers lus, signale que le paquet lesstif sera téléchargé si vous donnez votre accord.

L'utilisation de l'option --use-binary-dist avec la commande fink install permet de gagner un temps considérable lors de la construction de paquets complexes.

Les alias de la commande install sont : update, enable, activate, us (la plupart du temps pour des raisons historiques).

6.4 remove - suppression

La commande remove supprime les paquets du système en appelant la commande 'dpkg --remove'. L'implantation actuelle de cette commande a un défaut : elle ne vérifie pas elle-même les dépendances, mais délègue ce travail à l'outil dpkg (en général, cela ne pose pas de problèmes).

La commande remove ne supprime que le paquet lui-même (à l'exclusion des fichiers de configuration). Le paquet compressé .deb reste sur le système. Ceci signifie que vous pouvez réinstaller le paquet plus tard, sans avoir à le recompiler. Si vous avez besoin de libérer de l'espace disque, vous pouvez supprimer les fichiers .deb de l'arborescence /sw/fink/dists.

Les options suivantes peuvent être utilisées avec la command fink remove :

-h, --help
    Affiche les options disponibles.
-r, --recursive
    Supprime aussi les paquets qui
    dépendent du paquet à supprimer
    (c'est-à-dire résout le défaut
    signalé ci-dessus).

Alias : disable, deactivate, unuse, delete.

6.5 purge

La commande purge supprime les paquets du système. Elle agit de la même façon que la commande remove, mais elle supprime en plus les fichiers de configuration.

Cette commande accepte les options suivantes :

-h, --help
-r, --recursive

6.6 update-all - tout mettre à jour

Cette commande met à jour tous les paquets installés. Elle n'utilise pas de liste de paquets, il suffit de lancer :

fink update-all

L'option --use-binary-dist peut s'avérer utile avec cette commande.

6.7 list - liste

Cette commande donne la liste des paquets disponibles, leur statut d'installation, la dernière version disponible et une courte description. Appelée sans paramètres, elle affiche tous les paquets disponibles. Vous pouvez aussi l'utiliser avec un nom ou une expression régulière acceptée par le shell, Fink donnera alors la liste de tous les paquets correspondants.

La première colonne affiche le statut d'installation qui s'interprète de la façon suivante :

    non installé
 i    dernière version installée
(i)   installé, mais une version plus récente est disponible
 p    paquet virtuel fourni par un paquet installé

La colonne version affiche toujours la dernière version connue du paquet, quelque soit la version installée éventuellement. Pour connaître toutes les versions d'un paquet disponible sur votre système, utilisez la commande dumpinfo.

Voici quelques-unes des options de la commande fink list :

-h, --help
    Affiche les options disponibles. 
-t, --tab
    Affiche la liste en séparant les divers éléments 
    d'une ligne par une tabulation,
    utile en cas d'utilisation à l'intérieur d'un script. 
-i, --installed
    N'affiche que les paquets installés. 
-o, --outdated
    N'affiche que les paquets obsolètes. 
-u, --uptodate
    N'affiche que les paquets à jour. 
-n, --notinstalled
    Affiche les paquets qui ne sont pas installés. 
-s expr, --section=expr
    Affiche les paquets dans les sections correspondant 
    à l'expression régulière fournie. 
-m expr, --maintainer=expr
    Affiche les paquets dont le mainteneur correspond
    à l'expression régulière fournie.
-w=xyz, --width=xyz
    Fixe la largeur de l'affichage. xyz est soit une 
    valeur numérique, soit auto. 
    auto correspond à la largeur du terminal. 
    La valeur par défaut est auto.

Quelques exemples d'utilisation :

fink list
    Affiche tous les paquets.
fink list bash
    Vérifie si bash est installé et affiche la 
    version installée.
fink list --tab --outdated | cut -f 2     
    Affiche le nom des paquets obsolètes.
fink list --section=kde 
    Affiche les paquets de la section kde.
fink list --maintainer=fink-devel
    Affiche les paquets sans mainteneur.
fink --trees=unstable list --maintainer=fink-devel
    Affiche les paquets sans mainteneur 
    de l'arborescence unstable.
fink list "gnome*"
    Affiche tous les paquets dont le nom 
    commence par 'gnome'.

Dans le dernier exemple, les guillemets sont nécessaires pour empêcher le shell d'interpréter le modèle lui-même.

6.8 apropos - à propos

Cette commande est presque identique à la commande fink list. La différence la plus notable est que fink apropos recherche aussi dans les fichiers de descriptions de paquets pour trouver les paquets. La seconde différence est que la chaîne de recherche n'est pas optionnelle, elle doit être fournie.

fink apropos irc
    Affiche tous les paquets où 'irc' apparaît 
    soit dans le nom, soit dans la description.
fink apropos -s=kde irc
    Identique au précèdent, mais restreint aux 
    paquets de la section kde.

6.9 describe - description

Cette commande affiche la description du paquet nommé sur la ligne de commande. Notez, qu'à l'heure actuelle, seule une faible part des paquets ont une description.

Alias : desc, description, info

6.10 plugins

Afficher les plugins supplémentaires disponible pour le programme fink. À l'heure actuelle affiche les mécanismes de notification et les algorithmes de vérification de somme des archives sources.

6.11 fetch - téléchargement

Télécharge les paquets nommés, mais ne les installe pas. Cette commande télécharge les archives tar, même si elles ont déjà été téléchargées.

Vous pouvez utiliser les options suivantes avec la commande fetch :

-h, --help
    Affiche les options disponibles. 
-i, --ignore-restrictive
    Ne télécharge pas les paquets dont la licence 
    est "Restrictive".
    Intéressant pour les miroirs, car certains 
    paquets interdisent le miroir source.
-d, --dry-run
    Affiche simplement des informations sur les 
    fichiers à télécharger.
    Ne télécharge rien.
-r, --recursive
    Télécharge également les paquets dépendants 
    des paquets à télécharger.

6.12 fetch-all - tout télécharger

Télécharge tous les paquets sous forme source. Comme fetch, cette commande télécharge les archives tar, même si elle ont déjà été téléchargées.

Les options suivantes peuvent être utilisées avec la commande fink fetch-all :

-h, --help
-i, --ignore-restrictive
-d, --dry-run

6.13 fetch-missing - télécharger paquets manquants

Télécharge tous les paquets manquants sous forme source. Cette commande ne télécharge que les paquets qui ne sont pas présents sur le système.

Les options suivantes peuvent être utilisées avec la commande fink fetch-missing :

-h, --help
-i, --ignore-restrictive
-d, --dry-run

6.14 build - compiler

Construit un paquet, mais ne l'installe pas. Les archives tar source sont téléchargées si elles ne sont pas présentes sur le système. La commande construit un paquet .deb que vous pourrez installer ultérieurement avec la commande install. Cette commande n'a aucun effet si le fichier .deb existe déjà. Notez que, contrairement au paquet, les dépendances sont, elles, installées.

L'option --use-binary-dist peut être utilisée ici.

6.15 rebuild - recompiler

Construit un paquet (tout comme la commande build), mais ignore et écrase le fichier .deb existant. Si le paquet est installé, le nouveau fichier .deb sera lui aussi installé dans le système via dpkg. Très utile pendant la phase de développement du paquet.

6.16 reinstall - réinstaller

Identique à install, mais installe le paquet via dpkg, même s'il est déjà installé. Vous pouvez utiliser cette commande si vous supprimez involontairement des paquets, ou bien si vous changez les fichiers de configuration et que vous voulez retrouver la configuration par défaut.

6.17 configure - configurer

Réexécute le processus de configuration de fink. Cela vous permet de changer les sites miroirs et les configurations proxy, entre autres.

À partir de la version 0.26 de fink, cette commande vous permet aussi d'activer les arborescences instables.

6.18 selfupdate - mise à jour automatique

Cette commande automatise le processus de mise à jour de Fink. Elle vérifie si une nouvelle version existe sur le site web de Fink, télécharge ensuite les descriptions de paquets et met à jour les paquets fondamentaux, y compris fink. Cette commande met à jour les versions standards, mais peut aussi configurer votre arborescence /sw/fink/dists de telle sorte qu'elle soit mise à jour directement via CVS, ou avec rsync, si vous choisissez l'une de ces options lors de la première utilisation de cette commande. Vous avez alors accès aux toutes dernières versions des paquets.

Si l'option --use-binary-dist option est activée, la liste des paquets disponibles dans la distribution binaire est, elle aussi, mise à jour.

6.19 selfupdate-rsync

Utilisez cette commande pour faire en sorte que la commande fink selfupdate utilise rsync pour mettre à jour la liste des paquets de fink.

Nous vous recommandons d'utiliser cette méthode quand vous compilez à partir des sources.

Note : les mises à jour via rsync ne mettent à jour que les arborescences (par exemple, si instable n'est pas activé dans le fichier fink.conf, la liste des paquets instables ne sera pas mise à jour).

6.20 selfupdate-cvs

Utilisez cette commande pour faire en sorte que la commande fink selfupdate utilise cvs pour mettre à jour la liste des paquets de fink.

La mise à jour via cvs est obsolète, sauf pour les développeurs et les personnes dont les murs pare-feux interdisent l'utilisation de rsync.

6.21 index - indexer

Reconstruit le cache des paquets. Normalement, vous n'avez pas besoin d'exécuter cette commande manuellement, car fink est censé détecter automatiquement s'il est besoin de reconstruire le cache.

6.22 validate - valider

Cette commande exécute différents contrôles sur les fichiers .info et .deb. Les mainteneurs de paquets doivent l'exécuter sur leurs descriptions de paquets et sur les paquets construits avant de les soumettre.

Les options suivantes peuvent être utilisées :

-h, --help
    Affiche les options disponibles.
-p, --prefix
    Simule un autre préfixe de chemin de base 
    de Fink (%p) pour les fichiers à valider.
--pedantic, --no-pedantic
    Contrôle l'affichage des messages d'attention.
    --pedantic est l'option par défaut.

Alias : check

6.23 scanpackages - création de fichiers Packages

Met à jour la base de données des paquets de apt-get. Par défaut, met à jour toutes les arborescences, mais peut être restreinte à un jeu d'une ou plusieurs arborescences données comme arguments de cette commande.

6.24 cleanup - épuration

Supprime les fichiers obsolètes et temporaires. Cela peut libérer une grande portion d'espace disque. On peut spécifier un ou plusieurs modes :

--debs
    Supprime les fichiers .deb
    (archives de paquets binaires compilés)
    correspondant aux versions de paquets
    qui ne sont ni décrits dans un fichier
    de description de paquets (fichier .info)
    dans les arborescences actives ni
    installés.
--sources,--srcs
    Supprime les sources (archives tarballs, etc...)
    qui ne sont utilisés par aucun fichier de 
    description de paquets (fichier .info)
    dans les arborescences activées.
--buildlocks, --bl
    Supprime les anciens paquets de 
    verrouillage de compilation.
--dpkg-status
    Supprime dans la base de données
    "status" de dpkg les paquets qui
    ne sont pas installés.
--obsolete-packages 
    Tenre de désinstaller tous les paquets
    obsolètes installés.
    À partir de la version 0.26.0 de fink.
--all
    Active tous les modes.
    À partir de la version 0.26.0 de fink.

Si aucun mode n'est spécifié, les modes par défaut utilisés sont --debs --sources.

De plus, on peut utiliser les options suivantes :

-k,--keep-src
    Déplace les anciens fichiers sources
    dans le répertoire /sw/src/old/
    au lieu de les supprimer.
-d,--dry-run
    Affiche le nom des fichiers à supprimer,
    mais ne les supprime pas.
-h,--help
    Affiche les modes et options existantes.

Si l'option --use-binary-dist est activée, les paquets binaires téléchargés obsolètes sont supprimés et la commande fink scanpackages est exécutée.

6.25 dumpinfo - analyse des fichiers info

Note : disponible dans une version de fink postérieure à la version 0.21.0.

Affiche l'analyse syntaxique des différentes parties d'un fichier .info d'un paquet. Les options suivantes permettent de moduler l'affichage des champs et l'interprétation des raccourcis :

-h, --help           
    Affiche les options disponibles. 
-a, --all
    Affiche tous les champs de description du paquet.
    C'est le mode par défaut quand aucune option 
    --field ou --percent n'est utilisée. 
-f nomchamp, --field=nomchamp
    Affiche le contenu des champs indiqués
    dans leur ordre d'apparition après l'option -f. 
-p clé, --percent=clé
    Affiche l'interprétation des clés fournies
    dans leur ordre d'apparition après l'option -p.

6.26 show-deps - affiche les dépendances

Disponible uniquement à partir de la version 0.23.6 de fink.

Affiche, sous une forme compréhensible, la liste des dépendances à la compilation (construction du paquet) et à l'exécution (installation du paquet).