Available Languages: | English | Español | Français | 日本語 (Nihongo) | Русский (Russkiy) | 中文 (简) (Simplified Chinese) |

Fink - Q.F.P.

Voici la liste des questions fréquemment posées sur Fink. Comme la plupart des QFP, une partie correspond à des questions réelles, d'autres ont été élaborées spécialement pour ces QFP. Il s'agit en fait d'un document écrit dans le style question-réponse.

Ces QFP comprennent plusieurs pages, une par chapitre. Le sommaire ci-dessous donne la liste de toutes les questions ainsi qu'un lien pour chacune d'elles.

Contents

1 Questions générales

Q1.1: Qu'est-ce que Fink ?

A: La raison d'être de Fink est d'offrir un maximum de logiciels UNIX sur Mac OS X, ce qui se traduit par deux objectifs majeurs :

L'objectif principal est de porter des logiciels sur Mac OS X. Cela signifie que nous prenons des logiciels Open Source Unix et corrigeons ce qui est nécessaire pour qu'ils compilent et tournent sur Mac OS X. Parfois la tâche est simple, mais elle peut être très difficile, voire impossible, pour certains paquets. Nous essayons de fournir des outils et des documents pour la simplifier.

L'objectif secondaire est de mettre le résultat à disposition d'utilisateurs occasionnels. Pour ce faire, nous créons une distribution en utilisant des outils de gestion de paquets portés depuis Linux, à savoir dpkg et apt-get, écrits par et pour le projet Debian GNU/Linux. La distribution binaire utilise le format de paquet .deb. Pour construire les paquets à partir du source, nous utilisons notre propre outil, nommé fink, qui construit ces fichiers de paquet .deb.

Q1.2: Que signifie Fink ?

A: Rien en particulier, ce n'est qu'un nom, même pas un acronyme.

En fait, Fink est le mot allemand désignant un fringillidé, une espèce d'oiseau. Je cherchais un nom pour le projet et le nom du système opératoire, Darwin, m'a fait penser à Charles Darwin, aux îles Galápagos et à l'évolution des espèces. Je me suis souvenu, qu'à l'école, nous avions étudié un passage sur les fringillidés pseudo-darwiniens et leurs becs, d'où le nom...

Q1.3: En quoi Fink se différencie-t-il du mécanisme de portage BSD (qui comprend OpenPackages et GNU-Darwin) ?

A: Avantages principaux de Fink :

Q1.4: Pourquoi Fink n'installe-t-il rien dans le répertoire /usr/local ?

A: Il y a plusieurs raisons à cela, mais toutes reposent sur le fait que "cela occasionnerait des failles dans le système".

Première raison : les logiciels de tierce partie. Le répertoire /usr/local est réservé à l'installation des logiciels qui ne font pas partie du système fourni par le vendeur initial. C'est donc l'endroit idéal pour installer quelque chose. Mais, c'est aussi là que d'autres vendeurs installeront leurs logiciels. La plupart des routines d'installation viendront écraser ce qui y est déjà - cela est vrai aussi pour dpkg. On peut, bien sûr, choisir de ne pas installer de logiciels de tierce partie dans le répertoire /usr/local. Malheureusement, la plupart des routines d'installation ne signalent pas à l'avance ce qu'elles installent ni où elles l'installent.

Deuxième raison : la variable d'environnement PATH contient par défaut le répertoire /usr/local/bin. Il s'ensuit que votre shell trouve les programmes qui y sont installés sans que vous ayez à intervenir. A contrario, vous devrez intervenir si vous ne souhaitez pas utiliser ces programmes. Au pire, cela affecte le système lui-même - de nombreuses parties du système reposent sur des scripts shell.

Troisième raison : l'ensemble des outils de compilation effectuent par défaut leurs recherches dans le répertoire /usr/local. Le compilateur cherche les headers dans le répertoire /usr/local/include et l'éditeur de liens cherche les bibliothèques dans le répertoire /usr/local/lib. C'est quelquefois très pratique, mais très difficile à désactiver si le besoin s'en fait sentir. On peut facilement désactiver le compilateur en mettant dans le répertoire /usr/local/include un fichier parasite auquel on donne le nom de stdio.h.

Ceci dit, il est possible d'installer Fink dans le répertoire /usr/local. Le script d'installation vous avertira que, si vous le faites, ce sera à vos risques et périls, mais continuera l'installation après votre accord.

Q1.5: Pourquoi avoir choisi le répertoire /sw ?

A: Ce choix est tout-à-fait arbitraire, mais il est vraisemblable qu'il demeure le même, au moins dans un avenir prévisible, tant pour des raisons pratiques (mise à niveau) que par le fait qu'il n'entre en conflit avec aucun autre système de paquets.

2 Relations avec d'autres projets

Q2.1: Envoyez-vous aux mainteneurs situés en amont de vous les rustines que vous faites ?

A: Nous essayons. Parfois, c'est facile et tout le monde en profite à la prochaine version du paquet. Malheureusement, ce n'est pas toujours si simple avec la plupart des paquets. Quelques problèmes courants :

Q2.2: Quelles sont vos relations avec le projet Debian ? Portez-vous Debian Linux sur Mac OS X ?

A: Il n'y a pas de relation officielle entre Fink et Debian. Fink n'est pas un port de la distribution Debian GNU/Linux. Mais, nous avons porté les outils de gestion de paquet de Debian (dpkg, dselect, apt-get) et nous les utilisons ainsi que le format de paquet binaire .deb. Nos paquets sont faits sur mesure pour Mac OS X / Darwin et n'utilise pas le format de paquet source Debian.

Q2.3: Quelles sont vos relations avec Apple ?

A: Apple sait que Fink existe et nous a apporté son soutien dans le cadre de ses relations avec les projets Open Source. Durant l'été et l'automne 2001, Apple nous a fourni les sources des pré-versions de Mac OS X dans l'espoir que les paquets Fink puissent être adaptés à temps pour la version officielle. Citation : "Nous espérons que cela mettra en évidence notre engagement, que d'aucuns mettent en doute. Nous nous affirmerons dans les projets open source au fil du temps." Merci Apple !

Q2.4: Quelles sont vos relations avec DarwinPorts ?

A: DarwinPorts et Fink sont des projets complémentaires. Certaines parties se recouvrent et plusieurs personnes contribuent aux deux projets. Benjamin Reed, par exemple, fait les paquets KDE pour les deux. DarwinPorts et Fink peuvent utiliser les rustines de l'un ou l'autre projet et nous envisageons une collaboration sur un nouveau moteur de dépendances.

DarwinPorts est parti de rien pour tenter de créer un nouveau système d'empaquetage. Lire les objectifs du projet sur la page d'Accueil DarwinPorts.

3 Miroirs de Fink

Q3.1: Qu'est-ce qu'un miroir Fink ?

A: Un miroir Fink est un serveur rsync qui reflète les fichiers de description actuels et stables que Fink utilisent pour construire les paquets à partir du source.

Q3.2: Pourquoi utiliser des miroirs rsync ?

A: Rsync est un protocole très rapide. Il met à jour les fichiers de description plus vite que l'ancienne méthode de mise à jour via CVS. De plus, les mises à jour via CVS sont toujours faites à partir de sourceforge.net, tandis que les mises à jour via rsync peuvent être faites à partir d'un miroir proche de votre lieu de téléchargement.

Q3.3: Où trouver de plus amples informations sur les miroirs Fink ?

A: Tous les miroirs Fink sont fusionnés sous le nom de domaine finkmirrors.net. Vous trouverez de plus amples informations sur le site web http://finkmirrors.net/.

Q3.4: Il est impossible de se connecter au serveur rsync. Que faire ?

A: Il arrive que certains murs pare-feu particulièrement efficaces vous empêchent de vous connecter à des services rsync. Dans ce cas, continuez à utiliser la méthode CVS.

Q3.5: Après passage à la méthode rsync, tous les fichiers info des arborescences inutilisées ont disparu. Que se passe-t-il ?

A: C'est normal. La méthode rsync ne met à jour que l'arborescence active, par exemple 10.3, et supprime tous les répertoires CVS.

Q3.6: Comment passer d'une méthode à une autre à volonté ?

A: En utilisant fink selfupdate-rsync pour passer à la méthode rsync ou fink selfupdate-cvs pour passer à la méthode CVS.

Q3.7: Comment connaître l'état actuel des miroirs rsync ?

A: Allez sur http://finkmirrors.net/status.html

Q3.8: Qu'est-ce qu'un miroir Distfiles ?

A: Il est parfois difficile de trouver une version précise d'un source sur Internet. Les miroirs Distfiles stockent les paquets source nécessaires à fink pour construire ses paquets source. Ils font aussi office de miroir.

4 Mise à jour de Fink (Résolution de problèmes spécifiques à une version donnée)

Q4.1: Après passage à la version 0.16.0, fink considère la version du compilateur gcc 3.3 installée sur le système comme obsolète. Que faire ?

