Q.F.P. - 8. Problèmes généraux d'utilisation de paquets
Q.8.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 ?
R.: 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.
Q.8.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 ?
R.: 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 :
- Tout d'abord, vous avez manifestement choisi d'installer un paquet qui nécessite leur utilisation ; donc leur suppression n'a pas grand sens dans ce contexte.
- En fait, il y a déjà un certain nombre d'utilisateurs supplémentaires installés par Mac OS X, dont vous ignorez peut-être l'existence : www, daemon, nobody entre autres. La présence de ces utilisateurs supplémentaires correspond à une convention standard d'Unix nécessaire à l'utilisation de certains services ; le paquet passwd ne fait qu'en ajouter quelques autres qu'Apple ne fournit pas. Vous pouvez voir les utilisateurs installés par Apple via le Gestionnaire NetInfo ou en lançant la commande
niutil -list . /users
- Si vous décidez de supprimer ces utilisateurs, faites très attention à la façon dont vous procéderez. Si vous utilisez le panneau "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), tous les fichiers possédés par ces utilisateurs seront assignés à un utilisateur administrateur pris au hasard. Certaines personnes ont rapporté que cela pouvait causer des dégâts dans les autorisations du compte administrateur. C'est un bogue des Préférences système, il a été soumis à Apple. Un moyen plus sûr de supprimer ces utilisateurs est de passer par Gestionnaire NetInfo ou d'utiliser l'outil en ligne de commande
niutil
dans une fenêtre de Terminal. Lisez la page de manuel deniutil
pour de plus amples informations au sujet de NetInfo.
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.
Q.8.3: Comment compiler soi-même en utilisant des logiciels installés par Fink ?
R.: When compiling something yourself outside of Fink, the compiler and linker need to be told where to find the Fink-installed libraries and headers. It is also necessary to tell the compiler to use the appropriate target architecture. For a package that uses standard configure/make process, you need to set some environment variables:
-bash-
export CFLAGS=-I/opt/sw/include export LDFLAGS=-L/opt/sw/lib export CXXFLAGS=$CFLAGS export CPPFLAGS=$CXXFLAGS export ACLOCAL_FLAGS="-I /opt/sw/share/aclocal" export PKG_CONFIG_PATH="/opt/sw/lib/pkgconfig" export PATH=/opt/sw/var/lib/fink/path-prefix-clang:$PATH export MACOSX_DEPLOYMENT_TARGET=10.9
-tcsh-
setenv CFLAGS -I/opt/sw/include setenv LDFLAGS -L/opt/sw/lib setenv CXXFLAGS $CFLAGS setenv CPPFLAGS $CXXFLAGS setenv ACLOCAL_FLAGS "-I /opt/sw/share/aclocal" setenv PKG_CONFIG_PATH "/opt/sw/lib/pkgconfig" setenv PATH /opt/sw/var/lib/fink/path-prefix-clang:$PATH setenv MACOSX_DEPLOYMENT_TARGET 10.9
(assuming that the build system is running OS 10.9 or later)
It is often easiest just to add these to your startup files (e.g.
.cshrc
| .profile
) so they
are set automatically. If a package does not use these variables, you
may need to add the "-I/opt/sw/include" (for headers) and "-L/opt/sw/lib" (for
libraries) to the compile lines yourself. Some packages may use
similar non-standard variables such as EXTRA_CFLAGS or --with-qt-dir=
configure options. "./configure --help" will usually give you a list
of the extra configure options.
In addition, you may need to install the development headers (e.g. foo-1.0-1-dev) for the library packages that you are using, if they aren't already installed.
Q.8.4: Il est impossible d'exécuter une application installée par Fink en utilisant le menu Applications dans X11 d'Apple. Que faire ?
R.: 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 /opt/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 /opt/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 /opt/sw/bin/init.sh
après la première ligne.
Q.8.5: Il y a de nombreuses options pour X11 : X11 d'Apple, XFree86, etc... Laquelle installer ?
R.: Toutes ces options sont des variantes de XFree86 - toutes basées sur le code de XFree86, mais il y a de légères différences entre elles. Les options proposées sont différentes sous Panther et sous Jaguar.
Sous Panther, vous avez le choix entre :
X11 d'Apple (que vous trouverez sur le disque numéro 3). N'oubliez pas d'installer le paquet X11 SDK (situé sur le disque XCode) si vous voulez compiler des programmes à partir des sources ou si vous avez l'intention d'installer d'autres paquets Fink reliés à X11.
La version 4.4.x de XFree86 compilée via Fink : installez les paquets
xfree86
etxfree86-shlibs
X.org compilé via Fink : installez les paquets
xorg
etxorg-shlibs
Sous Jaguar, les choix les plus courants et les paquets Fink qui leur correspondent sont les suivants :
-
La version 4.2.x de XFree86 compilée via Fink : installez
xfree86-base
etxfree86-rootless
ouxfree86-base-threaded
etxfree86-rootless-threaded
(et les paquets-shlibs
correspondants) -
La version 4.3.x de XFree86 compilée via Fink : installez les paquets
xfree86
etxfree86-shlibs
-
La version 4.2.x d'Apple (en supposant que vous avez installé les paquets User et SDK). Le paquet
system-xfree86
est généré automatiquement, NE l'installez PAS. Notez que la version bêta publique de X11 d'Apple pour Jaguar n'est plus disponible, aussi ce n'est une option que pour ceux d'entre vous qui l'avez déjà installé au temps où elle était encore disponible.
Il existe encore d'autres options. Vous trouverez tous les détails dans le document Utilisation de X11.
Q.8.6: Au lancement d'une application, un message signale que la fenêtre d'affichage ne peut être ouverte (message en anglais: "cannot open display:"). Que faire ?
R.: Cette erreur signifie que le système n'est pas connecté à l'affichage X. Assurez-vous que vous avez suivi les étapes suivantes :
1. Démarrer X (X11 d'Apple, XFree86, ...).
2. Vérifier que la variable d'environnement DISPLAY est définie correctement. Si vous utilisez les paramètres par défaut pour X, vous pouvez la définir de la façon suivante :
setenv DISPLAY :0
si vous utilisez tcsh
, ou
export DISPLAY=:0
si vous utilisez bash
.
Q.8.7: Certains programmes ne sont pas disponibles via Fink. Comment faire en sorte qu'ils soient inclus dans Fink ?
R.: Déposez une requête dans le Traqueur de requêtes de paquet (Package Request Tracker en anglais) accessible sur la page du projet Fink.
Notez que vous devez avoir un identifiant SourceForge pour ce faire.
Q.8.8: À quoi correspondent les "paquets virtuels" system-*
qui apparaissent de-ci de-là, mais qu'il ne semble pas possible d'installer ou de supprimer soi-même ?
R.: Les paquets tel system-perl
sont des paquets fantômes. Ils ne contiennent aucun fichier, mais font partie d'un mécanisme qui permet à Fink de savoir quels programmes ont été installés en dehors de Fink.
À partir de la distribution 10.3, la plupart de ces paquets fantômes ne sont même plus des paquets réels que vous pouvez installer ou supprimer. Ce sont des "Paquets virtuels", c'est-à-dire des structures de données de paquets générées par le programme fink au vu d'une liste préconfigurée de paquets installés manuellement. Pour chaque paquet virtuel, fink vérifie l'existence de certains fichiers à certains emplacements. S'ils les trouvent, il considère que le paquet virtuel correspondant est "installé".
Vous pouvez exécuter le programme fink-virtual-pkgs
(qui fait partie du paquet fink) pour obtenir la liste des choses que fink considère comme installées. En ajoutant l'option --debug
, vous obtiendrez la liste des tests que fink effectue.
Malheureusement, il n'existe pas de mécanisme qui permette à Fink de reconnaître un paquet arbitraire installé hors de fink, l'empêchant ainsi d'installer sa propre version dudit programme. C'est beaucoup trop difficile de tester les options de configuration et de compilation, les chemins, etc... dans le cas général.
Voici les paquets virtuels les plus importants définis par fink (à partir de la version 0.19.2) :
- system-perl : [paquet virtuel correspondant à perl]
Il représente le programme
/usr/bin/perl
, qui fait partie de l'installation par défaut de Mac OS X. Ce paquet fournit aussisystem-perlXXX
etperlXXX-core
selon la version X.X.X de l'interpréteur perl. - system-javaXXX : [paquet virtuel correspondant à Java X.X.X]
Il représente l'environnement d'exécution de Java (JRE), qui fait partie de Mac OS X (et des mises à jour d'Apple). Voir la page Java d'Apple pour de plus amples informations.
- system-javaXXX-dev : [paquet virtuel correspondant aux headers de développement Java X.X.X]
Il représente le SDK (kit de développement) de Java, qui doit être téléchargé et installé à partir de connect.apple.com (enregistrement gratuit obligatoire). Si vous avez mis à jour le JRE, il est possible que le SDK ne soit pas automatiquement mis à jour ou même qu'il ait été supprimé. Vérifiez systématiquement le SDK après installation ou mise à jour du JRE, puis téléchargez-le et installez-le si nécessaire. Voir aussi la QFP à propos de system-java14-dev.
- system-java3d : [paquet virtuel représentant Java3D]
- system-javaai : [paquet virtuel représent Java Advanced Imaging]
Ils représentent les extensions Java pour les graphiques 3D et le traitement d'images, qui peuvent être téléchargées et installées à partir du site d'Apple. Voir la page web d'Apple à propos de la mise à jour de Java 3D et de Java Advanced Imaging pour de plus amples informations.
- system-xfree86 : [paquet fantôme pour un paquet x11 installé manuellement]
- system-xfree86-shlibs : [paquet fantôme pour les bibliothèques partagées x11 installées manuellement]
Ils représentent X11/XDarwin d'Apple, partie optionnelle de Mac OS X correspondant au paquet X11User.pkg. Ces paquets fournissent respectivement
x11
etx11-shlibs
. Voir aussi la QFP à propos du passage à la version XFree86 de Fink. - system-xfree86-dev : [paquet fantôme pour les outils de développement x11 installés manuellement]
Il représente X11/XDarwin SDK d'Apple, partie optionnelle de Mac OS X correspondant au paquet X11SDK.pkg. Ce paquet fournit
x11-dev
. Voir aussi la QFP à propos du passage à la version XFree86 de Fink.
Suite: 9. Problèmes d'utilisation spécifiques à certains paquets