Wine
Un article de Wiki de la communauté Mandriva.
[modifier] Introduction
[modifier] Généralités
[modifier] Objet de ce document et public visé
Ce document, appelé Guide utilisateur de Wine, est à la fois un guide d'installation facile et un guide de référence complet. Ce guide convient aussi bien pour le nouvel l'utilisateur et pour l'utilisateur expérimenté, il fournit des instructions complètes pour l'installation pas à pas et pour la configuration, et il fournit aussi de la documentation détaillée sur tous les paramétrages de configuration ainsi que de l'aide
[modifier] Questions supplémentaires et commentaires
Si, après l'examen de ce guide, de la FAQ, et autres documentations pertinentes il subsistait toujours quelque chose que vous ne comprenez pas, nous serions heureux de vous lire. La section des «mailing lists» (NdT : listes de diffusion) contient plusieurs listes de diffusion et un canal IRC, tous sont des endroits adaptés pour chercher de l'aide et offrir des suggestions. Si vous êtes particulièrement doué, et pensez que quelque chose peut être mieux expliqué, vous pouvez déposer un «bug report» (NdT : rapport de bogue) ou «post a patch» (NdT : poster un patch) dans la documentation de Wine elle-même.
[modifier] Survol du contenu / Démarche
Pour pouvoir utiliser Wine, vous devez d'abord avoir une machine en état de marche. Ce guide vous aidera à faire évoluer votre système depuis le vide, sans Wine vers un système s'enorgueillissant d'une installation fraîche et à jour de Wine. La première étape, « Obtenir Wine » décrit les différentes méthodes pour copier les fichiers de Wine dans votre ordinateur. La seconde étape, « Configurer Wine » montre comment personnaliser l'installation de Wine en fonction de vos besoins particuliers. La dernière étape, « Utiliser Wine » couvre les étapes spécifiques dont vous pouvez avoir besoin pour améliorer le fonctionnement d'une application particulière sous Wine, et fournit des liens utiles au cas où vous auriez besoin d'aide supplémentaire.
[modifier] Démarrage rapide
Le processus pour installer et utiliser Wine peut se résumer comme suit :
- Se procurer une distribution comme indiqué dans #Obtenir Wine et voir la page Wine downloads. Pour les utilisateurs occasionnels ou nouveaux, le plus simple est de se procurer un .rpm de la distribution.
- Configurer Wine en utilisant la commande winecfg (voir chapitre 3). Pour la plupart des utilisateurs, Wine devrait être maintenat utilisable.
- Pour tester votre installation, exécutez le gestionnaire de fichiers, qui ressemble à celui de Windows 3.1, en utilisant la commande wine winefile.
- Exécuter Wine en utilisant la commande wine filespec/appname.exe (voir chapitre 4).
La première commande que vous utiliserez sera pour installer un paquetage. Typiquement quelque chose comme :
ou équivalent.
[modifier] Qu'est ce que Wine ?
[modifier] Windows et Linux
Les différents logiciels sont conçus pour différents systèmes d'exploitation, et la plupart ne fonctionneront pas sur des systèmes pour lesquels ils ne sont pas conçus. Les programmes pour Windows, par exemple, ne fonctionneront pas sous Linux parce qu'ils contiennent des instructions que le système ne peut pas comprendre tant qu'elles ne sont pas traduites par l'environnement Windows. Les programmes pour Linux, de la même façon, ne fonctionneront pas avec le système d'exploitation Windows, car celui-ci est incapable d'en interpréter toutes les instructions.
Cette situation présente un problème fondamental pour quiconque désire utiliser un logiciel à la fois sous Windows et Linux. Une solution habituelle est d'installer les deux systèmes d'exploitation sur le même ordinateur, solution connue sous le nom de double démarrage (dual boot en anglais). Quand un programme pour Windows est désiré, l'utilisateur démarre l'ordinateur sous Windows pour l'exécuter ; quand un programme pour Linux est désiré, l'utilisateur redémarre son ordinateur sous Linux. Ce choix présente un grand défaut : non seulement l'utilisateur doit endurer la frustration d'un redémarrage fréquent ; mais les programmes pour chaque plateforme ne peuvent pas être exécutés simultanément. Avoir Windows sur un ordinateur implique aussi une contrainte supplémentaire : le logiciel est cher, nécessite une partition de disque séparée, et est incapable de lire la plupart des formats de système de fichiers, rendant difficile le partage de données entre les systèmes d'exploitation.
[modifier] Qu'est ce que Wine ? et comment peut-il m'aider ?
Wine rend possible l'exécution de programmes pour Windows depuis tout système d'exploitation de la famille Unix, particulièrement Linux. En son coeur, Wine est une implémentation de la bibliothèque de l'interface de programmation des applications (API) pour Windows, agissant comme un pont entre les programmes pour Windows et Linux. Grâce à Wine, équivalant à une interface de compatibilité, quand un programme Windows essaie d'exécuter une fonction que normalement Linux ne comprend pas, Wine la traduit par une autre comprise par le système. Par exemple, si un programme demande au système de créer un bouton Windows ou un champ d'édition de texte, Wine convertira cette instruction en son équivalent pour Linux sous la forme d'une commande pour le gestionnaire de fenêtres utilisant le protocole standard X11.
Si vous avez accès au code source d'un programme destiné à tourner sous Windows, Wine peut aussi être utilisé pour recompiler ce programme dans un format que Linux pourra comprendre plus facilement. Wine reste nécessaire pour lancer le programme sous sa forme recompilée, cependant il y a beaucoup d'avantages à recompiler pour Linux un programme nativement sous Windows. Pour plus d'informations, voir le Winelib User Guide.
[modifier] Caractéristiques de Wine
Au cours de son développement, Wine a continuellement accru ses possibilités et le nombre de programmes qu'il peut exécuter. Voici une liste incomplète de ses caractéristiques :
- Peut exécuter les programmes Win32 (Win 95/98, NT/2000/XP), Win16 (Win3.1), et DOS
- Utilisation optionnelle de fichiers DLL de fournisseurs externes (Tels que ceux qui sont inclus dans Windows)
- Affichage graphique basé sur X11, permettant l'affichage à distance sur tout terminal X, ainsi que sur une console en mode texte
- Plein écran ou plusieurs fenêtres
- Support de DirectX pour les jeux
- Bon support de divers pilotes de son y compris OSS et ALSA
- Support de périphériques d'entrée alternatifs
- Impression : pilote d'interface PostScript (psdrv) pour le service d'impression PostScript standard d'Unix
- Modem, support du périphérique série
- Support du réseau Winsock TCP/IP
- Support de l'interface ASPI (SCSI) pour les scanners, graveurs CD, et autre périphériques
- Support de l'unicode avancé et des langues étrangères
- Débogueur Wine complet et journaux de suivi configurables pour faciliter le dépannage
[modifier] Versions de Wine
[modifier] Wine de Wine HQ
Wine est un projet qui s'inscrit dans le cadre du logiciel libre, et de ce fait, vous pouvez choisir parmi beaucoup de versions différentes de Wine. La version standard de Wine paraît par mises à jour intermittentes (en gros deux fois par mois), et peut être téléchargée depuis Internet à la fois sous forme binaire pré-empaquetée et sous forme de code source prêt à être compilé. Alternativement, vous pouvez installer une version en développement de Wine en utilisant le dernier code source disponible depuis le dépôt Git. Voir le prochain chapitre, "Obtenir Wine", pour plus d'informations.
[modifier] Autres versions de Wine
Il existe quantité de programmes qui sont dérivés du code de base standard de Wine d'une façon ou d'une autre. Certains d'entre eux sont des produits commerciaux provenant de compagnies qui contribuent actuellement au projet Wine.
Ces produits essayent de se distinguer de la version standard de Wine en offrant une compatibilité améliorée, uune configuration plus facile et un support commercial. Si vous avez besoin de ces choses, c'est une bonne idée que d'envisager leur achat.
Diverses offres de Wine :
Produit | Description | Forme de distribution |
---|---|---|
CodeWeavers - CrossOver Office | CrossOver Office vous permet d'installer vos applications de production sous Windows favorites dans Linux, sans avoir besoin d'une licence du système d'exploitation Windows. CrossOver dispose d'une interface simple clic facile à utiliser, ce qui rend l'installation d'une application Windows simple et rapide | Commerciale ; 30 jours pleinement fonctionnelle démo disponible |
CodeWeavers - CrossOver Office - Server Edition | CrossOver Office Server Edition vous permet d'utiliser vos applications de production sous Windows favorites dans un environnement d'une distribution client-léger sous Linux, sans avoir besoin d'une licence du système d'exploitation Windows pour chaque machine client. CrossOver Office Server Edition vous permet de satisfaire les besoins de centaines d'utilisateurs simultanés, tout cela à partir d'un seul server |
[modifier] Produits alternatifs à Wine à prendre en considération
Il existe de nombreuses façons d'utiliser des logiciels autrement qu'avec Wine. Si vous envisagez d'utiliser Wine pour exécuter une application, vous pourriez désirer remettre en cause la validité de cette approche si vous rencontrez des difficultés.
[modifier] Applications natives
Au lieu d'exécuter une application Windows particulière avec Wine, une alternative fréquente et viable, est tout simplement d'utiliser une autre application. Beaucoup d'applications Windows, particulièrement les plus couramment utilisées comme les lecteurs de média, les messageries instantanées, les programmes de partage de fichiers, ont des équivalents libres de grande qualité. De plus, un nombre significatif de programmes Windows ont été portés sous Linux directement, supprimant tout besoin de Wine (ou de Windows).
[modifier] Autres systèmes d'exploitation
La méthode la plus évidente pour pour faire fonctionner une application pour Windows est probablement de la faire fonctionner tout simplement sous Windows. Cependant, la sécurité, le coût de la licence, la rétro-compatibilité, et les problèmes de rendement de la machine peuvent rendre ce choix difficile, c'est pourquoi Wine est avant tout si utile.
Une autre alternative est d'utiliser ReactOS, qui est une alternative à Windows totalement libre. ReactOs partage beaucoup de code avec le projet Wine, mais plutôt que d'exécuter les applications Windows par-dessus Linux, elles sont exécutées par-dessus le noyau de ReactOS. ReactOS offre aussi la compatibilité avec les pilotes de Windows, permettant l'utilisation du matériel sans les pilotes pour Linux.
[modifier] Machines virtuelles
Plutôt que d'installer un système d'exploitation complètement nouveau sur votre machine, vous pouvez démarrer une machine virtuelle au niveau logiciel et installer par dessus un système d'exploitation différent. Ainsi, vous pourriez exécuter un système Linux et en même temps exécuter Windows accompagné de votre application dans une machine virtuelle simultanément sur le même matériel. Les machines virtuelles vous permettent d'installer et d'exécuter non seulement différentes versions de Windows sur le même matériel, mais aussi d'autres systèmes d'exploitation, y compris ReactOS.
Il existe de nombreuses offres de différentes machines virtuelles, et certaines sont même capable d'émuler l'architecture x86 sur différentes plateformes. Parmi les offres sous forme de logiciels libres, Bochs et QEMU peuvent exécuter virtuellement aussi bien Windows que ReactOS. D'autres offres, commerciales celles-là, seraient VMWare et VirtualPC de Microsoft.
Il y a des inconvénients à utiliser des machines virtuelles, cependant, car, au contraire de Wine, ces programmes sont des émulateurs, aussi y a-t-il une inévitable perte de vitesse qui peut être considérable. De plus, exécuter une application à l'intérieur d'une machine virtuelle empêche la totale intégration de l'application dans l'environnement en cours. Vous ne pourrez pas, par exemple, avoir les icônes de la zone de notification (system tray) ni les raccourcis placés sur le bureau aux côtés de ceux de Linux, puisque les applications Windows doivent résider complètement à l'intérieur de la machine virtuelle.
[modifier] Obtenir Wine
[modifier] Méthodes d'installation de Wine
Une fois que vous avez décidé que Wine est adapté à vos besoins, l'étape suivante consiste à décider comment l'installer. Il y a trois méthodes pour installer Wine depuis WineHQ, chacune avec ses avantages et ses inconvénients.
[modifier] Installation depuis un paquetage
La méthode qui est de loin la plus facile pour installer Wine est d'utiliser un paquetage. Les paquetages contiennent les fichiers binaires de Wine, prêts à l'installation et compilés pour votre distribution, et ils sont testés régulièrement par les créateurs du paquetage tant au niveau de leur fonctionnalités qu'au niveau de leur contenu.
L'utilisation d'un paquetage est la méthode que nous recommandons pour installer Wine. Les paquetages sont disponibles dans la page de téléchargement de WineHQ, et ce sont toujours les derniers paquetages disponibles que vous y trouverez. Populaires comme ils le sont, les paquetages de Wine peuvent aussi être trouvés en divers autres lieux, et notamment dans les dépôts officiels des distributions. Ces paquetages-là peuvent cependant, être quelque peu dépassés, dans les dépôts de telle ou telle distribution. Toutefois, les paquetages peuvent être mis à jour facilement, et beaucoup de distributions sont capables de le faire de façon transparente en quelques clics. Fabriquer votre propre paquetage binaire installable depuis les sources est aussi possible, bien que cela sorte des limites de ce document.
[modifier] Installation depuis une archive de la source
Parfois les paquetages ne répondent pas exactement à vos besoins. Peut-être ne sont-ils pas disponibles pour votre architecture ou votre distribution, ou peut-être désirez-vous construire Wine avec vos propres optimisations du compilateur ou avec des options non activées, ou peut-être avez-vous besoin de modifier une partie du code source avant de compiler. Wine étant un projet qui s'inscrit dans le cadre du logiciel libre, vous êtes... libre de faire toutes ces choses avec le code source de Wine, qui est fourni avec chaque mise à jour. Cette méthode d'installation peut être effectuée en téléchargeant les sources puis en effectuant la compilation en ligne de commande. Si vous êtes compétent dans ce domaine et avez des besoins spécifiques, cette option est faite pour vous.
Obtenir les sources de Wine est facile. A chaque mise à jour, nous plaçons un lien vers une source du paquetage dans le format compressé tar.bz2 à l'adresse : téléchargements de WineHQ. Compiler et installer Wine depuis les sources est un peu plus difficile que d'utiliser un paquetage, cependant nous allons traiter cela en profondeur et tenter de vous conduire par la main tout le long du chemin.
[modifier] Installation depuis un arbre Git
Si vous désirez essayer le dernier cri du développement de Wine, ou même souhaitez aider au développement, vous pouvez télécharger le tout dernier code source sur notre dépôt Git. Les instructions pour le téléchargement sont disponibles à http://www.winehq.org/site/git.
Veuillez tenir compte du fait que les avertissements habituels concernant l'utilisation d'une version en développement s'appliquent. Le code source sur le dépôt Git est très peu testé et peut ne pas se compiler correctement. C'est cependant le meilleur moyen de tester comment Wine fonctionnera dans la prochaine version, et si vous modifiez le code source, c'est mieux d'avoir la dernière version. Le dépôt Git est aussi utile pour les développeurs d'applications qui veulent savoir si une application fonctionnera encore correctement avec la prochaine version, ou si un récent patch améliore les choses. Si vous êtes intéressé pour nous aider à faire fonctionner une application dans Wine, voir le HowTo.
[modifier] Installer Wine depuis un paquetage
[modifier] Installation d'un nouveau paquetage
Installer un paquetage sur un système est vraiment facile. Il vous suffira simplement de télécharger et d'installer le paquetage en utilisant un utilitaire fourni par votre distribution. Il n'est en général pas utile de retirer les anciens paquetages avant l'installation, vu que les distributions modernes de Linux devraient les mettre à jour ou les remplacer automatiquement. Si vous aviez installé Wine depuis le code source, vous devriez cependant les enlever avant d'installer un paquetage. Voir la section #Désinstaller Wine depuis les sources pour obtenir des instructions adéquates.
[modifier] Différentes distributions
Wine fonctionne sur un grand nombre de distributions différentes, ainsi que sur des systèmes de type Unix tels que Solaris et FreeBSD, chacun avec leur propre système spécifique pour installer et gérer les paquetages. Heureusement, les mêmes idées générales s'appliquent à tous, et installer Wine ne devrait pas être plus difficile que d'installer n'importe quel autre logiciel, quelle que soit la distribution installée. Désinstaller le paquetage Wine est tout aussi simple, et dans les distributions Linux modernes, cela est réalisé habituellement avec la même interface ergonomique que l'installation.
Dans ce guide, nous ne nous attarderons pas sur les spécificités d'installation ou de désinstallation des paquetages Wine dans les différentes méthodes d'utilisation et de gestion des paquetages des divers systèmes, cependant, des informations à jour concernant l'installation dans des distributions particulières peuvent être trouvées sur le site de WineHQ dans les HowTo. Si vous avez besoin d'aide pour installer un paquetage Wine, nous vous suggérons de consulter la documentation de votre distribution, les forums d'aide ou les canaux IRC.
[modifier] Installer Wine depuis les sources
Avant d'installer Wine depuis les sources, assurez vous d'avoir désinstallé tout paquetage binaire de Wine qui pourrait être sur votre système. Installer depuis les sources nécessite l'utilisation d'une fenêtre de console et d'une copie complète du code source. Après avoir téléchargé les sources depuis le Git ou les avoir extraites d'une archive, rendez vous dans leur répertoire depuis la console, et suivez les étapes encore à réaliser.
[modifier] Obtenir les dépendances
Wine utilise beaucoup de bibliothèques open source pendant son exécution. Bien que Wine ne soit pas strictement dépendant de ces bibliothèques et se compilera sans la plupart d'entre elles, beaucoup de fonctionnalités de Wine sont améliorées par leur présence pendant la compilation. Dans le passé beaucoup de problèmes d'utilisateurs étaient causés par l'absence des bibliothèques nécessaires quand ils construisaient Wine depuis les sources ; pour ces raisons et d'autres, nous recommandons fortement l'installation depuis les paquetages binaires ou depuis des paquetages sources qui savent automatiquement satisfaire les dépendances.
Si vous désirez installer des dépendances à la main, il y a plusieurs façons de voir si vous oubliez des bibliothèques de développement nécessaires. L'approche la plus simple est de regarder la sortie du programme de configuration avant de compiler Wine et de voir si quelque chose d'important est manquant, auquel cas, installer ce qui manque et relancer la configuration avant de compiler. Vous pouvez aussi vérifier le fichier généré par Configure, (include/config.h) et voir s'il y a des fichiers que Configure recherche et ne trouve pas.
[modifier] Compiler Wine
Une fois que vous avez installé les dépendances construites dont vous avez besoin, vous êtes prêt à compiler le paquetage. Dans une console, après vous êtes rendus dans le répertoire où est l'arborescence source de Wine, exécutez les commandes suivantes :
La dernière commande exige les privilèges root. Bien que vous ne devriez jamais exécuter Wine sous root, vous devez l'installer de cette manière.
[modifier] Désinstaller Wine depuis les sources
Pour désinstaller Wine depuis les sources, une fois de plus rendez vous dans le même répertoire que celui utilisé pour installer Wine en utilisant une console. Puis exécutez la commande suivante :
Cette commande exige les privilèges root, et devrait enlever tous les fichiers binaires de Wine présents sur votre système. Cela, cependant, n'enlèvera pas votre configuration de Wine ni les applications situées dans votre répertoire d'utilisateur dans "home", ainsi vous êtres libre d'installer une autre version de Wine ou d'effacer cette configuration à la main (en supprimant /home/utilisateur/.wine).
[modifier] Configurer Wine
La plupart des changements de configuration les plus usuels peuvent être réalisés avec l'outil winecfg. Nous allons étudier pas à pas une initiation à winecfg et nous intéresser aux options disponibles. Dans la section suivante nous allons découvrir des modifications plus élaborées que vous pouvez effectuer avec regedit, et prendre aussi connaissance de tous les paramétrages de configuration de Wine. Finalement, certaines des choses que vous pouvez souhaiter configurer tombent en dehors du périmètre de winecfg et regedit, et nous les évoquerons aussi.
[modifier] Utiliser Winecfg
Autrefois, Wine utilisait un fichier de configuration spécial ~/.wine/config. Si vous utilisez encore une version de Wine qui fait référence à ce fichier (avant juin 2005), vous devriez la mettre à jour avant de faire quoi que ce soit. Tous les paramètres sont maintenant placés directement dans le registre et Wine y accède au démarrage.
Winecfg doit être installé sur votre ordinateur avec les autres programmes de Wine. Si vous ne trouvez pas comment le démarrer, essayez de lancer la commande :
ou peut-être simplement :
Quand le programme démarre vous remarquerez la présence d'onglets le long du bord supérieur de la fenêtre pour :
- Applications
- Bibliothèques
- Affichage
- Intégration avec le bureau
- Lecteurs
- Audio
- A propos
Changer les paramètres dans les onglets Applications et Bibliothèques aura le plus d'impact pour faire fonctionner une application. Les autres paramètres concernent la façon dont on souhaite que Wine se comporte.
Nota : Les onglets Applications, Bibliothèques, et Affichage sont liés ! Si Default Settings (Paramètres par défaut) est sélectionné dans l'onglet Applications, tous les changements effectués dans les onglets Bibliothèques et Affichage seront changés pour toutes les applications. Si vous avez configuré une application spécifique dans l'onglet Applications, et si elle est sélectionnée, alors les changements effectués dans les onglets Bibliothèques et Affichage n'affecteront que cette application. Cela permet la personnalisation des paramètres pour des applications spécifiques.
[modifier] Paramétrage des applications
Wine a la faculté d'imiter le comportement des différentes versions de Windows. En général, la principale différence se situe entre un comportement similaire aux versions Win9x ou bien aux versions NT. Certaines applications exigent un comportement spécial pour fonctionner et changer ce paramètre peut faire fonctionner une application récalcitrante. Récemment, la version Windows par défaut de Wine est devenue Windows 2000. Il est connu que beaucoup d'applications fonctionneront mieux si vous choisissez Windows 98.
Dans l'onglet Applications, vous remarquez une entrée Default Settings (Paramètres par défaut). Si vous la sélectionnez, vous verrez la version par défaut actuelle de Windows pour toutes les applications. Une application récalcitrante sera mieux configurée indépendamment des paramètres par défaut. Pour faire cela :
- Cliquez sur le bouton Ajouter une application
- Naviguez jusqu'à trouver le .exe
- Après qu'elle ait été ajoutée, vous pouvez choisir la version spécifique de Windows que Wine émulera pour cette application.
[modifier] Paramétrage des bibliothèques
De même, certaines applications nécessitent des bibliothèques spécifiques pour fonctionner. Wine reproduit les bibliothèques du système Windows (appelées DLL natives) avec des versions très abouties conçues pour fonctionner exactement de la même façon mais sans exiger de licence Microsoft. Wine a beaucoup de déficiences connues dans ses versions incorporées, mais dans beaucoup de cas, le fonctionnement est suffisant. N'utiliser que des DLL incorporées garantit que votre système est indépendant de Microsoft. Cependant, Wine est apte à utiliser des DLL d'origine Windows.
[modifier] Suclasser des DLL
Il n'est pas toujours possible d'exécuter une application avec les DLL incorporées. Quelquefois les DLL d'origine fonctionnent mieux. Une fois localisée une DLL d'origine sur un système Windows, vous devez la placer à l'endroit convenable pour que Wine la trouve et la configure pour l'utiliser. En général, l'endroit où vous devez la mettre est le répertoire que vous avez configuré comme c:\windows\system32 (voir là-dessus le paragraphe #Paramétrage des lecteurs). Il y a quatre DLL dont vous ne devriez jamais essayer d'utiliser la version d'origine : kernel32.dll, gdi32.dll, user32.dll, et ntdll.dll. Ces bibliothèques exigent un accès de bas niveau au noyau de Windows, lequel n'existe pas avec Wine.
Avec cela en tête, une fois copiées les DLL, vous devez dire à Wine d'essayer de les utiliser. Vous pouvez configurer Wine pour choisir entre les DLL incorporées ou d'origine à deux niveaux. Si vous avez sélectionné les paramètres par défaut dans l'onglet Applications, les changements que vous faites affecteront toutes les applications. Ou vous pouvez, pour une application particulière, surclasser les paramètres généraux en ajoutant et sélectionnant cette application dans l'onglet Applications.
Pour surclasser FOO.DLL, entrer "FOO" dans la boite désignée Nouveau surclassage pour et cliquez sur le bouton Ajouter surclassage. Pour changer le comportement de la DLL, sélectionnez-la dans la boite Surclassages existants et cliquez sur Editer surclassage. Par défaut l'ordre de chargement est la bibliothèque d'origine Windows avant celle incorporée de Wine ("Native puis inclue"). Vous pouvez aussi choisir "Native (Windows)", "Inclue (Wine)", ou "Désactivé".
[modifier] Remarques au sujet du système de DLL
L'équipe de Wine a déterminé qu'il est nécessaire de créer de faux fichiers DLL pour tromper de nombreux programmes qui vérifient l'existence de ces fichiers pour savoir si un élément particulier (comme Winsock et son réseau TCP/IP) est disponible. Si c'est un problème pour vous, vous pouvez créer des fichiers vides dans le répertoire c:\windows\system32 pour faire croire au programme qu'il est là, et le DLL incorporé à Wine sera chargé quand le programme le demandera. (malheureusement, tools/wineinstall ne crée pas de tels fichiers vides lui-même).
Quelquefois des applications essayent aussi d'inspecter la version des ressources depuis les fichiers physiques (par exemple, pour déterminer la version de DirectX). Des fichiers vides ne conviennent pas dans ce cas, il est plutôt nécessaire d'installer les fichiers avec les ressources de la version complète. Ce problème est déjà résolu pour beaucoup de fichiers. Pour d'autres, vous devez encore glaner quelques vraies DLL pour tromper ces applications.
Il y a bien sûr des DLL que Wine actuellement n'implémente pas très bien (ou pas du tout). Si vous n'avez pas de vrai Windows pour en copier les DLL nécessaires, vous pouvez toujours en trouver sur un des sites d'archives de DLL qu'on trouve sur Internet via les moteurs de recherche. Veuillez vous assurer de respecter les licences sur les DLL que vous récupérez ; certaines sont redistribuables, d'autres pas.
[modifier] DLL manquantes
Au cas où Wine se plaindrait de DLL manquantes, vous devriez vérifier si ce fichier est disponible pour le publique ou est une DLL personnalisée appartenant à votre programme (en cherchant son nom sur internet). Après avoir situé la DLL, vous devez vous assurer que Wine est capable de l'utiliser. Les DLL sont généralement cherchées dans l'ordre suivant :
- Le répertoire d'où le programme est démarré
- Le répertoire courant
- Le répertoire système de Windows
- Le répertoire de Windows
- Les répertoires dans la variable PATH
En bref : Soit mettre la DLL requise dans le répertoire de votre programme (peut être inélégant), ou la mettre dans le répertoire système de Windows. Aussi, si possible, évitez d'utiliser les DLL natives de NT, car le support des API NT par Wine est plutôt moins bon que le support des API Win9x (pouvant même mener à une plus mauvaise compatibilité avec les DLL NT qu'avec une configuration non Windows!).
[modifier] Paramétrage de l'affichage
Vous pouvez configurer 5 paramètres fondamentaux d'affichage. Pour la plupart des utilisateurs les paramètres par défaut conviennent.
Le premier paramétrage affecte essentiellement les jeux et sont suffisamment explicites. Vous pouvez empécher la souris de quitter la fenêtre d'un programme DirectX 'en général un jeu) et la case est cochée par défaut. Il y a beaucoup de raisons qui justifient ce choix, y compris celle, et ce n'est pas la moindre, qui facilite le jeu si le curseur est confiné dans une zone plus petite. L'autre raison de choisir cette option est le contrôle plus précis de la souris - Wine fausse la position de la souris pour imiter la façon dont Windows fonctionne. De même, "Double mémoire tampon pour le bureau" permet un rafraichissement plus agréable de l'écran, ce qui profite aux jeux, et le réglage par défaut est de le laisser activé. La contre partie est l'utilisation accrue de la mémoire
Vous pouvez trouver utile d'émuler un bureau virtuel. Dans ce cas, tous les programmes s'exécuteront dans une fenêtre séparée. Vous pouvez trouver cela utile pour tester les jeux qui changent la résolution d'écran (des fois sans succès). Les tenir dans une fenêtre peut autoriser un meilleur contrôle au prix possible d'une jouabilité dégradée. Les tailles que vous pouvez essayer sont 640x480 (par defaut) ou 800x600.
Enfin, vous pouvez configurer quelques paramétrages Direct3D. La plupart de ces paramétrages sont détectées automatiquement, mais vous pouvez les forcer dans un comportement particulier. Certains jeux tentent de sonder le système sous-jacent pour voir s'il possède des caractéristiques particulières. En désactivant cela, Wine ne rapportera pas la capacité au rendu des jeux d'une manière définie. Cela peut conduire à un jeu plus rapide au détriment de la qualité d'affichage,ou le jeu peut ne pas marcher du tout.
[modifier] Paramétrage des lecteurs
Windows exige une configuration plutôt strict des lecteurs que Wine imite. La plupart des gens sont familiers avec la désignation standard du lecteur "A:" représentant le lecteur de disquettes, le lecteur "C:" représentant le disque système primaire, etc. Wine utilise le même concept et cartographie les lecteurs pour le système de fichiers natif sous-jacent.
La configuration des lecteurs pour Wine est relativement simple. Dans Winecfg, sous l'onglet Lecteurs vous voyez des boutons pour ajouter ou supprimer des lecteurs disponibles. Quand vous choisissez d'ajouter un lecteur, une nouvelle entrée apparaît. Vous pouvez changer où pointe ce lecteur en changeant ce qui est indiqué dans la boite "Chemin". Si vous n'êtes pas sûr du chemin exact, vous pouvez choisir "Parcourir" pour le déterminer. Supprimer un lecteur est aussi facile que de sélectionner le lecteur et cliquer sur "Supprimer"
Winecfg a la capacité de détecter automatiquement les lecteurs disponibles sur votre système. Il est recommandé d'essayer ceci avant de tenter de configurer manuellement des lecteurs : Simplement cliquer sur le bouton "Autodétection" pour que Wine recherche les lecteurs de votre système.
Vous pouvez désirer configurer les lecteurs en dehors de Winecfg, auquel cas vous avez de la chance car c'est facile. Tous les paramètres sur les lecteurs résident dans un répertoire spécial, ~/.wine/dosdevices. Chaque "lecteur" est simplement un lien vers l'endroit où il réside. Wine paramètre automatiquement deux lecteurs la première fois que vous lancez Wine :
$ ls -la ~/.wine/dosdevices/ lrwxrwxrwx 1 wineuser wineuser 10 Jul 23 15:12 c: -> ../drive_c lrwxrwxrwx 1 wineuser wineuser 1 Jul 23 15:12 z: -> /
Pour ajouter un lecteur, par exemple votre CD-ROM, simplement créer un nouveau lien pointant vers lui :
Noter la convention de nommage de type DOS utilisée pour les liens - le format est une lettre suivie par deux points, tel que "a:". Ainsi, si le lien vers votre lecteur c: pointe vers ~/.wine/drive_c, vous pouvez interpréter la désignation c:\windows\system32 comme étant ~/.wine/drive_c/windows/system32.
[modifier] Paramétrage audio
Wine peut fonctionner avec nombre de sous-systèmes audio que vous pouvez choisir dans l'onglet "Audio". Winecfg vous détecte tous les pilotes disponibles, mais vous pouvez sélectionner manuellement lequel doit être utilisé. Les plus vieilles distributions Linux utilisant le noyau 2.4 ou antérieur, utilisent en général le pilote "OSS". Le plus souvent les noyaux 2.6 ont basculé vers "ALSA". Le pilote "aRts" fut récemment désactivé en raison du manque de maintenance du sous-système "aRts". Si vous utilisez GNOME, vous utilisez probablement EsounD. Les pilotes audio OSS et ALSA sont les plus testés, aussi il est recommandé de les sélectionner si possible. Si vous avez besoin d'utiliser "Jack", "NAS" ou "CoreAudio" vous savez déjà probablement pourquoi.
Le paramétrage Directsound est surtout utilisé par les jeux. Vous pouvez choisir le niveau d'accélération matérielle que vous voulez, mais pour la plupart des utilisateurs "Complète" convient.
[modifier] Intégration avec le bureau
Wine peut charger les thèmes Windows si vous en avez de disponibles. Bien que cela ne soit pas nécessaire pour utiliser Wine ou les applications, cela vous permet de personnaliser l'aspect et le ressenti d'un programme. Wine supporte les nouveaux thèmes de type MSStyles. A la différence des plus anciens thèmes de Microsoft Plus!, le moteur uxtheme supporte les fichiers spéciaux .msstyles qui peuvent redéfinir totalement les thèmes des contrôles de Windows. C'est plus ou moins la même gestion des thèmes que les bureaux modernes sous Linux ont utilisé pendant des années. Si vous le voulez, essayer cela:
- Télécharger un thème Windows XP. S'assurer qu'il contient un fichier .msstyles
- créez un jeu de nouveaux répertoires dans votre faux lecteur Windows: $ mkdir -p ~/.wine/drive_c/windows/Resources/themes/nom-de-votre-thème
- Déplacer le .msstyles dans le nouveau répertoire nom-de-votre-thème
- Utiliser l'onglet "Intégration avec le bureau" de winecfg pour choisir le nouveau thème
[modifier] Utilisation du registre et Regedit
Tous les paramètres que vous changez dans Winecfg, à l'exception des lecteurs, sont au final enregistrés dans le registre. Dans Windows, c'est un dépôt d'archives central pour la configuration des applications et du système d'exploitation. De même, Wine implémente un registre et quelques paramètres non trouvés dans Winecfg peuvent y être modifiés. '(Il y a en fait plus d'une chance que vous aurez besoin d'entrer dans le registre pour changer les paramètres d'une application que Wine lui-même)
Maintenant, le fait que Wine lui-même utilise le registre pour enregistrer les paramètres est controversé. Certains pensent que cela ressemble trop à Windows. Pour contrer cela, il y a plusieur choses à considérer. Premièrement, il es impossible d'éviter l'implémentation du registre tout simplement parce que les applications s'attendent à sauvegarder leurs paramètres ici. Dans le but de permettre à Wine d'enregistrer et d'accéder aux paramètres placés dans un fichier de configuration différent il faudrait recourir à un jeu de codes séparé pour essentiellement faire la même chose que Win32, l'API de Wine, implémente déjà. Finalement, à la différence de Windows, le registre de Wine est écrit en plein texte et peut être modifié en utilisant votre éditeur de texte favori. Alors que la plupart des administrateurs système sensés (et des développeurs de Wine) maudissent vigoureusement la nature tordue du registre de Windows, il est toujours nécessaire de le supporter quelque peu.
[modifier] Structure du registre
Okay.. Cela dit, creusons un peu le registre pour voir comment il est organisé. Le registre Windows est une structure arborescente complexe, et la majorité des programmateurs Windows ne maîtrise même pas complètement comment le registre est organisé, avec ses différentes « ruches » (anglais hives) et nombre de liens entre elles ; une couverture complète est hors des limites de ce document. Mais voici les clés fondamentales de registre que vous pourriez avoir besoin de connaitre pour la suite :
- HKEY_LOCAL_MACHINE
Cette clé fondamentale placée à la racine (dans Win9x elle est enregistrée dans le fichier système caché system.dat) contient tout ce qui se rapporte à l'installation courante de Windows. Elle est souvent abrégée en HKLM.
- HKEY_USERS
Cette clé fondamentale placée à la racine (dans Win9x elle est enregistrée dans le fichier caché user.dat) contient les données de configuration pour chaque utilisateur de l'installation.
- HKEY_CLASSES_ROOT
Ceci est un lien vers HKEY_LOCAL_MACHINE\Software\Classes qui contient des données de description telles que association de fichiers, gestionnaire de documents OLE et les classes COM.
- HKEY_CURRENT_USER
Ceci est un lien vers HKEY_USERS\your_username, par exemple, votre configuration personnelle.
[modifier] Fichiers du registre
Maintenant, vous vous demandez surement comment cela se traduit-il dans la structure de Wine. La structure du registre décrite ci-dessus réside en fait dans 3 différents fichiers à l'intérieur de chaque répertoire utilisateur ~/.win :
- system.reg
Ce fichier contient HKEY_LOCAL_MACHINE.
- user.reg
Ce fichier contient HKEY_CURRENT_USER.
- userdef.reg
Ce fichier contient HKEY_USERS\.Default (c-a-d les paramètres par défaut de l'utilisateur).
Ces fichiers sont automatiquement créés par wineprefixcreate la première fois que vous utilisez Wine. Un jeu de paramètres généraux est enregistré dans c:\windows\inf\wine.inf et est exploité par le programme rundll32.exe. La première fois que vous lancez Wine, le fichier wine.inf est mis à contribution pour remplir le registre initial. Pour plus de détails, étudier le script wineprefixcreate pour voir comment tout cela est fait. Après la mise à jour de Wine, wineprefixcreate peut aussi être utilisé pour mettre à jour les entrées par défaut du registre.
Comme nous l'avons précisé, vous pouvez éditer ces fichiers .reg en utilisant tout éditeur de texte. Simplement vous assurer que Wine n'est pas en cours d'exécution quand vous le faite, sinon toutes les modifications seront perdues.
[modifier] Utilisation de regedit
Un moyen plus facile d'accéder et de modifier le registre est d'utiliser l'outil regedit. Similaire aux programmes Windows qu'il remplace, regedit sert à fournir une vision au niveau système du registre contenant toutes les clés. Simplement lancer regedit et il apparait à l'écran. Vous remarquerez aussitôt que les clés énigmatiques affichées dans le texte sont organisées hiérarchiquement.
Pour naviguer dans le registre, cliquer sur les clés à gauche pour descendre l'arborescence en profondeur. Pour effacer une clé, cliquer dessus et choisir "effacer" (NdT : ou "delete" si la commande n'est pas traduite) du menu Edition (NdT : ou Edit). Pour ajouter une clé ou une valeur, localiser l'endroit où vous voulez la mettre et choisir "Nouveau" (NdT : "New") du menu Edition. De même, vous modifiez une clé existante en la mettant en surbrillance dans le panneau droit de la fenêtre et en choisissant "Modifier" du menu Edition. Une autre méthode pour réaliser les mêmes actions est de cliquer droit sur la clé ou sur la valeur.
Les paramètres situés dans HKEY_CURRENT_USER\Software\Wine présentent un intérêt particulier pour les utilisateurs de Wine. La plupart des paramètres que vous modifiez avec winecfg sont écrits dans cette partie du registre.
[modifier] Trucs d'administration du système
Avec la structure de fichiers ci-dessus, il est possible pour un administrateur système de configurer le système pour que l'installation de Wine (et des applications) puisse être partagé par tous les utilisateurs, et de plus permette aux utilisateurs d'avoir tous leur propre configuration personnalisée. Un administrateur peut, après avoir installé Wine et les applications Windows auxquelles il souhaite que les utilisateurs puisse avoir accès, copier le fichier résultant system.reg et d'autres dans les fichiers du registre général (Que nous supposons être dans /usr/local/etc), avec :
cd ~root/.wine cp system.reg /usr/local/etc/wine.systemreg
et peut-être même établir un lien symbolique vers le compte de l'administrateur, pour faciliter plus tard l'installation des applications dans le système :
ln -sf /usr/local/etc/wine.systemreg system.reg
Vous pourriez être tenté de faire de même avec user.reg, cependant, ce fichier contient des paramètres spécifiques à l'utilisateur. Chaque utilisateur doit avoir sa propre copie de ce fichier avec les permissions pour le modifier.
Vous devez prêter attention au mappage des lecteurs. Si vous partagez le fichier system.reg assurez vous que les paramètres du registre sont compatibles avec le mappage des lecteurs dans le répertoire ~/.wine/dosdevices de chaque utilisateur. Suivez la méthode empirique, plus vos mappages de lecteur seront semblables à la configuration par défaut donnée par wineprefixcreate, le plus facile ils seront à gérer. Vous pourrez ou ne pourrez pas partager tout ou partie du lecteur en cours "c:" sur lequel vous avez à l'origine installé l'application. Des applications nécessitent le droit d'écrire des paramètres spécifiques sur le lecteur, spécialement celles conçues pour Windows 95/98/ME.
Remarquez que le script tools/wineinstall faisait une partie de cela si vous installiez les sources Wine sous root, cependant, il ne le fait plus.
Un dernier mot de prudence: Faite attention à ce que vous faite avec le compte administrateur - si vous copiez ou liez le registre de l'administrateur vers le registre général, tout utilisateur sera capable de lire les préférences de l'administrateur, ce qui ne serait pas bon si des informations sensibles (mots de passe, informations personnelles, etc.) sont enregistrées là. N'utiliser le compte administrateur que pour installer des logiciels, par pour le travail quotidien ; utilisez un compte utilisateur ordinaire pour cela.
[modifier] Liste complète des clés du registre
Vous trouverez une liste à jour des clés utiles et des valeurs dans le wiki du développeur.
[modifier] Autres éléments à configurer
Cette section concerne le reste des éléments que vous pouvez configurer. C'est aussi un recueil de trucs et astuces pour obtenir le meilleur de Wine.
[modifier] Ports série et parallèle
La configuration des ports série et parallèle est très similaire à la configuration des lecteurs - simplement créer un lien symbolique dans ~/.wine/dosdevices avec le nom du périphérique. La convention de nommage des ports série de Windows utilise le mot "com" suivi par un nombre, tel que com1, com2, etc. De même les ports parallèles utilisent "lpt" suivi par un nombre, tel que lpt1. Vous devez les lier directement au périphérique Unix correspondant tel que /dev/ttyS0 ou /dev/lp0. Par exemple, pour configurer un port série et un port parallèle, exécutez les commandes suivantes :
ln -s /dev/ttyS0 com1 ln -s /dev/lp0 lpt1
[modifier] Partages réseau
Les partages Windows sont mappés dans le répertoire unc/ ainsi tout ce qui essaye d'accéder à \\mon_serveur\un\fichier\ ira chercher dans ~/.wine/dosdevices/unc/mon-serveur/un/fichier/. Par exemple, si vous utilisez samba pour monter \\mon_serveur\qqchose sur /mnt/smb/mon-serveur/qqchose vous pouvez écrire :
ln -s /mnt/smb/mon_serveur/qqchose unc/mon_serveur/qqchose
pour le rendre disponible dans Wine (n'oubliez pas de créer le répertoire unc s'il n'existe pas déjà).
[modifier] Polices
La configuration des polices, autrefois un méchant problème, est maintenant plus simple. Si vous avez un jeu de polices TrueType dans Windows, il suffit de copier les fichiers .ttf dans c:\windows\fonts.
[modifier] Imprimantes
Wine peut interagir directement avec le système d'impression CUPS local pour trouver les imprimantes disponibles sur votre système. Configurer les imprimantes avec Wine est aussi simple que de s'assurer que votre configuration CUPS fonctionne. Wine a encore besoin de la commande lpr (de CUPS), pour imprimer un document.
Si vous n'utilisez pas CUPS, l'ancien système d'impression BSD-Printing est utilisé :
- Toutes les imprimantes de /etc/printcap sont automatiquement installées dans Wine
- Wine a besoin d'un fichier PPD pour chaque imprimante (generic.ppd est livré avec Wine)
- La commande lpr est appelée lors de l'impression d'un document.
[modifier] Scanners
Dans Windows, les scanneurs utilisent l'API TWAIN pour accéder au matériel sous-jacent. TWAIN, la DLL incorporée de Wine fait simplement suivre les requêtes aux bibliothèques SANE de Linux. Ainsi, pour utiliser votre scanner sous Wine vous avez d'abord besoin de vous assurer que vous pouvez y accéder en utilisant SANE. Après cela, assurez vous d'avoir xscanimage prêt à fonctionner. Actuellement xscanimage est livré avec le paquetage sane-frontends mais il peut ne pas être installé avec votre distribution. L'accès au scanner est connu aujourd'hui pour avoir des problèmes. S'il fonctionne chez vous, veuillez, s'il vous plait mettre à jour cette section du guide utilisateur pour fournir des détails sur l'utilisation de SANE avec Wine.
[modifier] Bases de données ODBC
Le système ODBC dans Wine, comme le système d'impression, est conçu pour se raccrocher au système Unix à haut niveau. Plutôt que de garantir que tout le code Windows fonctionne sous Wine, il utilise un fournisseur de données compatible Unix ODBC, tel que UnixODBC. Ainsi si vous configurez Wine pour utiliser la DLL incorporée odbc32.dll, cette DLL de Wine va s'interfacer avec votre paquetage ODBC Unix et le laisser faire le travail, d'où si vous configurez Wine pour utiliser la DLL native odbc32.dll, elle essayera d'utiliser les pilotes natifs ODBC32 etc.
[modifier] Configurer ODBC sur Unix
La première étape pour utiliser un système ODBC Unix avec Wine est, bien sûr, d'avoir un système ODBC Unix qui lui-même fonctionne. Cela peut nécessiter de télécharger du code ou des rpm etc. Il existe plusieurs systèmes ODBC Unix disponibles ; l'auteur est habitué à unixODBC (avec le pilote IBM DB2). Il existe aussi un pont ODBC-ODBC qui permet d'accéder à la base de données Microsoft Access. Typiquement de tels systèmes contiennent un outil, comme isql, qui vous permet d'accéder aux données depuis la ligne de commande de façon à pouvoir vérifier que le système fonctionne.
L'étape suivante est d'accrocher la bibliothèque ODBC Unix à odbc32 la DLL incorporée à Wine. Elle va chercher (actuellement) dans la variable d'environnement LIB_ODBC_DRIVER_MANAGER le nom de la bibliothèque ODBC. Par exemple dans le fichier .bashrc de l'auteur on trouve la ligne :
export LIB_ODBC_DRIVER_MANAGER=/usr/lib/libodbc.so.1.0.0
Si cette variable d'environnement n'existe pas alors elle cherche une bibliothèque appelée libodbc.so et ainsi vous pouvez ajouter un lien symbolique pour l'intégrer dans votre propre bibliothèque. Par exemple, sous root vous pouvez exécuter les commandes :
$ ln -s libodbc.so.1.0.0 /usr/lib/libodbc.so $ /sbin/ldconfig
La dernière étape de configuration consiste à s'assurer que Wine est paramétré pour exécuter la version incorporée de odbc32.dll, en modifiant la configuration des DLL. Cette DLL incorporée agit simplement comme (Lebarhon: comment traduire "stub" ?) entre le code appelant et la bibliothèque ODBC Unix.
Si vous rencontrez des problèmes, alors vous pouvez utiliser la commande WINEDEBUG=+odbc32 avant de lancer Wine pour tracer ce qui se passe. Un mot d'avertissement. Certains programmes en fait trichent un peu et bypass la bibliothèque ODBC. Par exemple le moteur Crystal Reports va dans le registre vérifier le DSN. Le remède pour cela est documenté dans le site de unixODBC où se trouve une section sur l'utilisation de unixODBC avec Wine.
[modifier] Utiliser les pilotes ODBC de Windows
Les pilotes ODBC natifs sont réputés fonctionner avec beaucoup de types de bases de données y compris MSSQL et Oracle. En fait, certains comme MSSQL ne sont accessibles sur Linux qu'au travers d'une application Winelib. Plutôt que de simplement copier les fichiers DLL, la plupart des pilotes ODBC exigent un installateur basé sur Windows pour exécuter correctement la configuration d'éléments comme les clés du registre.
Afin de paramétrer le support de MSSQL vous devez d'abord télécharger et exécuter l'installateur mdac_typ.exe depuis Microsoft. Pour configurer vos connexions ODBC vous devez alors exécuter CLICONFG.EXE et ODBCAD32.EXE sous Wine. Vous pouvez les trouver dans le répertoire windows\system après l'exécution de mdac_typ. Comparez la sortie de ces programmes avec la sortie sur une machine sous Windows. Des choses, comme les protocoles, peuvent manquer car ils s'attendent à être installés en même temps que le système d'exploitation. S'il en est ainsi, vous devriez êtes capable de copier les fonctionnalités manquantes depuis une installation de Windows de même que toutes valeurs nécessaires du registre. Une installation native de Windows configurée pour être utilisée par Wine devrait fonctionner de la même manière qu'elle le faisait quand elle était exécutée nativement.
Types testés avec succès sous Wine :
DB | Type | Fonctionnalités |
---|---|---|
MS | SQL | 100% |
[modifier] Utiliser Wine
Ce chapitre va décrire tous les aspects de l'utilisation de Wine, comme par exemple l'appel de Wine, les paramètres en ligne de commande de différents programmes supportant Wine etc.
[modifier] Utilisation principale : applications et applets du panneau de commande
En supposant que vous utilisiez une pseudo-installation de Windows, vous installez les applications dans Wine de la même façon que vous le feriez dans Windows : en exécutant l'installateur. Vous pouvez accepter le lieu d'installation par défaut, C:\Program Files pour la plupart des installateurs, ce qui est bien. Si l'installateur le demande, vous pouvez constater que Wine crée les icônes sur votre bureau et dans le menu des applications. Si cela se produit, vous pouvez démarrer l'application en les cliquant.
La méthode standard de désinstallation est la fourniture d'un désinstallateur par l'application, habituellement disponible sous l'applet "Ajouter/désinstaller des programmes" du panneau de configuration. Pour accéder à l'équivalent Wine, lancer le désinstallateur (il est placé dans le répertoire programs/uninstaller/ dans un répertoire source de Wine) dans une console :
$ uninstaller
Des programmes installent des applets associés dans le panneau de configuration, par exemple Internet Explorer et QuickTime. Vous pouvez accéder au panneau de configuration de Wine en exécutant dans une console :
$ wine control
Qui ouvrira une fenêtre contenant les applets installés dans le panneau de configuration, comme dans Windows.
Si l'application n'installe pas de menu ni d'éléments sur le bureau, vous aurez besoin de lancer l'application depuis la ligne de commande. En vous rappelant l'endroit où vous l'avez installée, quelque chose comme :
$ wine "c:\program files\nom-application\nom-application.exe"
fera sûrement l'affaire. Le chemin n'est pas sensible à la casse, mais n'oubliez pas les guillemets. Des programmes n'utilisent pas toujours des noms évidents pour leur nom de répertoires et de fichiers EXE, aussi vous pouvez avoir besoin de regarder dans le répertoire "program files" pour voir ce qui a été mis et où.
[modifier] Comment utiliser Wine
Vous pouvez simplement invoquer la commande wine pour obtenir un petit message d'aide :
Wine 20040405 Usage: wine PROGRAM [ARGUMENTS...] Run the specified program wine --help Display this help and exit wine --version Output version information and exit
Le premier argument doit être le nom du fichier que vous désirez faire exécuter par Wine. Si l'exécutable est dans la variable d'environnement PATH, vous pouvez simplement donner le nom de fichier de l'exécutable. Cependant, si l'exécutable n'est pas dans la variable d'environnement PATH, vous devez donner le chemin complet (dans le format Windows, pas celui d'Unix !). Par exemple, étant donné le PATH suivant :
Path="c:\windows;c:\windows\system;e:\;e:\test;f:\"
Vous pouvez lancer le fichier c:\windows\system\foo.exe avec :
$ wine foo.exe
Cependant, vous auriez à lancer le fichier c:\myapps\foo.exe avec cette commande :
$ wine c:\\myapps\\foo.exe
(Remarquez la barre oblique inverse d'échappement "\" !)
Pour avoir des détails sur le lancement d'exécutables en mode texte (CUI), lire la section ci-dessous.
[modifier] Environnements Wine graphiques du type d'Explorer
Si vous préférez utiliser une interface graphique pour gérer vos fichiers, vous pouvez envisager d'utiliser Winefile. Cette application Winelib est fournie avec Wine et peut être trouvée avec les autres programmes de Wine. C'est une façon pratique de voir la configuration de votre lecteur et de retrouver vos fichiers, de plus vous pouvez exécuter des programmes directement depuis Winefile. Notez que beaucoup de fonctions ne sont pas encore implémentées.
[modifier] Options de Wine en ligne de commande
[modifier] --help
Montre une petite page d'aide en ligne de commande.
[modifier] --version
Indique la version de Wine. Pratique pour vérifier votre installation
[modifier] Variables d'environement
[modifier] WINEDEBUG=[canaux]
Wine n'est pas parfait, et beaucoup d'applications Windows ne fonctionnent toujours pas sans bogues sous Wine (mais beaucoup de programmes ne fonctionnent pas sans bogues sous Windows non plus). Pour faciliter la découverte des causes d'un bogue, Wine fournit nombre de canaux de déboguage que vous pouvez saisir au clavier.
Chaque canal de déboguage, si activé, provoquera l'affichage des messages journalisés sur la console d'où Wine fut lancé. De là vous pouvez redirigé les messages vers un fichier et les examiner à loisir. Mais soyez prévenu ! Des canaux de déboguage peuvent générer des volumes incroyables de messages. Parmi les plus prolifiques sont
- relay
qui crache un message journalisé chaque fois que la fonction win32 est appelée,
- win
qui trace le passage des messages Windows, et bien sûr
- all
qui est un alias pour chaque canal de déboguage qui existe sans exception.
Pour une application complexe, votre journal de déboguage peut facilement atteindre 1 Mo et plus. Une trace "relay" peut souvent générer plus de 10 Mo de messages journalisés, suivant la durée d'utilisation de l'application. (Vous pourrez vérifier la clé de registre "RelayExclude" pour modifier ce que "relay" rapporte). La journalisation ralentit un peu Wine, aussi n'utilisez pas WINEDEBUG a moins que ne vouliez vraiment les fichiers de journalisation.
A l'intérieur de chaque canal de déboguage, vous pouvez spécifier plus loin une classe de message, pour filtrer les différentes importances des erreurs. Les quatre classes de messages sont :
- trace,
- fixme,
- warn,
- err.
Pour démarrer un canal de déboguage, utiliser la forme :
- classe+canal
Pour l'arrêter utiliser la forme :
- classe-canal
Pour lister plus qu'un canal dans la même option WINEDEBUG, séparez les éléments avec des virgules. Par exemple, pour demander les messages de classe "warn" dans un canal de déboguage "heap", vous pouvez invoquer Wine comme cela :
$ WINEDEBUG=warn+heap wine nom_programme
Si vous omettez la classe du message, Wine affichera les messages de toutes les quatre classes pour ce canal :
$ WINEDEBUG=heap wine nom_programme
Si vous souhaitez voir les messages pour tous les canaux sauf "relay", vous pouvez faire quelque chose comme cela :
$ WINEDEBUG=+all,-relay wine nom_programme
Voici une liste des canaux de déboguage dans Wine. Plus de canaux seront ajoutés (ou retirés) aux versions a venir :
accel | adpcm | advapi | animate | aspi | atom | avicap | avifile |
---|---|---|---|---|---|---|---|
bidi | bitblt | bitmap | cabinet | capi | caret | cdrom | cfgmgr32 |
class | clipboard | clipping | combo | comboex | comm | commctrl | commdlg |
computername | console | crtdll | crypt | curses | cursor | d3d | d3d_shader |
d3d_surface | datetime | dc | ddeml | ddraw | ddraw_fps | ddraw_geom | ddraw_tex |
debugstr | devenum | dialog | dinput | dll | dma | dmband | dmcompos |
dmfile | dmfiledat | dmime | dmloader | dmscript | dmstyle | dmsynth | dmusic |
dosfs | dosmem | dplay | dplayx | dpnhpast | driver | dsound | dsound3d |
edit | enhmetafile | environ | event | eventlog | exec | file | fixup |
font | fps | g711 | gdi | global | glu | graphics | header |
heap | hook | hotkey | icmp | icon | imagehlp | imagelist | imm |
int | int21 | int31 | io | ipaddress | iphlpapi | jack | joystick |
key | keyboard | listbox | listview | loaddll | local | mapi | mci |
mcianim | mciavi | mcicda | mcimidi | mciwave | mdi | menu | menubuilder |
message | metafile | midi | mmaux | mmio | mmsys | mmtime | module |
monthcal | mpeg3 | mpr | msacm | msdmo | msg | mshtml | msi |
msimg32 | msisys | msrle32 | msvcrt | msvideo | mswsock | nativefont | netapi32 |
netbios | nls | nonclient | ntdll | odbc | ole | oledlg | olerelay |
opengl | pager | palette | pidl | powermgnt | process | profile | |
progress | propsheet | psa | pipsdrv | qcap | quartz | ras | rebar |
reg | region | relay | resource | richedit | rundll32 | sblaster | scroll |
seh | selector | server | setupapi | shdocvw | shell | shlctrl | snmpapi |
snoop | sound | static | statusbar | storage | stress | string | syscolor |
system | tab | tape | tapi | task | text | thread | thunk |
tid | timer | toolbar | toolhelp | tooltips | trackbar | treeview | ttydrv |
twain | typelib | uninstaller | updown | urlmon | uxtheme | ver | virtual |
vxd | wave | wc_font | win | win32 | wineboot | winecfg | wineconsole |
wine_d3d | winevdm | wing | winhelp | wininet | winmm | winsock | winspool |
wintab | wintab32 | wnet | x11drv | x11settings | xdnd | xrandr | xrender |
xvidmode |
Pour plus de détails au sujet des canaux de déboguage, voir le "The Wine Developer's Guide".
[modifier] WINEDLLOVERRIDES=[DLL surclassées]
Il n'est pas toujours possible d'exécuter une application avec les DLL incorporées. Quelquefois les DLL natives fonctionnent mieux. Bien que ces DLL puissent être surclassées en utilisant winecfg, vous pouvez préférer utiliser la variable d'environnement WINEDLLOVERRIDES pour ce faire.
Par exemple, si vous désirez que Wine utilise les DLL natives ole32.dll, oleaut32.dll et rpcrt4 vous pouvez lancer wine comme cela :
$ WINEDLLOVERRIDES="ole32,oleaut32,rpcrt4=n" wine nom_programme
Pour plus d'informations au sujet du surclassement de DLL, référez-vous à la section "Suclasser des DLL" de ce guide.
[modifier] Options en ligne de commande de wineserver
Normalement wineserver est démarré automatiquement par Wine chaque fois que démarre le premier processus de Wine. Cependant, wineserver possède quelques options pratiques en ligne de commande que vous pouvez ajouter si vous le démarrez manuellement, par exemple via un script de connexion automatique ou similaire.
[modifier] -d<n>
Etablit le niveau de déboguage pour la sortie du déboguage, dans la console où wineserver fut démarré, au niveau <n>. En d'autres termes : Tout ce qui est supérieur à 0 activera la sortie de déboguage spécifique de wineserver
[modifier] -h
Affiche le message d'aide des options de wineserver en ligne de commande.
[modifier] -k[n]
Tue le wineserver en cours, en option avec le signal n.
[modifier] -p[n]
Ce paramètre rend wineserver persistant, en option pour n secondes. Il empêchera wineserver de s'arrêter immédiatement.
Habituellement, wineserver quitte presque immédiatement après le dernier processus de Wine utilisant ce wineserver. Cependant, puisque wineserver charge beaucoup de choses au démarrage (telles que la totalité des données du registre de Windows), son démarrage peut être si lent qu'il est recommandé de l'empêcher de s'arrêter après la fin de toutes les sessions de Wine, en le rendant persistant.
[modifier] -w
Ce paramètre fait attendre une nouvelle instance de wineserver jusqu'à ce que l'instance de wineserver en cours s'arrête.
[modifier] Etablir les variables d'environnement Windows/DOS
Votre programme peut nécessiter des variables d'environnement correctement configurées pour fonctionner avec succès. Dans ce cas vous devez établir ces variables d'environnement dans le shell Linux, puisque Wine transmettra la totalité des paramètres des variables d'environnement du shell dans l'espace des variables d'environnement de Windows. Exemple pour le shell Bash (d'autres shells peuvent avoir une syntaxe différente !) :
export MA_VAR_ENV=parametres_ma_var_env
Cela garantira que votre programme Windows peut accéder à la variable d'environnement MA_VAR_ENV une fois démarré votre programme en utilisant Wine. Si vous désirez avoir MA_VAR_ENV établie en permanence, alors vous pouvez placer les paramètres dans /etc/profile, ou aussi ~/.bashrc dans le cas de Bash.
Remarquez cependant qu'il y a des exceptions à cette règle : Si vous désirez modifier les variables PATH, SYSTEM ou TEMP, vous ne pouvez le faire de cette façon, puisque cela modifiera aussi les paramètres de l'environnement Unix. A la place vous devez les établir dans le registre. Pour cela lancez le regedit de Wine puis allez dans HKEY_CURRENT_USER/Environment key. Maintenant vous pouvez créer ou modifier les valeurs des variables que vous voulez.
- "System" = "c:\\windows\\system"
Ceci déclare où sont les fichiers du système Windows. Le répertoire windows/system doit résider dans le répertoire utilisé pour les paramètres Windows. Ainsi en utilisant /usr/local/wine_c/windows pour le chemin Windows, le répertoire windows/system doit être /usr/local/wine_c/windows/system. Il doit être établi sans slash en trop, et vous devez posséder les droits en écriture sur lui
- "Temp" = "c:\\temp"
C'est le répertoire où vous souhaitez voir vos fichiers temporaires enregistrés, /usr/local/wine_c/temp dans notre exemple précédent. Encore, pas de slash en trop, et vous devez posséder les droits en écriture !!.
- "Path" = "c:\\windows;c:\\windows\\system;c:\\blanco"
Se comporte comme le paramètre PATH de Unix. Quand Wine est lancé comme wine sol.exe, si sol.exe réside dans un répertoire du PATH, Wine l'exécutera (bien sur, si sol.exe réside dans le répertoire courant, Wine exécutera celui là). assurez vous que le Path contienne toujours vos répertoires Windows et system (Pour cette configuration, il doit avoir "c:\\windows;c:\\windows\\system").
[modifier] Programmes en mode texte (CUI: Console User Interface)
Les programmes en mode texte sont des programmes dont les sorties ne contiennent que du texte (surprise !). En terminologie Windows, ils sont appelés exécutables CUI (Console User Interface), par opposition à exécutables GUI (Graphical User Interface). L'API Win32 fournit un jeu complet d'API pour gérer cette situation, qui s'étend depuis les caractéristiques de base comme l'impression de texte, jusqu'aux fonctionnalités de haut niveau (comme l'édition plein écran, le support de la couleur, le déplacement du curseur, le support de la souris), en passant par des caractéristiques telles que l'édition de lignes ou le support d'entrée de données brutes/traitées
Etant donné l'étendue très large des caractéristiques ci-dessus, et la coutume actuelle dans le monde Unix, Wine est fourni avec trois façons différentes d'exécuter un programme en console (aussi connu sous le nom de CUI executable (exécutable en interface utilisateur console)) :
- bare streams
- wineconsole with user backend
- wineconsole with curses backend
Ces noms sont un peu obscurs. "bare streams" signifie qu'aucun support supplémentaire de Wine n'est fourni pour mapper entre l'accès en console d'Unix et l'accès en console de Windows. Les deux autres méthodes exigent l'utilisation d'un programme spécifique de Wine (wineconsole) qui fournit des possibilités accrues. La table suivante décrit ce que vous pouvez faire (et ne pas faire) avec ces trois méthodes.
Tableau des différences essentielles en console
Fonction | Bare streams | Wineconsole & user backend | Wineconsole & curses backend |
---|---|---|---|
Comment lancer l'exécutable (en supposant qu'il s'appelle foo.exe) | $ wine foo.exe | $ wineconsole -- --backend=user |
$ wineconsole foo.exe
Vous pouvez aussi utiliser --backend=curses en option |
Bon support pour les applications CUI en ligne (qui impriment les informations ligne après ligne | oui | oui | oui |
Bon support pour les applications CUI plein écran (y compris, mais pas seulement, la couleur, support de la souris ...) | non | oui | oui |
Peut être exécuté même si X11 ne l'est pas | oui | non | oui |
Implémentation | Mappe les flux standards Windows vers les flux standards Unix (stdin/stdout/stderr) | Wineconsole créera une nouvelle fenêtre (d'où le besoin que la DLL USER32 soit disponible) où toutes les informations seront affichées | Wineconsole utilisera la console Unix existante (celle où le programme tourne) et avec l'aide de la bibliothèque (n)curses prend le contrôle de toute la surface du terminal pour interagir avec l'utilisateur |
Limitations connues | Produira un comportement bizarre si deux (ou plus) consoles Windows sont utilisées sur le même terminal Unix. |
[modifier] Configuration des exécutables CUI
Quand wineconsole est utilisé, plusieurs options de configuration sont disponibles. Wine enregistre (comme le fait Windows), sur la base de chaque application, plusieurs options dans le registre. Ceci permet à un utilisateur, par exemple, de définir la taille par défaut du buffer d'écran qu'il souhaite avoir dans une application donnée.
A partir d'aujourd'hui, seul le backend USER vous permet d'éditer ces options (nous ne recommandons pas d'éditer le contenu du registre à la main). Cette édition est rendue possible quand un utilisateur clique droit dans la console (cela affiche un menu en pop-up), dans lequel vous pouvez choisir entre :
- Default : Cela éditera les paramètres partagés par toutes les applications qui n'ont pas encore été configurées. Ainsi quand une application est démarrée pour la première fois (sur votre machine, sous votre compte) dans wineconsole, wineconsole fera hériter l'application de ces paramètres par défaut. Ensuite, l'application aura ses propres paramètres, que vous pourrez modifier à votre convenance.
- Properties: Cela éditera les paramètres de l'application.
Quand vous en aurez fini, avec l'édition, vous serez invités à dire si vous voulez :
- Ne garder ces paramètres modifiés que pour cette session (la prochaine fois que vous lancerez l'application, vous ne verrez pas les modifications que vous venez de faire)
- Utiliser les paramètres pour cette session et les sauvegarder, ainsi, la prochaine fois que vous lancerez l'application, vous utiliserez à nouveau ces paramètres.
Voici la liste des éléments que vous pouvez configurer, et leur signification :
Options de configuration | Signification |
---|---|
Cursor's size (taille curseur) |
Définit la taille du curseur. Tros options sont disponibles:
|
Popup menu | Il a été déjà dit que le popup de configuration de wineconsole était déclenché par un clic droit dans la console Windows. Cependant, cela peut être un problème quand l'application exécutée dans wineconsole s'attend à ce qu'un clic droit lui soit envoyé. En cochant "control" ou "shift" vous sélectionnez des modificateurs supplémentaires d'instruction sur le clic droit pour ouvrir le popup. Par exemple, cocher "shift" aura pour effet d'envoyer une information à l'application si vous cliquez droit dans la fenêtre sans appuyer sur "shift", et d'ouvrir la fenêtre popup quand vous cliquez droit en appuyant sur "shift". |
Quick edit | Cette case à cocher vous permet de choisir si un clic gauche de souris doit être compris comme un évènement à envoyer à l'application sous-jacente (case décochée) ou comme une sélection d'une partie rectangulaire de l'écran pour être copiée ensuite dans le presse-papiers (case cochée) |
History | Ceci vous permet de saisir de combien de commandes vous voulez que la console se souvienne. Vous pouvez aussi décider si vous voulez, quand vous entrez plusieurs fois la même commande - potentiellement entrelacées avec d'autres - qu'elles soient toutes enregistrées (case décochée) ou seulement la dernière (case cochée). |
Police | La feuille de propriétés des polices vous permet de choisir la police par défaut de la console (police, taille, couleur d'arrière plan et d'avant plan). |
Screenbuffer & window size (mémoire tampon d'écran et taille de la fenêtre) | La console telle que vous la voyez est composée de deux parties. D'un coté, il y a la mémoire tampon d'écran qui contient toutes les informations que votre application met à l'écran, et la fenêtre qui affiche une zone donnée de cette mémoire tampon d'écran. Notez que la fenêtre est toujours plus petite ou de la même taille que la mémoire tampon d'écran. Avoir une taille de fenêtre strictement plus petite provoquera l'affichage de barres de défilement sur la fenêtre afin que vous puissiez voir tout le contenu de la mémoire tampon. |
Close on exit (fermer à la sortie) | Si la case est cochée, alors wineconsole quittera quand l'application qu'elle contient aura terminé. Autrement, elle restera ouverte jusqu'à ce que l'utilisateur la ferme manuellement : ceci permet de voir la dernière information d'un programme après qu'il ait terminé. |
Edition mode |
Quand l'utilisateur entre des commandes, il peut choisir entre plusieurs modes d'édition :
|
[modifier] Troubles de fonctionnement / Rapporter les bogues
[modifier] Que faire si des programmes ne fonctionnent toujours pas
Il y a des fois après avoir tout essayé, vous avez même tué un chat à la pleine lune et l'avez mangé avec de l'ail pourri et du poisson putride tout en exécutant la danse du Diable, rien ne vous aide pour faire fonctionner un maudit programme avec Wine. Ne désespérez pas, nous sommes ici pour vous aider... (en d'autres termes : Combien êtes vous prêt à payer ?)
[modifier] Vérifiez votre configuration de Wine
Regardez la sortie de
$ wine --version
pour être sûr que vous utilisez une version récente de Wine. Lancez winecfg et examinez les paramètres, assurez vous qu'ils ont l'air normal. Regardez dans ~/.wine/dosdevices pour vous assurer que c: pointe là où il le doit.
[modifier] Utilisez des paramètres de différentes versions de Windows
Dans bien des cas, utiliser des paramètres de différentes versions de Windows peut aider. Voir #Paramétrage des applications.
[modifier] Utilisez différents chemins pour lancer l'application
Ceci aide quelquefois, aussi, essayez les deux possibilités :
$ wine prg.exe
et
$ wine x:\\full\\path\\to\\prg.exe
[modifier] Bricolez avec les configurations DLL
Exécutez avec WINEDEBUG=+loaddll pour identifier les DLL qui sont utilisées, et si elles sont chargées en natives ou incorporées. Ensuite assurez vous d'avoir des fichiers DLL correctes dans votre répertoire configuré C:\windows\system et bricolez les paramètres du chargement des DLL en ligne de commande ou dans le fichier de configuration.
[modifier] Vérifiez votre environnement système
Juste une idée : Ne se pourrait-il pas que votre environnement de construction/exécution de Wine ne soit brisé ? assurez-vous qu'il n'y a aucun problème en relation avec les paquetages dont Wine dépend (gcc, glibc, bibliothèques X, OpenGL (!), ...). Par exemple des personnes ont des défaillances bizarres et découvrent l'utilisation de « mauvais » fichiers d'en-tête pour les "bonnes" bibliothèques !!! (résultat de jours de déboguage à désespérément essayer de trouver pourquoi cette fonction de bas niveau échoue d'une façon complètement inimaginable...ARGH !).
[modifier] Utilisez différents modes GUI (Gestionnaire de fenêtres)
Donnez des ordres à Wine via le fichier de configuration pour utiliser soit le mode bureau, le mode gestion ou le mode très laid "normal". Cela peut faire une sacrée différence.
[modifier] Vérifiez votre application !
Peut-être que votre application comporte une espèce de protection contre la copie ? Beaucoup de protections anti-copie ne fonctionnent pas actuellement avec Wine. Certaines pourront marcher dans le futur. (la couche CD-ROM n'est pas encore complètement opérationnelle).
Allez sur GameCopyWorld et essayez de trouver un crack pour votre jeu qui vous débarrassera de cette horrible protection anti-copie. J'espère que vous avez bien une copie légale du programme, ...:-)
[modifier] Vérifiez votre environnement de Wine !
L'exploitation avec ou sans une partition Windows peut avoir un impact énorme. Configurez Wine pour faire le contraire de ce que vous avez l'habitude d'avoir. Aussi, installez DCOM98 ou DCOM95. Cela peut être très bénéfique. (Lebarhon: bizarre ?) :
[modifier] Reconfigurez Wine
Parfois le processus d'installation de Wine change et les nouvelles versions de Wine prennent en compte ces changements. C'est particulièrement vrai si votre configuration a été créée il y a longtemps. Renommez votre répertoire ~/.wine existant à des fins de backup. Créez une nouvelle configuration en utilisant le processus de configuration qui est recommandé pour votre distribution de Wine. Utilisez les informations contenues dans l'ancien répertoire ~/.wine en référence. Pour la distribution de Wine sous forme des sources, Wine se configure par l'exécution du script tools/wineinstall sous le compte de l'utilisateur pour lequel vous faites la configuration. C'est une opération assez sure. Plus tard vous pourrez effacer le nouveau répertoire ~/.wine et renommer l'ancien ainsi.
[modifier] Cherchez des informations complémentaires
Il y a de bonnes chances que quelqu'un ait déjà essayé de faire la même chose que vous. Vous pouvez trouver de l'aide dans les ressources suivantes :
- Recherchez dans la base de données WineHQ's Application Database toute astuce concernant le programme. Si votre version du programme n'est pas listée vous pouvez en trouver une différente qui contient assez d'informations pour vous aider.
- Frank's Corner contient une liste d'applications et des instructions détaillées pour les configurer. De l'aide complémentaire peut être trouvée dans le forum des utilisateurs.
- Google peut être utile suivant comment vous l'utilisez. Il peut s'avérer intéressant de chercher dans les groupes Google, en particulier dans le groupe comp.emulators.ms-windows.wine
- Freenode.net héberge un canal IRC pour Wine. Vous pouvez y accéder avec tout client IRC tel que Xchat. Les paramètres dont vous aurez besoin sont : serveur = irc.freenode.net, port = 6667, et canal = #winehq
- Si vous avez un programme qui nécessite le Runtime Environment de Visual Basic, vous pouvez le télécharger depuis ce site de Microsoft
- Si vous qu'il vous manque une DLL, telle que mfc42, vous pouvez la trouver à www.dll-files.com
- Les listes de diffusion de Wine peuvent aussi vous aider, particulièrement wine-users. La liste wine-devel peut être intéressante en fonction du problème que vous rencontrez. Si vous postez dans wine-devel vous devez vous attendre à devoir travailler un peu pour diagnostiquer le problème. Lisez la section ci-dessous pour découvrir comment déboguer la source du problème.
- Si tout le reste échoue, vous pouvez vous intéresser aux versions commerciales de Wine pour voir si votre application est supportée.
[modifier] Deboguez-le !
Trouver la source de votre problème est la prochaine étape à franchir. Il y a un large spectre de problèmes possibles depuis les problèmes de simple configuration jusqu'aux fonctionnalités pas du tout implantées dans Wine. La prochaine section va décrire comment enregistrer un rapport de bogue et comment déboguer un dysfonctionnement. Pour plus d'informations sur l'utilisation des utilitaires de déboguage de Wine, lisez impérativement le guide du développeur de Wine.
[modifier] Comment rapporter un bogue
Veuillez rapporter tous les bogues accompagnés de toute information utile sur le Bugzilla de Wine. Veuillez rechercher dans la base de données de Bugzilla si votre problème n'est pas déjà rapporté. Dans ce cas, veuillez ajouter toute information utile au rapport de bogue existant.
[modifier] Rapport de tout bogue
Quelques conseils simples pour réaliser un rapport de bogue plus efficace (et ainsi avoir plus de chances d'obtenir une réponse et un correctif) :
1 - Postez autant d'informations pertinentes que possible. Ceci signifie que nous avons besoin de plus d'information qu'un simple « MS Word plante à chaque fois que je le lance. Savez vous pourquoi ? » Incluant au moins les informations suivantes :
- Quelle version de Wine utilisez-vous ? (lancer wine --version)
- Le nom du système d'exploitation que vous utilisez, quelle distribution (s'il y en a une), et quelle version (ex: Linux Red Hat 7.2)
- Quels compilateur et version, (lancer gcc -v). Si vous n'avez pas compilé Wine, alors le nom du paquetage et où vous l'êtes-vous procuré ?
- Le version de Windows, s'il est utilisé avec Wine. Indiquez si vous n'utilisez pas Windows.
- Le nom du programme que vous essayez d'exécuter, sa version, et un URL d'où on peut se le procurer (s'il en existe)
- La ligne de commande exacte que vous utilisez pour lancer Wine. (par exemple : wine "C:\Program Files\Test\program.exe").
- Les étapes exactes nécessaires pour reproduire le bogue.
- Toute autre information que vous jugez utile ou pertinente, telle que la version du serveur X en cas de problèmes avec X, la version de libc etc.
2 - Relancez le programme avec l'option WINEDEBUG=+relay de la variable d'environnement WINEDEBUG (ex: WINEDEBUG=+relay wine sol.exe).
Ceci donnera des informations complémentaires sur la console qui pourront être utiles pour déboguer le programme. Cela ralentit aussi le programme. Il y a des cas où le bogue semble disparaitre quand +relay est utilisé. Veuillez le mentionner dans le rapport de bogue.
[modifier] Plantages
Si Wine plante en exécutant votre programme, il est important que nous ayons cette information pour avoir une chance de comprendre ce qui cause le plantage. Ceci peut générer beaucoup d'informations (plusieurs Mo), aussi, c'est mieux de les avoir sous forme de fichier. Quand l'invite Wine-dbg> apparaît, tapez quit
Vous pouvez avoir envie d'essayer
+relay,+snoop
à la place de
+relay,
mais veuillez noter que
+snoop
est relativement instable et souvent plantera plus vite qu'un simple
+relay
! Si c'est le cas, alors utilisez seulement
+relay
!! Un rapport de bogue avec un plantage dans le code
+snoop
est le plus souvent inutile ! Vous pouvez aussi invoquer d'autres paramètres, suivant la nature du problème que vous recherchez. Voir les pages man de Wine pour connaitre la liste complète des paramètres.
Pour obtenir une sortie de la trace, utilisez une des méthodes suivantes :
[modifier] La méthode facile
- Cette méthode permet même aux plus novices d'envoyer un fichier journal trace pertinent en cas de plantage. Votre ordinateur doit posséder perl pour utiliser cette méthode. Pour savoir si vous l'avez, lancez la commande which perl. S'il retourne quelque chose comme /usr/bin/perl vous êtes dans le coup. Autrement, passez à #La méthode difficile ci-dessous. Si vous n'êtes pas sûr, continuez. Quand vous essayerez de lancer le script, l'absence de perl deviendra vite évidente.
- Changez de répertoire poour aller dans <dirs to wine>/tools
- Tapez ./bug_report.pl et suivez les instructions
- Postez le bogue chez Wine Bugzilla. S'il vous plaît, vérifiez dans la base de données de Bugzilla si votre problème n'y est pas déjà avant de poster un rapport de bogue. Incluez votre propre description détaillée du problème avec les informations pertinentes. Liez le "rapport correctement formaté" au bogue soumis. Ne pas copier/coller le rapport dans la description du bogue - c'est trop gros. Gardez la sortie complète du déboguage au cas où elle serait demandée par les développeurs de Wine.
[modifier] La méthode difficile
Il est probable que seulement les 100 dernières lignes ou à peu près de la trace sont utiles pour trouver où plantent les programmes. Pour obtenir ces 100 lignes nous devons faire ce qui suit :
- Rediriger toutes les sorties de WINEDEBUG dans un fichier
- Séparer les 100 dernières vers un autre fichier en utilisant tail
Ceci peut être fait en utilisant une des méthodes suivantes :
- Tous les shells :
$ echo quit | WINEDEBUG=+relay wine [autres_options] nom_programe >& filename.out; $ tail -n 100 filename.out > fichier_rapport
(ceci enregistrera les messages de déboguage de Wine seulement dans un fichier puis quittera automatiquement. C'est surement une bonne idée d'utiliser cette commande, puisque Wine envoie tellement de messages de déboguage qu'ils inondent le terminal, consommant les cycles du CPU).
- tcsh et autres shells de type csh :
$ WINEDEBUG=+relay wine [autres_options] nom_programe |& tee filename.out; $ tail -n 100 filename.out > fichier_rapport
- bash autres shells de type sh :
$ WINEDEBUG=+relay wine [autres_options] nom_programe 2>&1 | tee filename.out; $ tail -n 100 filename.out > fichier_rapport
fichier_rapport va maintenant contenir les 100 dernières lignes de la sortie de déboguage, y compris dump et backtrace, qui sont les éléments d'information les plus importants. Veuillez ne pas effacer cette partie, même si vous ne comprenez pas ce qu'elle signifie.
Postez le bogue dans Wine Bugzilla. Vous devez y joindre le fichier fichier_rapport de la partie 2. Accompagné des informations pertinentes utilisées pour le créer. Ne pas copier/coller le rapport dans la description du bogue - c'est trop gros et il rendrait le rapport de bogue inexploitable. Si vous faites cela, vos chances de recevoir une quelconque forme d'aide devrait être très bonne.