A: À partir de Panther, Fink a été mis à jour pour fonctionner avec le nouveau compilateur gcc 3.3. Pour pouvoir gérer à la fois 10.2 (Jaguar) et 10.3 (Panther), il faut que tous les utilisateurs installent la dernière mise à jour de gcc 3.3 (mise à jour d'août 2003 pour les utilisateurs de Jaguar, outils XCode de Panther pour les utilisateurs de Panther). Ce message d'alerte apparaîtra si vous avez installé la béta précédente de XCode correspondant aux Developer Tools de décembre 2002 pour Max OS X 10.2. Si vous utilisez 10.2, la commande :

gcc --version

vous dira quelle version est installée sur votre système. À partir du 24 octobre 2003, il faut avoir le build 1493 ou supérieur.

Les utilisateurs de 10.2 peuvent télécharger la mise à jour d'août 2003 sur Apple Developer Connection (enregistrement gratuit obligatoire).

Les utilisateurs de 10.3 doivent installer les outils de développement compatibles avec Panther (c'est-à-dire XCode). Vous devez trouver un CD contenant XCode parmi ceux reçus avec Panther.

Q4.2: Aucune mise à jour de paquets de Fink n'a eu lieu depuis un moment. Que faire ?

A: Vérifiez la version de fink avec la commande suivante :

fink --version

Il existe un problème dans fink-0.22.0, qui fait que la mise à jour par rsync ne fonctionne plus. Pour mettre à jour fink, passez à la mise à jour via CVS avec la commande suivante :

fink selfupdate-cvs	

Cela vous permettra de passer à une nouvelle version de fink. Une fois cela fait, nous vous recommandons de revenir au mode de mise à jour par rsync avec la commande suivante :

fink selfupdate-rsync

5 Installation, Utilisation et Mise à jour de Fink

Q5.1: Comment savoir quels sont les paquets gérés par Fink ?

A: Depuis la version 0.2.3 de Fink, la commande list vous permet de le savoir. Cette commande produit une liste de tous les paquets connus de votre installation de Fink. Exemple :

fink list

Si vous utilisez la distribution binaire, dselect vous donne une liste des paquets disponibles dans laquelle vous pouvez naviguer. Remarque : vous devez utiliser la commande sudo si vous voulez sélectionner et installer des paquets avec dselect.

Il y a aussi la base de données de paquets sur le site web.

Q5.2: Comment configurer fink pour utiliser un proxy HTTP quand on est derrière un mur pare-feu ?

A: La commande fink permet de prendre en compte des réglages de proxy qui seront utilisés par wget et curl. Si on ne vous a pas posé de question sur vos réglages de proxies lors de la première installation, vous pouvez taper fink configure pour les régler. Vous pouvez aussi utiliser cette commande à n'importe quel moment pour reconfigurer la commande fink. Si vous avez suivi les instructions du guide d'installation et utilisé /sw/bin/init.csh (ou /sw/bin/init.sh), alors apt-get et dselect utiliseront aussi ces réglages de proxies. Assurez-vous d'avoir bien indiqué le protocole utilisé, par exemple :

ftp://proxy.votresite.quelquepart

Si vous avez toujours des problèmes, allez dans Préférences système, cliquez sur Réseaux, sélectionnez l'onglet proxies et vérifiez que la case "Utiliser le mode FTP passif (PASV)" est cochée.

Q5.3: Comment mettre à jour les paquets disponibles sur CVS lorsqu'on utilise un mur pare-feu ?

A: Le paquet cvs-proxy peut créer un tunnel à travers les proxies HTTP.

Si Fink n'est pas configuré pour utiliser un proxy, changez les réglages en utilisant :

fink configure.

Q5.4: Est-il possible de déplacer Fink vers un autre dossier après l'installation ?

A: Non. Vous pouvez bien sûr déplacer les fichiers en utilisant mv ou le Finder, mais 99% des programmes ne fonctionneront plus si vous faites cela. En effet, la majorité des programmes Unix utilisent des chemins d'accès directement inclus dans le fichier binaire pour accéder,entre autres, à des données et des bibliothèques.

Q5.5: Est-ce que Fink fonctionnera correctement si on le déplace après installation et que l'on crée un lien symbolique vers son ancien emplacement ?

A: Peut-être. On peut supposer que le fonctionnement sera correct dans l'ensemble, mais il y aura certainement des problèmes ici ou là.

Q5.6: Comment désinstaller Fink complètement ?

A: Presque tous les fichiers installés par fink se trouvent dans le répertoire /sw (ou bien l'endroit où vous avez choisi de faire l'installation). Donc, pour supprimer Fink, entrez cette commande :

sudo rm -rf /sw

Les seules exceptions à cette règle concernent XFRee86 et X.org. Si vous avez installé un serveur X via Fink (vous avez, par exemple, installé le paquet xfree86 ou xfree86-rootless, ou encore xorg au lieu d'utiliser system-xfree86) et que vous voulez le supprimer, vous devrez aussi saisir ceci :

sudo rm -rf /usr/X11R6 /etc/X11 /Applications/XDarwin.app

Si vous ne pensez pas réinstaller Fink, vous pouvez aussi supprimer, en utilisant un éditeur de texte, la ligne "source /sw/bin/init.csh" que vous aviez ajoutée dans le fichier .cshrc ou la ligne "source /sw/bin/init.sh" que vous aviez ajoutée dans le fichier .bashrc, selon vos réglages.

Q5.7: La base de données des paquets sur le site web mentionne le paquet xxx, mais apt-get ou dselect eux ne le mentionnent pas. Qui a raison ?

A: Ils ont tous raison. La base de données des paquets donne la liste de tous les paquets, même ceux qui sont encore dans la section instable. Les outils dselect et apt-get, de leur côté, donnent la liste des paquets disponibles en tant que binaires précompilés. De nombreux paquets ne sont pas disponibles sous forme précompilée via ces outils pour diverses raisons. Un paquet doit être dans la section "stable" de la dernière mise à jour de Fink pour être pris en compte, et il doit, de plus, passer avec succès un certain nombre de tests relatifs aux règles de fink et aux restrictions de licences et brevets.

Si vous voulez installer un paquet qui n'est pas disponible via dselect ou apt-get, vous devez le compiler à partir du code source en utilisant fink install nom_du_paquet. Vérifiez que vous avez installé les Developer Tools avant d'essayer ceci. (S'il n'y a pas d'installeur pour les Developer Tools dans votre répertoire /Applications , vous pouvez les télécharger gratuitement sur Apple Developer Connection après enregistrement). Voir aussi la question suivante à propos des paquets instables.

Q5.8: Comment installer un paquet instable quand la commande fink ne le trouve pas (message en anglais : 'no package found') ?

A: Assurez-vous d'abord de savoir ce que signifie 'instable'. Il existe de nombreuses raisons pour lesquelles un paquet de l'arborescence instable n'est pas mis dans l'arborescence stable. Il se peut qu'il souffre de problèmes connus, qu'il y ait des erreurs de validation, ou simplement qu'un nombre insuffisant de personnes ait signalé qu'il fonctionne correctement. C'est pourquoi Fink ne recherche pas dans cette arborescence par défaut.

Si vous décidez d'activer l'arborescence instable, pensez à envoyer un courriel au responsable du paquet si quelque chose fonctionne (ou ne fonctionne pas). Ce sont vos réactions qui nous permettent de décider si un paquet peut entrer dans l'arborescence stable ! Pour connaître le mainteneur du paquet, lancez la commande fink info <nom_du_paquet>.

À partir de la version 0.26.0 de fink : vous pouvez activer l'arborescence instable via la commande fink configure. Il vous faudra ensuite exécuter les commandes : fink selfupdate; fink index; fink scanpackages. Note : il faut activer également la mise à jour via rsync ou cvs pour obtenir les nouvelles descriptions de paquets.

Si vous avez une version de fink antérieure à la version 0.26.0, modifiez le fichier /sw/etc/fink.conf : ajoutez unstable/main et unstable/crypto à la ligne Trees:, puis exécutez les commandes fink selfupdate; fink index; fink scanpackages.

Notez également que, si vous ne souhaitez installer que quelques paquets instables spécifiques et leurs dépendances, vous ne devez pas utiliser la commande update-all tant que vous n'êtes pas revenu à l'utilisation de l'arborescence stable.

Q5.9: Faut-il vraiment activer toute l'arborescence instable pour n'installer qu'un seul paquet instable ?

A: Non, mais c'est fortement recommandé. Le mélange des genres peut créer des effets inattendus et rendre difficile un éventuel débogage.

Ceci dit, si vous ne voulez installer qu'un ou deux paquets instables spécifiques, vous devez changer vos réglages pour utiliser la mise à jour CVS (c'est-à-dire utiliser fink selfupdate-cvs), car rsync ne met à jour que les arborescences activées dans le fichier fink.conf. Éditez le fichier /sw/etc/fink.conf et ajoutez local/main à la ligne Trees:, si elle n'y figure pas déjà. Vous devrez alors exécuter fink selfupdate pour télécharger les fichiers de description des paquets. Copiez ensuite les fichiers .info qui vous intéressent (et leurs fichiers .patch associés, s'ils existent) à partir des sous-répertoires du répertoire /sw/fink/dists/unstable/main/finkinfo (ou à partir du répertoire /sw/fink/dists/unstable/crypto/finkinfo) dans le répertoire /sw/fink/dists/local/main/finkinfo. Notez cependant que votre paquet peut dépendre d'autres paquets (ou de versions particulières de paquets) qui sont uniquement présents dans l'arborescence instable. Vous devrez alors déplacer aussi leurs fichiers .info et .patch associés. Après avoir déplacé tous les fichiers, lancez la commande fink index pour que l'index des paquets disponibles de Fink soit mis à jour. Vous pourrez ensuite utiliser rsync à nouveau (fink selfupdate-rsync) si vous le désirez.

Q5.10: Comment ne plus avoir à saisir son mot de passe après la commande sudo ?

A: Si vous n'êtes pas paranoïaque, vous pouvez configurer sudo pour qu'il ne vous demande pas votre mot de passe. Pour cela, mettez-vous en mode super-utilisateur et lancez visudo, puis ajoutez la ligne suivante :

nomutilisateur ALL = NOPASSWD: ALL

Remplacez bien sûr nomutilisateur par votre nom d'utilisateur. Cette ligne vous permet d'exécuter n'importe quelle commande avec sudo sans saisir votre mot de passe.

Q5.11: À l'exécution de init.csh ou de init.sh, un message d'erreur signale que l'autorisation est refusée (message en anglais "Permission denied") . Que se passe-t-il ?

A: init.csh et init.sh ne doivent pas être exécutés comme les commandes habituelles. Ces fichiers définissent des variables d'environnement, tels PATH ou MANPATH, dans votre shell. Pour avoir un effet durable sur votre shell, il faut utiliser la commande source pour csh et tcsh ou la commande . pour bash et zsh, comme ceci :

pour csh/tcsh :

source /sw/bin/init.csh

pour bash/zsh :

. /sw/bin/init.sh

Q5.12: Pourquoi est-il impossible de télécharger des paquets après avoir utilisé le menu "[A]ccess" dans dselect ?

A: Vous avez certainement fait pointer apt sur un miroir Debian, qui ne contient, bien sûr, aucun des fichiers de Fink. Vous pouvez corriger cela manuellement ou via dselect. Pour le faire manuellement, modifiez en tant que super-utilisateur le fichier /sw/etc/apt/sources.list dans un éditeur de texte. Supprimez les lignes qui mentionnent debian.org et remplacez-les par celles-ci :

deb http://us.dl.sourceforge.net/fink/direct_download release \
main crypto
deb http://us.dl.sourceforge.net/fink/direct_download current main \
crypto

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

(Si vous vivez en Europe, remplacez us.dl.sourceforge.net par eu.dl.sourceforge.net)

Pour modifier avec dselect, relancez "[A]ccess", choisissez la méthode "apt" et entrez les informations suivantes :

URL: http://us.dl.sourceforge.net/fink/direct_download - Distribution: release - Components: main crypto

Ensuite, spécifiez que vous voulez ajouter une autre source et répétez la procédure avec "current" à la place de "release".

Une version modifiée du paquet apt (contenant le script de configuration en tant que plug-in de dselect) est en cours de développement dans CVS.

Q5.13: Lors de l'exécution de fink selfupdate ou de "fink selfupdate-cvs", un message signale que la mise à jour via CVS a échoué et qu'il faut examiner les messages d'erreur situés au-dessus de cette ligne (message en anglais "Updating using CVS failed. Check the error messages above."). Que faire ?

A: Si le message est le suivant :

Can't exec "cvs": No such file or directory at 
/sw/lib/perl5/Fink/Services.pm line 216, <STDIN> line 3.
### execution of cvs failed, exit code -1

alors vous devez installer les Developer Tools.

Si, par contre, la dernière ligne est la suivante :

### execution of su failed, exit code 1

vous devrez regarder plus haut pour voir l'erreur. Si vous voyez un message précisant que votre connection à été refusée :

(Logging in to anonymous@fink.cvs.sourceforge.net)
CVS password:
cvs [login aborted]: connect to fink.cvs.sourceforge.net:2401 failed: 
Connection refused
### execution of su failed, exit code 1
Failed: Logging into the CVS server for anonymous read-only access \
failed.

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

ou bien un message comme le suivant :

cvs [update aborted]: recv() from server fink.cvs.sourceforge.net: 
Connection reset by peer 
### execution of su failed, exit code 1 
Failed: Updating using CVS failed. Check the error messages above.

ou :

cvs [update aborted]: End of file received from server

ou encore :

cvs [update aborted]: received broken pipe signal

alors il est possible que le serveur CVS soit surchargé. Il vous faudra réessayer plus tard.

Il se peut que les permissions soient mal définies dans votre dossier CVS et que vous n'y ayez pas accès, ce qui génère des messages de "refus d'autorisation" (message en anglais :"Permission denied") :

cvs update: in directory 10.2/stable/main: 
cvs update: cannot open CVS/Entries for reading: No such file or \
directory
cvs server: Updating 10.2/stable/main 
cvs update: cannot write 10.2/stable/main/.cvsignore: Permission \
denied
cvs [update aborted]: cannot make directory \
10.2/stable/main/finkinfo: 
No such file or directory 
### execution of su failed, exit code 1 Failed: 
Updating using CVS failed. Check the error messages above.

Dans ce cas-là, vous devez réinitialiser votre répertoire CVS. Pour ce faire, utilisez la commande :

sudo find /sw/fink -type d -name 'CVS' -exec rm -rf {}\
; fink selfupdate-cvs

Si vous ne voyez aucun des messages ci-dessus, il est très probable que vous ayez modifié un fichier dans l'arborescence /sw/fink/dists et que le mainteneur ait modifié ce fichier. Regardez de nouveau dans le message apparu après selfupdate-cvs les lignes commençant par "C", comme :

C 10.2/unstable/main/finkinfo/libs/db31-3.1.17-6.info 
... (other info and patch files) ... 
### execution of su failed, exit code 1 
Failed: Updating using CVS failed. Check the error messages above.

La lettre "C" signifie que CVS a rencontré un problème en essayant de mettre à jour la dernière version. La solution consiste à retirer tous les fichiers info ou patch correspondant aux lignes commençant par "C" dans le message de sortie de selfupdate-cvs, et à essayer de nouveau. Par exemple :

sudo rm /sw/fink/10.2/unstable/main/finkinfo/libs/db31-3.1.17-6.info
fink selfupdate-cvs

Q5.14: Lors de l'utilisation de Fink, ma machine se fige, entre en panique noyau ou bien plante. À l'aide !

A: À l'automne 2002, de nombreuses personnes ont signalé sur la liste de diffusion fink-users des problèmes (y compris des paniques noyau ou des suspensions infinies lors de l'application d'une rustine) quand on utilise Fink pour compiler des paquets, alors qu'un anti-virus est installé. Il faut alors désactiver l'anti-virus avant d'utiliser Fink.

Q5.15: Lors de l'installation d'un paquet, Fink ne peut le télécharger. Le site de téléchargement indique une version du paquet plus récente que celle de Fink. Que faire ?

A: Les sources du paquet sont déplacées par les sites en amont quand de nouvelles versions sont publiées.

La première chose à faire est d'exécuter fink selfupdate. Il est possible que le responsable du paquet ait déjà pris ce changement en compte. Vous obtiendrez alors une mise à jour de la description du paquet soit avec une version plus récente, soit avec une nouvelle URL de téléchargement.

Si cela ne marche pas, la plupart des sources sont accessibles sur http://distfiles.master.finkmirrors.net/ (grâce à Rob Braun), et vous pouvez exécuter fink configure pour choisir les miroirs source "Master", afin que Fink s'y réfère automatiquement.

Si cela ne marche pas, veuillez informer le mainteneur du paquet (disponible via "fink describe nom_du_paquet") que l'URL n'est pas valide. Tous les mainteneurs ne lisent pas la liste de diffusion régulièrement.

Pour obtenir un source utilisable, recherchez d'abord dans les autres répertoires du site distant la version du source que Fink recherche. (par exemple dans un répertoire "old"). Rappelez-vous, cependant, que certains sites distants ne conservent pas les anciennes versions de leurs paquets. Si le site officiel ne l'a pas, recherchez sur la toile - il arrive parfois que des sites non officiels aient l'archive tar que vous cherchez. Recherchez aussi sur http://us.dl.sourceforge.net/fink/direct_download/source/. C'est là que Fink sauvegarde les fichiers source des paquets qui ont été distribués sous forme binaire. Si rien de ce qui précède ne fonctionne, postez alors un message sur la liste de diffusion fink-users pour demander si quelqu'un peut mettre à votre disposition l'ancien source.

Une fois l'archive tar adéquate repérée, téléchargez-la manuellement et placez-la dans le répertoire des sources de Fink (c'est-à-dire pour l'installation par défaut de Fink, utilisez la commande "sudo mv package-source.tar.gz /sw/src/". Puis utilisez la commande 'fink install nom_du_paquet' comme d'habitude.

Si vous n'arrivez pas à obtenir le fichier source, vous devrez alors attendre que le mainteneur se charge du problème. Il peut soit poster un lien vers une source ancienne, soit mettre à jour les fichiers .info et .patch pour utiliser la nouvelle version.

Q5.16: Le message "commande non trouvée" apparaît au lancement de Fink ou de tout autre paquet installé via Fink (message en anglais "command not found"). Que faire ?

A: Si cela se produit systématiquement, vous avez probablement modifié involontairement (ou omis de modifier) vos scripts de démarrage. Lancez le script /sw/bin/pathsetup.sh (soit en double-cliquant dans le Finder, soit dans une fenêtre de terminal). Le script tentera de deviner votre shell par défaut et y ajoutera une commande de chargement du script d'initialisation du shell de Fink dans votre configuration shell. Vous devrez alors ouvrir une nouvelle session de terminal, de façon à ce que vos paramètres d'environnement soient pris en compte. Note : dans certaines versions anciennes de fink, ce script s'appelle pathsetup.command au lieu de pathsetup.sh. Pour modifier le script de démarrage, vous pouvez également lancer l'application pathsetup.app, qui se trouve dans l'image disque de la distribution binaire de Fink.

Par contre, si cela ne se produit que dans le terminal X11 d'Apple, la meilleure solution est de modifier la définition de "Terminal" dans le menu Applications via le sous-menu Applications->Personnaliser le menu.... Au lieu de :

xterm

mettez :

xterm -ls

dans le champ commande. Ici, ls signifie login shell (c'est-à-dire shell d'ouverture de session). Il en résulte que tous les paramètres de votre ouverture de session sont utilisés (tout comme dans le Terminal de Mac OS X).

Les scripts /sw/bin/init.* font beaucoup plus qu'ajouter le répertoire /sw/bin à votre variable d'environnement PATH. La plupart des paquets ne fonctionnent pas correctement si ces scripts n'ont pas été lancés au démarrage.

Q5.17: Est-il possible de masquer le répertoire /sw dans le Finder pour éviter que les utilisateurs ne modifient les réglages de Fink ?

A: Oui. Si vous avez installé les Developer Tools, utilisez la commande suivante :

sudo /Developer/Tools/SetFile -a V /sw

Cela a pour effet de rendre invisible le répertoire /sw, tout comme le sont les autres répertoires standards utilisés par le système (/usr, etc...). Si vous n'avez pas installé les Developer Tools, il existe plusieurs applications de tierce-partie qui vous permettent de changer les attributs des fichiers - vous devez rendre le répertoire /sw invisible.

Q5.18: Il est impossible d'installer quoi que ce soit. Un message signale que l'option infodir n'est pas reconnue par la commande install-info (message en anglais "install-info: unrecognized option `--infodir=/sw/share/info'"). Que faire ?

A: Ceci est généralement lié à un problème sur la variable d'environnement PATH. Lancez dans une fenêtre de terminal :

printenv PATH

Si /sw/sbin n'apparaît pas, vous devrez alors modifier vos variables d'environnement comme expliqué dans les instructions du Guide de l'Utilisateur. Si /sw/sbin est bien là, mais qu'il y a d'autres répertoires avant (par exemple /usr/local/bin), vous devrez alors réordonner votre variable d'environnement PATH pour que /sw/sbin soit proche du début. Si vous voulez cependant que les autres répertoires soit avant /sw/sbin, et qu'ils contiennent des répertoires appelés eux aussi install-info, il faudra alors renommer temporairement ces sous-répertoires install-info quand vous utiliserez Fink.

Q5.19: Il est impossible d'installer ou de supprimer quoi que ce soit à cause d'un problème de listes de fichiers de paquets (messages en anglais contenant "files list file"). Que faire ?

A: En général, ces erreurs sont de la forme :

files list file for package nom_du_paquet contains empty filename

ou

files list file for package nom_du_paquet is missing final newline

Cela peut être corrigé relativement facilement. Si vous avez sur votre système le fichier .deb du paquet posant problème, vérifiez son intégrité en tapant la commande suivante :

dpkg --contents chemin_complet_du_fichier_deb

par exemple :

dpkg --contents /sw/fink/debs/libgnomeui2-dev_2.0.6-2_darwin\
-powerpc.deb

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

Si vous obtenez une liste de répertoires et de fichiers, votre fichier .deb est valide. Si, par contre, le résultat est différent ou si vous n'avez pas le fichier .deb, vous pouvez continuer car cette erreur n'interfère pas avec les éléments compilés.

Si vous avez fait l'installation à partir de la distribution binaire, ou bien si vous êtes certain que la version que vous avez installée est identique à celle de la distribution (vous l'avez vérifié dans la base de données des paquets), alors vous pouvez télécharger un fichier .deb en lançant sudo apt=get install --reinstall --download-only nom_du_paquet. Vous pouvez aussi le compiler vous-même avec la commande fink rebuild nom_du_paquet, mais cela ne l'installera pas.

Quand vous aurez un fichier .deb valide, vous pouvez reconstituer le fichier. Tout d'abord, mettez-vous en mode super-utilisateur en utilisant la commande sudo -s (saisissez votre mot de passe administrateur si nécessaire), puis utilisez la commande suivante :

dpkg -c chemin_complet_du_fichier_deb | awk '{if ($6 == "./")\
{ print "/."; } \
else if (substr($6, length($6), 1) == "/")\
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}'\ 
> /sw/var/lib/dpkg/info/nom_du_paquet.list

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

par exemple :

dpkg -c /sw/fink/debs/libgnomeui2-dev_2.0.6-2_darwin-powerpc.deb | \
awk \
'{if ($6 == "./") { print "/."; } \
else if (substr($6, length($6), 1) == "/") \
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}' \ 
> /sw/var/lib/dpkg/info/libgnomeui2-dev.list

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

Cela a pour effet d'extraire le contenu du fichier .deb, de tout supprimer sauf les noms de fichiers, puis de les écrire dans le fichier .list.

Q5.20: La commande dselect produit un tas de lignes incompréhensibles. Comment éviter cela ?

A: dselect et Terminal.app communiquent assez mal. Pour résoudre ce problème, vous pouvez lancer cette commande :

Utilisateurs de tcsh :

setenv TERM xterm-color

Utilisateurs de bash :

export TERM=xterm-color

avant de lancer dselect. Vous pouvez mettre ceci dans votre fichier de démarrage (par exemple .cshrc ou .profile) pour que cela se fasse automatiquement.

Q5.21: Pourquoi des erreurs du chargeur de liens dynamiques signalant des symboles perl non définis apparaissent à l'utilisation de commandes de Fink (message en anglais "dyld: perl undefined symbols") ?

A: Obsolète

Si vous voyez une erreur analogue à la suivante :

dyld: perl Undefined symbols:
_Perl_safefree
_Perl_safemalloc
_Perl_saferealloc
_Perl_sv_2pv
_perl_call_sv
_perl_eval_sv
_perl_get_sv

alors vous avez certainement mis à jour Perl et vous devez aussi mettre à jour storable-pm. Vous devez mettre à jour Fink. Pendant la mise à jour, il va vous être demandé d'installer soit perl-core, soit system-perl ; choisissez system-perl. De plus, storable-pm doit aussi être mis à jour.

Pour OS 10.1.x, utilisez les commandes suivantes (il vous faut les Developer Tools) :

sudo mv /sw/lib/perl5/darwin/Storable.pm /tmp
sudo mv /sw/lib/perl5/darwin/auto/Storable /tmp
fink rebuild storable-pm
fink selfupdate-cvs

Q5.22: Il est impossible de mettre à jour Fink. Que faire ?

A: Suivez les instructions spéciales dans ce cas.

Quand ni l'exécution de la commande fink selfupdate, ni celle des commandes sudo apt-get update ; sudo apt-get dist-upgrade n'aboutissent à la mise à jour effective de Fink, vous devez télécharger une nouvelle version du paquet fink de la manière suivante :

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

Q5.23: Est-il possible d'installer Fink sur un volume ou dans un répertoire contenant un espace dans le nom ?

A: Nous déconseillons de le faire. Le jeu n'en vaut vraiment pas la chandelle.

Q5.24: Lors de la mise à jour binaire, de nombreux messages signalant qu'un fichier est introuvable ou qu'il est impossible d'obtenir le status de la liste d'un paquet source apparaissent (messages en anglais "File not found" ou "Couldn't stat package source list file"). Que faire ?

A: Si vous voyez ceci :

Err file: local/main Packages
File not found
Ign file: local/main Release
Err file: stable/main Packages
File not found
Ign file: stable/main Release
Err file: stable/crypto Packages
File not found
Ign file: stable/crypto Release
...
Failed to fetch file:/sw/fink/dists/local/main/binary-darwin-\
powerpc/Packages
File not found
Failed to fetch file:/sw/fink/dists/stable/main/binary-darwin-\
powerpc/Packages
File not found
Failed to fetch file:/sw/fink/dists/stable/crypto/binary-darwin\
-powerpc/Packages
File not found
Reading Package Lists... Done
Building Dependency Tree... Done
E: Some index files failed to download, 
they have been ignored, or old ones used instead.
update available list script returned error exit status 1.

Exécutez simplement fink scanpackages. Cela générera les fichiers introuvables.

Si l'erreur est du genre :

W: Couldn't stat source package list file: unstable/main Packages
(/sw/var/lib/apt/lists/_sw_fink_dists_unstable_main_binary-darwin-
powerpc_Packages) - stat (2 No such file or directory)

Vous devez exécuter :

sudo apt-get update
fink scanpackages

pour corriger définitivement le problème.

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

Q5.25: Après mise à jour du système ou des Developer Tools, Fink ne reconnaît pas les changements apportés par ces mises à jour. Que faire ?

A: Lorsque vous changez la distribution de Fink (dont la distribution source et la distribution binaire sont des sous-ensembles), il faut le préciser à Fink. Pour cela, vous pouvez lancer le script qui est généralement exécuté lors de la première installation de Fink :

/sw/lib/fink/postinstall.pl

Fink pointera alors à l'endroit approprié.

Q5.26: Des erreurs apparaissent lors de l'utilisation de gzip ou de dpkg-deb inclus dans le paquet fileutils. Que faire ?

A: Les erreurs de la forme :

gzip -dc /sw/src/dpkg-1.10.9.tar.gz | /sw/bin/tar -xf -
### execution of gzip failed, exit code 139

ou :

gzip -dc /sw/src/aquaterm-0.3.0a.tar.gz | /sw/bin/tar -xf -
gzip: stdout: Broken pipe
### execution of gzip failed, exit code 138

ou encore :

dpkg-deb -b root-base-files-1.9.0-1
/sw/fink/dists/unstable/main/binary-darwin-powerpc/base
### execution of dpkg-deb failed, exit code 10
Failed: can't create package base-files_1.9.0-1_darwin-powerpc.deb

ou des fautes de segmentation lors de l'utilisation d'utilitaires inclus dans fileutils, par exemple ls ou mv, sont généralement dues à une erreur de lien pré-encodé dans une bibliothèque. Vous pouvez la corriger avec la commande suivante :

sudo /sw/var/lib/fink/prebound/update-package-prebinding.pl -f

Q5.27: À l'ouverture d'une fenêtre de Terminal, un message signale que "l'environnement a déjà été modifié pour Fink", puis le Terminal se déconnecte (message en anglais "Your environment seems to be set up for Fink already"). Que faire ?

A: Ce qui se passe ici est que, d'une façon ou d'une autre, l'application Terminal.app a été chargée d'exécuter /sw/bin/pathsetup.command à chaque connexion. Vous pouvez corriger cela en supprimant le fichier de préférences, ~/Library/Preferences/com.apple.Terminal.plist.

Si vous voulez conserver certaines préférences, vous pouvez modifier le fichier avec un éditeur de texte classique et supprimer la référence à /sw/bin/pathsetup.command.

Q5.28: Quand Fink n'est pas installé sur la partition principale du disque, il est impossible de mettre à jour le paquet fink à partir du source. Des erreurs concernant chowname apparaissent. Que faire ?

A: Si le message d'erreur ressemble à celui-ci :

This first test is designed to die, so please ignore the error
message on the next line.
# Looks like your test died before it could output anything.
./00compile............................ok
./Base/initialize......................ok
./Base/param...........................ok
./Base/param_boolean...................ok
./Command/cat..........................ok
./Command/chowname.....................#   
Failed test (./Command/chowname.t at line 27)
#     got: 'root'
#     expected: 'nobody'

vous devez exécuter Lire les informations (Cmd-I quand l'icône de la partition ou du disque est selectionnée) sur le disque (ou la partition) sur lequel (laquelle) Fink est installé et décocher l'option "Ignorer les autorisations de ce volume".

Q5.29: Fink refuse de mettre à jour les paquets. Il semble ne pas trouver le miroir 'gnu'. Que faire ?

A: Si un message d'erreur se terminant par :

Failed: No mirror site list file found for mirror 'gnu'.

apparaît, il est plus que probable que vous deviez mettre à jour le paquet fink-mirrors via, par exemple :

fink install fink-mirrors

Q5.30: Il est impossible de mettre à jour Fink, car le répertoire /sw/fink ne peut être déplacé. Que faire ?

A: L'erreur suivante :

Failed: Can't move "/sw/fink" out of the way.

est due, en général, à des permissions erronées dans un des répertoires temporaires créés durant l'exécution de selfupdate. Supprimez-les via la commande :

sudo rm -rf /sw/fink.tmp /sw/fink.old

Q5.31: Des erreurs de type 403 apparaissent lors de l'utilisation des commandes apt-get et dselect ou du menu binaire de Fink Commander. Que faire ?

A: Les serveurs de téléchargement de SourceForge ne sont pas toujours disponibles, c'est pourquoi nous sommes en train de changer de serveur pour la distribution binaire.

Q5.32: Un message signalant qu'"aucune police n'est trouvée" apparaît (message en anglais : "No fonts found"). Que faire ?

A: Si vous voyez le message suivant (signalé uniquement sous Mac OS X 10.4 jusqu'à présent) :

No fonts found; this probably means that the fontconfig
library is not correctly configured. You may need to
edit the fonts.conf configuration file. More information
about fontconfig can be found in the fontconfig(3) manual
page and on http://fontconfig.org.

corrigez l'erreur en exécutant :

sudo fc-cache

Q5.33: Il est impossible d'installer Fink à partir du paquet d'installation, le message "Ce volume ne gère pas les liens symboliques" apparaît. Que faire ?

A: Ce message signifie, généralement, que vous essayez de faire touner l'installeur Fink en tant qu'utilisateur sans privilèges administratifs. Assurez-vous soit de vous connecter dans l'écran de démarrage en tant qu'utilisateur ayant ces privilèges, soit de choisir dans le Finder (à l'aide du menu de changement rapide de session) un utilisateur ayant ces privilèges avant de lancer l'installeur de Fink.

Si vous avez des problèmes alors que vous utilisez un compte d'administrateur, il est probable que cela soit dû à des permissions incorrectes au niveau le plus haut de la hiérarchie des dossiers. Pour les réparer, utilisez l'Utilitaire de disque d'Apple, situé dans le sous-répertoire Utilitaires du répertoire Applications ; sélectionnez le disque dur en question, choisissez l'onglet S.O.S. et cliquez sur Réparez les autorisations du disque.

Q5.34: Un message signalant une contradiction entre l'architecture du paquet et celle du système empêche de mettre à jour fink (message en anglais package architecture (darwin-i386) does not match system (darwin-powerpc)). Que faire ?

A: L'architecture du paquet ne correspond pas à celle de votre système. Cette erreur se produit lorsque vous utilisez un paquet d'installation PowerPc sur une machine Intel. Vous devez alors supprimer votre installation de Fink :

sudo rm -rf /sw

Puis téléchargez l'image disque pour machines Intel à partir des pages de téléchargement.

Q5.35: Il est impossible d'exécuter une mise à jour via cvs. Que faire ?

A: If vous obtenez des messages d'erreurs contenant les lignes suivantes :

cvs [update aborted]: connect to cvs.sourceforge.net(66.35.250.207):
2401 failed: Operation timed out

Cela provient d'une récente restructuration des serveurs CVS sur sourceforge.net. Les fichiers Fink sont maintenant accessibles à partir de fink.cvs.sourceforge.net. Vous devez mettre à jour le paquet fink-mirrors via les outils binaires suivants :

sudo apt-get update ; sudo apt-get install fink-mirrors

6 Problèmes généraux de compilation

Q6.1: Un script configure signale qu'il ne peut trouver un "cc acceptable". De quoi s'agit-il ?

A: Lisez la documentation avant de poser des questions. Pour compiler des paquets à partir du source, vous devez installer les Developer Tools, qui, entre autres, contiennent le compilateur C nommé cc.

Q6.2: Lors de l'exécution de "fink selfupdate-cvs", un message signale que "la commande cvs est introuvable" (message en anglais : "cvs: Command not found."). Que faire ?

A: Vous devez installer les Developer Tools.

Q6.3: Un message d'erreur relatif à make apparaît. Que faire ?

A: Si ce message est du type :

make: command not found

ou :

Can't exec "make": 
No such file or directory at /sw/lib/perl5/Fink/Services.pm line 190.

cela signifie que vous devez installer les Developer Tools.

Si, par contre, le message est du type :

make: illegal option -- C

cela signifie que vous avez remplacé la version GNU de l'utilitaire make installée par les Developer Tools par une version BSD de make. De nombreux paquets utilisent des fonctionnalités spéciales implémentées seulement dans GNU make. Vérifiez que /usr/bin/make est un lien symbolique vers gnumake, et non vers bsdmake. De plus, assurez-vous que le répertoire /usr/local/bin/ ne contient aucune autre copie de make.

Q6.4: Un étrange message d'erreur concernant la commande head apparaît. Que se passe-t-il ?

A: Si vous voyez apparaître ce message :

Unknown option: 1 Usage: head [-options] <url>...

suivi d'une liste d'options, cela signifie que la commande head est défectueuse. Cela se produit lorsqu'on installe la bibliothèque Perl libwww sur un volume système HFS+. Elle tente de créer une nouvelle commande /usr/bin/HEAD, qui écrase la commande head existante, car le système de fichiers ne respecte pas la casse. head est une commande standard utilisée dans de nombreux scripts shell et dans les Makefiles. Vous devez récupérer la commande head originale si vous voulez utiliser Fink.

Le script bootstrap de la version source de fink fait, maintenant, cette vérification ; mais vous pouvez vous retrouver devant ce problème si vous utilisez la version binaire lors de la première installation de fink ou si vous installez libwww après avoir installé Fink.

Ce problème peut aussi venir de l'installation de /sw/bin/HEAD (mais pas par un paquet de Fink). La solution est plus simple : renommez /sw/bin/HEAD.

Q6.5: À l'installation d'un paquet, un message d'erreur signale qu'il y a tentative d'écrasement d'un fichier situé dans un autre paquet. Que faire ?

A: Cela arrive parfois avec les paquets multiples (c'est-à-dire ceux qui sont scindés en -dev, -shlibs, etc...) quand un fichier est déplacé d'un paquet à l'autre (par exemple de toto à toto-shlibs. Vous pouvez tenter d'écraser le fichier par celui présent dans le paquet (puisqu'ils sont identiques) via la commande :

sudo dpkg -i --force-overwrite nomdufichier

nomdufichier est le nom du fichier .deb correspondant au paquet que vous êtes en train d'installer.

Q6.6: Après installation des outils de développement de décembre 2002, des messages concernant des "bibliothèques à références faibles" (weak libraries en anglais) apparaissent. Que se passe-t-il ?

A: C'est un problème qui est apparu avec les outils de développement de décembre 2002. Parfois, des messages semblables au suivant apparaissent (on a choisi ici libgdk-pixbuf à titre d'exemple) :

ld: warning dynamic shared library:
/sw/lib/libgdk-pixbuf.dylib not made a weak library in output with
MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1

Vous pouvez considérer ces messages comme inoffensifs. Si vous êtes du genre curieux, lisez les notes de mise à jour (release notes) qui se trouvent dans le répertoire de documentation du développeur, en particulier celles concernant GCC et l'éditeur de liens, pour de plus amples informations. Cela se rapporte essentiellement à la façon dont sont considérés les symboles manquants lors de l'exécution d'applications qui utilisent des références faibles : erreur fatale ou non au lancement.

Q6.7: Lors de la construction d'un paquet, un message indique que l'exécution de la commande mv a échoué (message en anglais : "execution of mv failed, exit code 1"). Que faire ?

A: Si vous avez installé StuffIt Pro, il se peut que vous ayez activé le mode "Archive Via Real Name". Recherchez un panneau de préférences Stuffit dans les préférences système et désactivez "ArchiveViaRealName" si cette option est activée. Elle contient une implémentation boguée de certains appels système importants qui entraîne un grand nombre d'erreurs étranges et passagères comme celle-ci.

Dans le cas contraire, une erreur sur la commande mv signifie, en général, qu'une autre erreur s'est produite précédemment dans le processus de construction sans l'arrêter. Pour trouver le ou les fichiers concernés, recherchez dans les messages de sortie le fichier manquant. Par exemple, si vous obtenez ce message :

mv /sw/src/root-toto-0.1.2-3/sw/lib/libtata*.dylib \
/sw/src/root-toto-shlibs-0.1.2-3/sw/lib/ 
mv: cannot stat `/sw/src/root-toto-0.1.2-3/sw/lib/libtata*.dylib': 
No such file or directory 
### execution of mv failed, exit code 1 
Failed: installing toto-0.1.2-3 failed

vous devez rechercher libtata parmi les messages de sortie précédents du processus de construction.

Q6.8: Il est impossible d'installer ou de mettre à jour un paquet, un message indique qu'un "noeud" existe déjà (message en anglais : "node already exists"). Que faire ?

A: Ces messages d'erreurs sont similaires au message suivant :

Failed: Internal error: node for system-xfree86 already exists

Le moteur de dépendances ne sait plus où il en est, car il y a eu des changements dans certains fichiers info des paquets. Pour résoudre ce problème :

Q6.9: Des problèmes de compilation de paquet Fink apparaissent quand des bibliothèques ou des headers sont installés dans le répertoire /usr/local. Que faire ?

A: C'est une source fréquente de problèmes, car le script de configuration du paquet trouve les bibliothèques et les headers installés dans le répertoire /usr/local avant ceux installés dans l'arborescence de Fink. Si vous rencontrez des problèmes lors de la construction d'un paquet, et que vous ne trouvez pas de solution à ce problème dans les QFP, regardez si vous avez des bibliothèques installées dans le répertoire /usr/local/lib ou des headers installés dans le répertoire /usr/local/include. Si c'est le cas, déplacez temporairement le répertoire /usr/local via la commande :

sudo mv /usr/local /usr/local.moved

construisez le paquet, puis remettez en place le répertoire /usr/local via la commande :

sudo mv /usr/local.moved /usr/local

Q6.10: Lors de la construction d'un paquet, un message indique que la "table des matières" n'est pas à jour (message en anglais "table of contents out of date"). Que faire ?

A: Le message de sortie vous indique (hélas ! en anglais) ce qu'il faut faire. En général, il est de la forme suivante :

ld: table of contents for archive: 
/sw/lib/libintl.a is out of date; 
rerun ranlib(1) (can't load from it)

Vous devez exécuter ranlib (en tant que super-utilisateur) sur la bibliothèque qui est la cause du problème. Par exemple, dans le cas ci-dessus, vous devez exécuter :

sudo ranlib /sw/lib/libintl.a

Q6.11: Fink Commander se bloque quand on tente d'installer atlas. Que faire ?

A: Ceci provient du fait qu'une des étapes de la compilation du paquet atlas envoie une invite à l'utilisateur et que Fink Commander ne l'affiche pas. Vous devez utiliser fink install atlas au lieu de passer par Fink Commander.

Q6.12: Un message indique qu'il est impossible de trouver les fichiers stddef.h, ou wchar.h, ou stdlib.h, ou crt1.o, ou bien encore que le compilateur C ne peut créer de fichiers exécutables ( message en anglais "C compiler cannot create executables"). Que faire ?

A: Ces problèmes sont dus, généralement, à l'absence de headers essentiels fournis par le paquet DevSDK des Outils de Développement (Developer Tools). Vérifiez que le répertoire /Library/Receipts/DevSDK.pkg existe dans votre système. Si ce n'est pas le cas, relancez l'installeur des Outils de Développement et installez le paquet DevSDK en choisissant l'option Installation Personnalisée (Custom Install en anglais).

Le message d'erreur impossible de créer des fichiers exécutables peut aussi être généré lorsque la version des Outils de Développement installée provient d'une version antérieure du système d'exploitation.

Q6.13: Il est impossible de mettre à jour, un message indique que Fink est "incapable de résoudre des conflits de versions entre dépendances" (message en anglais "unable to resolve version conflict on multiple dependencies"). Que faire ?

A: Pour résoudre ce problème, essayez de ne mettre à jour qu'un seul paquet, puis lancez de nouveau "fink update-all". Si le message réapparaît, répétez le processus.

Q6.14: Il est impossible d'installer quoi que ce soit, un message indique que "dpkg est incapable d'analyser la structure du fichier /sw/var/lib/dpkg/status" (message en anglais : "dpkg: parse error, in file `/sw/var/lib/dpkg/status'"). De quoi s'agit-il ?

A: Cela signifie que votre base de données dpkg a été corrompue, en général à la suite d'un plantage ou d'une autre erreur irrécupérable. Vous pouvez résoudre le problème en copiant la version précédente de la base de données via la commande :

sudo cp /sw/var/lib/dpkg/status-old /sw/var/lib/dpkg/status

Il se peut que vous deviez réinstaller les derniers paquets installés juste avant que le problème n'apparaisse.

Q6.15: Des messages d'erreurs concernant freetype apparaissent. Que faire ?

A: Il y a plusieurs types d'erreurs concernant freetype. Si le message d'erreur ressemble au suivant :

/usr/bin/ld: can't locate file for: -lfreetype

Vérifiez que vous n'avez pas un exécutable freetype-config dans un endroit insolite via la commande :

where freetype-config

si vous utilisez tcsh, ou :

type -a freetype-config

si vous utilisez bash. La framework Mono installe /usr/bin/freetype-config en tant que lien symbolique vers un fichier de cette framework.

Si le message d'erreur ressemble au suivant :

/sw/include/pango-1.0/pango/pangoft2.h:52: 
error: parse error before '*' token 
/sw/include/pango-1.0/pango/pangoft2.h:57:
error: parse error before '*' token
/sw/include/pango-1.0/pango/pangoft2.h:61: 
error: parse error before '*' token 
/sw/include/pango-1.0/pango/pangoft2.h:86: 
error: parse error before "pango_ft2_font_get_face"
/sw/include/pango-1.0/pango/pangoft2.h:86: 
warning: data definition has no type or storage class 
make[2]: *** [rsvg-gz.lo] Error 1
make[1]: *** [all-recursive] Error 1 
make: *** [all-recursive-am] Error 2 
### execution of make failed, exit code 2 
Failed: compiling librsvg2-2.4.0-3 failed

ou à celui-ci :

In file included from vteft2.c:32: 
vteglyph.h:64: error:
parse error before "FT_Library" 
vteglyph.h:64: warning: 
no semicolon at end of struct or union vteft2.c: 
In function `_vte_ft2_get_text_width': 
vteft2.c:236: error: 
dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_get_text_height':
vteft2.c:244: error: 
dereferencing pointer to incomplete type
vteft2.c: In function `_vte_ft2_get_text_ascent': 
vteft2.c:252: error:
dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_draw_text': 
vteft2.c:294: error: 
dereferencing pointer to incomplete type 
vteft2.c:295: error: 
dereferencing pointer to incomplete type
make[2]: *** [vteft2.lo] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2 
### execution of make failed, exit code 2
Failed: compiling vte-0.11.10-3 failed

ou encore à celui-là :

checking for freetype-config.../usr/X11R6/bin/freetype-config 
checking For sufficiently new FreeType (at least 2.0.1)... no 
configure: error: pangoxft 
Pango backend found but did not find freetype libraries 
make: *** No targets specified and no makefile found. Stop. 
### execution of LD_TWOLEVEL_NAMESPACE=1 failed, exit code 2 
Failed: compiling gtk+2-2.2.4-2 failed

le problème est dû à une confusion entre les headers des paquets freetype ou de freetype-hinting et les headers freetype2 qui sont inclus dans X11 ou dans XFree86. La commande :

fink remove freetype freetype-hinting

supprime la variante que vous avez installée. À contrario, si le message d'erreur est similaire à celui-ci :

ld: Undefined symbols: _FT_Access_Frame

cela est dû à la présence d'un fichier résultant d'une installation précédente de X11. Réinstallez X11 SDK.

Enfin, si le message d'erreur, ressemble à celui-là :

dyld: klines Undefined symbols: /sw/lib/libqt-mt.3.dylib 
undefined reference to _FT_Access_Frame

vous êtes probablement en présence d'une version binaire qui compile correctement avec gcc3.3 sous Jaguar, mais pas sous Panther. Ce problème a été résolu, il suffit que vous mettiez à jour vos paquets, par exemple via les commandes sudo apt-get update ; sudo apt-get dist-upgrade.

Q6.16: Des messages d'erreur concernant `Dl_info' apparaissent. Que faire ?

A: Si vous avez des messages d'erreur similaire à celui-ci :

unix_dl.c: In function `rep_open_dl_library':
unix_dl.c:328: warning: assignment discards qualifiers from \
pointer target type 
unix_dl.c: In function `rep_find_c_symbol': 
unix_dl.c:466: error: `Dl_info' undeclared (first use in this \
function)
unix_dl.c:466: error: (Each undeclared identifier is reported \
only once 
unix_dl.c:466: error: for each function it appears in.)
unix_dl.c:466: error: parse error before "info" 
unix_dl.c:467: error: `info' undeclared (first use in this function) 
make[1]: *** [unix_dl.lo] Error 1

vous avez certainement un header /usr/local/include/dlfcn.h, incompatible avec Panther. Déplacez-le.

Note : les barres obliques inversées ont été rajoutées uniquement pour des raisons de formatage.

Ce header est, en général, installé par Open Office, et vous devez le remplacer, de même que la bibliothèque /usr/local/lib/libdl.dylib, par des liens symboliques vers les fichiers inclus dans Panther :

sudo ln -s /usr/include/dlfcn.h /usr/local/include/dlfcn.h
sudo ln -s /usr/lib/libdl.dylib /usr/local/lib/libdl.dylib

Q6.17: Fink signale que les paquets gcc2 ou gcc3.1 n'existent pas, mais il ne semble pas possible de les installer. Que faire ?

A: gcc2 et gcc3.1 sont des paquets virtuels qui indiquent la présence de gcc-2.95 ou de gcc3.1 dans votre système. Installez les paquets gcc2.95 ou gcc3.1 à partir de XCode Tools (les versions précédentes du système opératoire inclut gcc-2.95 dans l'installation standard des Developer Tools).

Note : L'installation de gcc2.95 et / ou de gcc3.1 n'interfère pas avec le compilateur gcc3.3. Ils peuvent coexister.

Q6.18: Fink signale qu'il ne peut résoudre la dépendance "system-java14-dev", mais il n'existe pas de paquet system-java14-dev (message en anglais Failed: Can't resolve dependency "system-java14-dev"). Que faire ?

A: Ce paquet est un paquet virtuel. Ce type d'erreur apparaît quand Java est mis à jour via Mise à jour de Logiciels : les headers sont supprimés, ce qui empêche la création du paquet -dev.

Vous devez télécharger le paquet approprié des Java Developer Tools à partir du site d'Apple. Dans le cas ci-dessus, il s'agit du paquet Java 1.4.2 Developer Tools.

Q6.19: Lors de l'installation d'un paquet, un message d'erreur apparaît signalant que dpkg n'arrive à exécuter dpkg-split pour vérifier si le paquet fait partie d'un paquet multiple (message en anglais : dpkg (subprocess): failed to exec dpkg-split to see if it's part of a multiparter: No such file or directory). Que faire ?

A: Ce problème se résout, en général, par la définition correcte de votre environnement, cf. cette partie des QFP.

Q6.20: Un message d'erreur signalant que le module Perl XML est requis par intltool apparaît (message en anglais: configure: error: XML::Parser perl module is required for intltool). Que faire ?

A: Si vous utilisez l'arbre instable, you devez installer une version de intltool supérieure ou égale à la version 0.34.1.

Sinon, vous devez vérifier que vous avez la variante du paquet qui correspond à la version de Perl installée dans votre système. Par exemple, sous Panther, vous devez avoir xml-parser-pm581 et non pas xml-parser-pm560 (il se peut que vous ayez le paquet fantôme xml-parser-pm), car, dans votre système est installé Perl-5.8.1 et non pas Perl-5.6.0. Sous Jaguar, vous devez avoir la variante pm560 si vous utilisez la version système de Perl; si vous avez installé Perl 5.8.0, vous devez avoir la variante pm580.

Q6.21: Lors du téléchargement d'un paquet, Fink tente de le faire à partir d'un site dont le nom contient distfiles et ne trouve pas le fichier. Que faire ?

A: Fink tente d'utiliser l'un de ses sites Maîtres. Ils servent à garantir que les sources des paquets de Fink sont disponibles même lorsque le site original a changé d'adresse. Cette erreur apparaît lorsqu'une nouvelle version d'un paquet est publiée, mais que les miroirs maîtres n'ont pas encore eu le temps de la prendre en compte.

Pour pallier cela, exécutez fink configure et changez l'ordre de recherche de telle sorte que les miroirs maîtres soient utilisés en dernier.

Q6.22: Comment utiliser des options variables lors de la compilation d'un paquet ?

A: La première chose à faire est de contacter le mainteneur du paquet pour lui demander d'introduire une variante dans le paquet. Cela peut être relativement facile à faire. Si le mainteneur ne vous répond pas ou si vous ne voyez pas apparaître de nouveaux paquets correspondant à votre demande, ou que vous vouliez essayer de faire le changement vous-même, étudiez le Tutoriel d'empaquetage et le Guide de construction de paquets.

Note : Fink est volontairement initialisé de telle façon que tous les paquets binaires officiels soient identiques quelle que soit la machine sur laquelle ils sont construits. C'est ainsi qu'il n'y aura jamais d'optimisation pour le G5 dans un paquet officiel. Si vous voulez ce type d'option, il vous faudra le faire vous-même.

Q6.23: Lors de compilation à partir du source, Fink n'arrête pas de passer de gettext-dev à libgettext3-dev. Que se passe-t-il ?

A: Certains paquets utilisant les headers gettext lors de leur compilation ont été mis à jour pour utiliser libgettext3-dev, tandis que d'autres utilisent toujours gettext-dev. En conséquence, il se peut que Fink essaie d'installer le header non-présent pour satisfaire une dépendance de compilation d'un paquet que vous mettez à jour. De plus, l'outil fink considère gettext-dev comme un paquet essentiel et l'installe donc chaque fois que vous faites une mise à jour.

D'autres paires de paquets génèrent un effet similaire.

En raison des limitations du moteur de dépendances de compilation, il est malheureusement possible qu'une compilation échoue pour cause de changement de header dans l'un des paquets, alors qu'un autre paquet, plus loin dans la chaîne de compilation, exige précisément celui qui a été remplacé. On peut généralement résoudre le problème en réexécutant la commande de mise à jour.

Au pire, on peut avoir à installer séparément les paquets qui dépendent de gettext-dev de ceux qui dépendent de libgettext3-dev (ou de toute autre paire de headers qui fait problème). En dernier ressort, on installe les paquets un par un.

On espère qu'une solution définitive sera disponible dans la version 0.24.9 de fink.

Q6.24: Un message d'erreur comportant MACOSX_DEPLOYMENT_TARGET apparaît lors de la compilation d'un module Python. Que faire ?

A: Si le message ressemble au suivant :

running build
running build_ext
Traceback (most recent call last):
  File "setup_socket_ssl.py", line 21, in ?
    depends = ['socketmodule.h'] )
  File "/sw/src/root-python24-2.4.1-1/sw/lib/python2.4/distutils/core.py", line 166, in setup
SystemExit: error: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.3" during configure
### execution of /sw/bin/python2.4 failed, exit code 1

le problème apparaît parce que les paquets python2* notent la valeur en cours de MACOSX_DEPLOYMENT_TARGET dans un fichier de configuration lors de leur compilation. Les outils de compilation de python utilisent ensuite cette valeur lorsqu'ils compilent des modules. Par exemple, si avez sous Mac OS X 10.4 un paquet python24 qui a été compilé sous Mac OS X 10.3, soit par mise à jour 10.3 => 10.4, ou via la distribution binaire 10.4-transitionelle, et qui n'a pas été recompilé, il y aura divergence entre la valeur de MACOSX_DEPLOYMENT_TARGET stockée dans le fichier de configuration de python (10.3) et sa valeur réelle (10.4).

La solution de ce problème consiste à recompiler le paquet python en cause ; dans notre exemple, fink rebuild python24.

Si vous obtenez le même genre d'erreur au runtime, recompilez le module après avoir recompilé le paquet python2* concerné.

Q6.25: Un message d'erreur signalant que libtool ne reconnait pas l'option '-dynamic' apparaît (message en anglais libtool: unrecognized option `-dynamic'). Que faire ?

A: Le message :

 libtool: unrecognized option `-dynamic'

signifie que vous avez remplacé la commande /usr/bin/libtool d'Apple par la commande GNU libtool. Malheureusement les deux libtools ne font pas la même chose.

La seule manière de résoudre le problème est d'installer une version de libtool d'Apple en provenance d'ailleurs. Il fait partie du paquet DeveloperTools.pkg de XCode. Vous pouvez réinstaller le paquet si vous supprimez d'abord son reçu situé dans le répertoire /Library/Receipts (glissez-le dans la corbeille sur les systèmes Mac OS X 10.4 et ultérieurs ou exécutez la commande sudo rm -rf /Library/Receipts/DeveloperTools.pkg pour le système Mac OS X 10.3).

7 Problèmes de compilation spécifiques à certains paquets

Q7.1: La compilation d'un paquet échoue avec des messages d'erreur concernant sed. Que faire ?

A: Ceci peut se produire si votre script de connexion (par exemple ~/.cshrc) lance une commande qui écrit dans le terminal. Par exemple : "echo Hello" ou xttitle. Pour résoudre le problème, la solution la plus simple est de mettre les lignes qui causent problème en commentaires.

Si vous voulez conserver l'écho, vous pouvez le faire ainsi :

if ( $?prompt) then 
echo Hello 
endif

Q7.2: Lors d'une tentative de passage aux paquets XFree86 de Fink, il est impossible d'installer le paquet xfree86-base ou le paquet xfree86, car ils entrent en conflit avec le paquet system-xfree86. Que se passe-t-il ?

A: Toutes les variantes de X11, doivent, malheureusement, être installées au même endroit, à savoir dans le répertoire /usr/X11R6. C'est pourquoi, les paquets de Fink xfree86-base et xfree86-rootless s'installent également à cet endroit. Néanmoins, comme Fink ne supprime pas les fichiers qui ne figurent pas dans sa base de données, il ne remplace pas automatiquement une installation de X11 faite hors de Fink.

Voici comment procéder pour résoudre le problème :

Note : les utilisateurs de Mac OS X 10.2.x ayant une version de Fink à jour (c'est-à-dire >=0.16.2) et les utilisateurs de Mac OS X 10.3.x doivent sauter l'étape 1 ci-dessous (de toute façon, elle ne fonctionne pas pour eux).

Étape 1. Supprimez le paquet system-xfree86. Si vous n'avez aucun paquet qui dépend de X11, c'est tout simple. Toutefois, il est fréquent que de nombreux paquets dépendant de X11 soient installés. Dans ce cas, au lieu de tous les désinstaller, vous pouvez utiliser la commande :

sudo dpkg --remove --force-depends system-xfree86

pour supprimer le paquet system-xfree86, ce qui laisse tout le reste en place. Si le paquet system-xfree86 n'est pas installé, passez à l'étape 3.

Étape 2. Supprimez l'application XFree86 via la commande :

sudo rm -rf /Applications/XDarwin.app /usr/X11R6 /etc/X11

Si vous aviez installé l'application X11 d'Apple auparavant, supprimez-la également.

Étape 3. Pour installer l'application XFree86-4.2.1, installez les paquets Fink xfree86-base et xfree86-rootless comme vous le faites d'habitude : via la commande "fink install" pour les utilisateurs de sources, ou bien les commandes "apt-get install" ou dselect pour les utilisateurs de binaires.

- ou -

Étape 3a. Pour installer l'application XFree86-4.3.x ou une version postérieure, installez le paquet Fink xfree86 via la commande "fink install xfree86". La version la plus récente (XFree86-4.4.x à la date du 25 mai 2004) n'est pas encore dans la distribution binaire et n'est disponible que dans l'arborescence instable. Voir comment installer un paquet instable.

Q7.3: Comment passer de la version sans processus légers à la version avec processus légers (ou vice-versa) ?

A: Si vous avez installé la version Fink de XFree86 et que vous vouliez passer de la version sans processus légers de Fink à celle avec processus légers de Fink, vous devez supprimer l'ancienne version manuellement. Vous pouvez le faire via la ligne de commande comme ceci :

sudo dpkg -r --force-depends xfree86-base 
sudo dpkg -r --force-depends xfree86-shlibs 
sudo dpkg -r --force-depends xfree86-rootless 
sudo dpkg -r --force-depends xfree86-rootless-shlibs

ou pour supprimer la version avec processus légers :

sudo dpkg -r --force-depends xfree86-base-threaded 
sudo dpkg -r --force-depends xfree86-shlibs-threaded 
sudo dpkg -r --force-depends xfree86-rootless-threaded 
sudo dpkg -r --force-depends xfree86-rootless-threaded-shlibs

FinkCommander peut aussi supprimer des paquets. Dans la fenêtre "source", sélectionnez un paquet et utilisez "Force Remove" dans le menu Source.

Si vous avez installé le paquet system-xfree86, voir la précédente question pour savoir comment le supprimer.

Installez la version désirée de xfree86 :

xfree86-base et xfree86-rootless

ou

xfree86-base-threaded et xfree86-rootless-threaded

via les commandes habituelles : "fink install" pour les utilisateurs de sources, "apt-get install" ou dselect pour les utilisateurs de binaires.

Q7.4: Lors de l'installation de KDE, un message signale que la dépendance au paquet "cctools (>= 446-1)" ne peut être résolue (message en anglais : 'Can't resolve dependency "cctools (>= 446-1)"'"). Que faire ?

A: Ce message quelque peu abscons signifie que vous devez installer les Developer Tools de décembre 2002.

Q7.5: Il est impossible de mettre à jour libiconv. Que faire ?

A: Si vous voyez apparaître des messages d'erreur semblables au suivant :

libtool: link: cannot find the library `/sw/lib/libiconv.la'

vous pouvez résoudre le problème en exécutant la commande :

fink remove gettext-dev
fink install libiconv

Q7.6: Il est impossible d'installer g77 car le fichier c++filt n'existe pas. Où le récupérer ?

A: Si vous avez des erreurs similaires à la suivante :

xgcc: installation problem, cannot exec `c++filt': No such file or directory

après être passé sous Tiger, vous devez suivre les étapes suivantes :

Si le fichier /usr/bin/c++filt n'apparaît pas, recommencez les deux étapes précédentes jusqu'à ce qu'il apparaisse.

Q7.7: Fink refuse de mettre à jour le paquet gettext, car les dépendances sont incompatibles entre elles. Que faire ?

A: Exécutez d'abord la commande fink selfupdate pour vous assurer que vous avez bien les dernières versions des paquets. Puis exécutez la commande fink update gettext-tools. Une ancienne version de gettext-tools peut empêcher la mise à jour de gettext.

Q7.8: I can't install gtk+2 on OS 10.5.2 because /usr/X11/lib/libXrandr.2.0.0.dylib is missing.

A: This problem affects machines with OS 10.5.2 pre-installed. There is currently a bug in Apple's X11 in that a file in it that is used for building references /usr/X11/lib/libXrandr.2.0.0.dylib, while it actually has /usr/X11/lib/libXrandr.2.1.0.dylib.

The workaround is to run the following command to fix the file:

sudo perl -pi.bak -e 's|2.0.0|2.1.0|' /usr/X11/lib/libXrandr.la

Q7.9: Des problèmes apparaissent avec un paquet qui n'est pas mentionné ici. Que faire ?

A: Comme les problèmes sur les paquets ont tendance à être transitoires, nous avons décidé de les mettre sur le wiki de Fink. Voyez la page Package issues.

8 Problèmes généraux d'utilisation de paquets

Q8.1: De nombreux messages signalant que la locale n'est pas gérée par la bibliothèque C apparaissent (message en anglais : "locale not supported by C library"). Est-ce un problème ?

A: Non, cela signifie juste que le programme va utiliser les messages, les formats de date, etc... anglais. Le programme fonctionnera normalement par ailleurs. Le document Utilisation de X11 donne de plus amples informations à ce sujet.

Q8.2: Un certain nombre d'étranges utilisateurs apparaissent tout d'un coup sur mon système. Ils portent, entre autres, les noms suivants : "mysql", "pgsql" et "games". D'où proviennent-ils ?

A: Vous avez utilisé Fink pour installer un paquet dépendant du paquet passwd. Ce paquet installe un certain nombre d'utilisateurs supplémentaires pour des raisons de sécurité - sur les systèmes Unix, les fichiers et les processus appartiennent aux "propriétaires", ce qui permet aux administrateurs système de moduler les autorisations et la sécurité du système. Les programmes Apache et MySQL, par exemple, doivent avoir un "propriétaire", et il n'est pas raisonnable que le super-utilisateur soit le propriétaire de ces démons. Imaginez ce qu'il arriverait si Apache était compromis et avait tout d'un coup l'autorisation d'écrire dans tous les fichiers du système. Le paquet passwd se charge donc de définir ces utilisateurs supplémentaires pour les paquets Fink qui en ont besoin.

Il peut être inquiétant de découvrir soudain un certain nombre d'utilisateurs inconnus dans votre panneau de "Préférences système : Utilisateurs" (sur Mac OS X 10.2.x) ou "Préférences système : Comptes" (sur Mac OS X 10.3.x), mais réfléchissez bien avant de les supprimer :

Fink vous demande la permission d'installer ces utilisateurs supplémentaires sur votre système lors de l'installation du paquet passwd, vous ne devriez donc pas être trop surpris de les découvrir après coup.

Q8.3: Comment compiler soi-même en utilisant des logiciels installés par Fink ?

A: Quand on compile soi-même sans passer par Fink, il faut indiquer au compilateur et à l'éditeur de liens où trouver les bibliothèques et les headers installés par Fink. Pour un paquet qui utilise un processus standard configure/make, vous devez définir quelques variables d'environnement :

Pour les utilisateurs de tcsh, utilisez les commandes suivantes :

setenv CFLAGS -I/sw/include 
setenv LDFLAGS -L/sw/lib 
setenv CXXFLAGS $CFLAGS 
setenv CPPFLAGS $CXXFLAGS 
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal" 
setenv PKG_CONFIG_PATH "/sw/lib/pkgconfig"
setenv MACOSX_DEPLOYMENT_TARGET 10.4

Pour les utilisateurs de bash, utilisez les commandes suivantes :

export CFLAGS=-I/sw/include 
export LDFLAGS=-L/sw/lib 
export CXXFLAGS=$CFLAGS 
export CPPFLAGS=$CXXFLAGS 
export ACLOCAL_FLAGS="-I /sw/share/aclocal" 
export PKG_CONFIG_PATH="/sw/lib/pkgconfig"
export MACOSX_DEPLOYMENT_TARGET=10.4

Il est souvent plus simple d'ajouter ces variables à vos fichiers de démarrage (par exemple, .cshrc ou .profile), de façon à ce qu'elles soient automatiquement définies. Si un paquet n'utilise pas ces variables, vous devrez peut-être ajouter aux lignes de compilation "-I/sw/include" pour les headers et "-L/sw/lib" pour les bibliothèques. Certains paquets peuvent utiliser des variables non standards, telle EXTRA_CFLAGS, des options de configuration, telle --with-qt-dir=toto. La commande "./configure --help" vous donne, en général, la liste de ces options de configuration supplémentaires.

De plus, vous devrez peut-être installer les headers de développement des paquets bibliothèques que vous utilisez, s'ils ne sont pas déjà installés : par exemple toto-1.0-1-dev), si vous utilisez la bibliothèque toto-1.0-1.

Q8.4: Il est impossible d'exécuter une application installée par Fink en utilisant le menu Applications dans X11 d'Apple. Que faire ?

A: L'application X11 d'Apple ne garde pas trace des variables d'environnement de Fink, ce qui signifie que son menu Applications n'a pas dans la variable PATH le chemin permettant de trouver les applications Fink. Vous pouvez résoudre ce problème en ajoutant devant le nom d'une application installée via Fink la commande suivante :

source /sw/bin/init.sh ;

Par exemple, si vous voulez lancer GIMP installé via Fink, choisissez "Personnalisez le menu" dans le menu Applications et saisissez :

source /sw/bin/init.sh ; gimp

dans le champ "Commande" en regard du nom de menu GIMP.

Vous pouvez aussi modifier le fichier .xinitrc, situé dans votre répertoire utilisateur, et y ajoutez la commande suivante :

source /sw/bin/init.sh

après la