Outils pour utilisateurs

Outils du site


wine

Wine

Présentation

Wine est une sorte de couche d'émulation des API Windows permettant de faire fonctionner la majorité des logiciels et jeux Windows sous Linux. (Valve a d'ailleurs inclus une version modifiée et améliorée de Wine dans Steam sous le nom de Proton (aussi appellé "Steam Play") qui permet de faire fonctionner une grande quantité de jeux Windows sous Linux.

Est-ce que votre logiciel ou jeu fonctionnera dans Wine ? C'est un peu la loterie, il n'y a pas de garantie. Mais la majorité passent sans problème: Selon les statistiques de ProtonDB, 80% des jeux Windows fonctionnent sous Linux.

Cette page est un guide pour installer, configurer et utiliser Wine. Un petit guide complémentaire pour Proton est fourni en fin de document.

Pour être tout à fait exacte, Wine n'est pas un émulateur ("WINE" = "Wine Is Not an Emulator"). Wine n'émule pas Windows, mais exécute directement les exécutables Windows, et redirige les appels des API Windows vers les API Linux (par exemple DirectX vers OpenGL/Vulkan).

L'avantage de cette solution par rapport à des machines virtuelles (VMware, VirtualBox):

  • Accès quasi-direct au matériel par les programmes, donc meilleures performances.
  • Moindre consommation mémoire.
  • Moindre consommation d'espace disque (pas besoin d'avoir un Windows entier installé).

L'inconvénient étant que Wine n'émule pas Windows dans sa totalité, et certains programmes spécifiques peuvent ne pas tourner (en particulier les jeux contenant des systèmes anti-triche, qui très souvent ne fonctionnent absolument pas dans Wine).


Installation

Les guides d'installation pour les différentes distributions sont disponibles dans cette page: https://wiki.winehq.org/Download

Nous allons expliciter l'installation pour Ubuntu ci-dessous:

Ubuntu

Il est possible d'installer Wine:

Je vous recommande chaudement d'installer depuis les dépôts de WineHQ, car vous bénéficierez des toutes dernières versions. L'équipe de WineHQ travaille vite et publie plusieurs versions par an améliorant la compatibilité avec les jeux.

Nous allons décrire ici l'installation pour Ubuntu 22.04 (et Linux Mint 21):

  • Commencez par supprimer (purger) les anciennes versions de Wine que vous auriez:
    sudo apt purge wine*
  • Si ce n'est pas fait, activez le support des architectures 32 bits:
    sudo dpkg --add-architecture i386
  • Ajoutez les clés du dépôt Wine:
    wget -nc https://dl.winehq.org/wine-builds/winehq.key
    sudo apt-key add winehq.key
  • Ajoutez le dépôt Wine. Pour Ubuntu 22.04 et Linux Mint 21, c'est:
    sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ jammy main' 
    • Pour Ubuntu 20.04 et Linux Mint 20.x remplacez jammy par focal.
  • Mettez à jour la liste des paquets:
    sudo apt update
  • Installez Wine (et winetricks)
    • Note: il existe plusieurs versions de Wine. La "Stable" est une version plus ancienne (et c'est généralement celle incluse avec votre distribution), mais je vous recommande prendre la "Staging". Elle est nettement plus récente, sans pour autant bouger autant que la version "Development". La version "Staging" est mise à jour plusieurs fois par an.
    • sudo apt install --install-recommends winehq-staging winetricks
      • Il est possible que apt ne s'en sorte pas avec les dépendances. Il peut parfois être utile de passer par aptitude:
        sudo apt install aptitude
        sudo aptitude install winehq-staging winetricks --with-recommends

Si vous avez une version d'Ubuntu plus ancienne que la 20.04:

Si vous avez une version d'Ubuntu plus ancienne que la 20.04:


Une fois Wine installé, il est nécessaire de préparer les préfixes.


Préparation des préfixes

Un "préfixe" (dans le vocabulaire de Wine) est un répertoire dans lequel Wine aura préparé un ensemble de fichiers nécessaires au lancement des applications Windows. Ces répertoires ont la même structure qu'un disque Windows: Si vous avez créé un préfixe ~/.wine, vous trouverez par exemple les programmes Windows installés dans ~/.wine/drive_c/Program Files.

Vous pouvez créer autant de préfixes que vous voulez (si vous voulez séparer vos installations), mais cela prendra plus de place. Dans cette page, nous utiliserons un unique préfixe. Wine utilise par défaut le répertoire .wine dans votre répertoire personnel.

Il est possible de créer des préfixes 32 et 64 bits. Depuis quelques versions, Wine créé par défaut un préfixe 64 bits. Avec les évolutions de Wine et winetricks, il n'est plus vraiment nécessaire de créer des préfixes 32 et 64 bits séparés: La majorité des applications 32 bits tournent sans problème dans un préfixe 64 bits. Si vraiment vous voulez créer des préfixes séparés, voir l'ancienne page.

Nous allons donc préparer le répertoire ~/.wine. Il est nécessaire de préparer ce répertoire pour chaque utilisateur de la machine. Cette préparation n'est à faire qu'une seule fois.

Si vous aviez déjà des préfixes avec des logiciels installés dedans, sauvegardez-les car nous allons les effacer. Si vous aviez des sauvegarde de jeux Windows, elles sont probablement stockées dedans.

On re-créé donc un préfixe Wine tout propre:

rm -rf ~/.wine
wineboot

Lors de cette préparation, Wine voudra peut-être télécharger des fichiers. Répondez "oui" quand il vous pose la question.

Installation de runtimes supplémentaires

Certaines applications et jeux ont besoin de runtimes et DLL supplémentaires pour fonctionner: DotNet, DirectX, Microsoft C++ Runtimes, etc.

Voici les packages qui vous permettront de faire fonctionner la majorité des jeux récents. Ces installations ne sont à faire qu'une fois.

winetricks vcrun2019

Cela va installer les DLL Microsoft Visual C++ (2015 à 2019) nécessaires à énormément de jeux, ainsi qu'à des moteurs 3D comme l'Unreal Engine (utilisé par beaucoup de jeux). Notez que 2 installeurs seront lancés: celui 32 bits (x86) et celui 64 bits (x64). Il vous faudra cliquer pour accepter l'installation.

winetricks dxvk

Cela va installer dxvk qui permet aux jeux Windows conçus pour DirectX 9/10/11 de fonctionner directement avec votre carte graphique (pour peu qu'elle soit compatible Vulkan sous Linux, ce qui doit être le cas de plus de 90% des cartes graphiques).

winetricks vkd3d

La même chose pour les jeux DirectX 12.

La plupart des jeux sont créés pour une version spécifique de DirectX. La vaste majorité des jeux utilisent DirectX 9/10/11, donc dxvk doit suffir dans la plupart des cas. Notez que certains jeux sont capables de fonctionner avec DirectX 11 ou 12 (par exemple: Borderlands 3). Si cela ne marche pas en 12, essayez en 11 (et inversement). Il est également possible que certains jeux ne fonctionnent pas du tout parce qu'ils utilisent des particularités de DirectX que dxvk ou vkd3d ne savent pas émuler.

(Note: Je sais que winetricks permet d'installer plusieurs packages à la fois, mais certains bugs de téléchargement semblent suvernir quand on fait cela. Je vous recommande d'utiliser winetricks pour installer un seul package à la fois.)


Installation des logiciels

Si le logiciel/jeux possède un installeur, lancez-le simplement avec:

wine installeur.exe
Si l'installeur du jeu vous propose d'installer DirectX ou les "Microsoft Visual C++ Runtime", pensez à bien décocher ces options, car il est préférable de les installer via winetricks (comme vu ci-dessus).

Notez bien que pour les applications et installeurs Windows:

  • C: correspond au chemin ~/.wine/drive_c
  • Z: correspond à / (la racine de votre système Linux).
Notez que vous n'avez absolument pas l'obligation d'installer les applications Windows dans C: (c'est à dire ~/.wine…): Vous pouvez les mettre ailleurs (Personnellement, j'ai un dossier ~/apps, donc j'installe les applications Windows dans Z:\home\sebsauvage\apps\).

Par la suite, pour lancer l'application, faites (là où est installée l'application):

wine application.exe

Il est possible que le jeu dépende d'autres packages/DLL. Il n'est pas toujours facile d'identifier les runtimes manquants, mais winetrick vous simplifiera grandement l'installation de ces librairies.

Par exemple, certains logiciels ont besoin de DotNet:

winetricks dotnet40

Pour voir la liste de package winetricks installables:

winetricks dlls list

Vous y retrouverez: Adobe Air, DirectX, DotNet, Adobe Flash, Internet Explorer 6/7/8, contrôle MS RichEdit, QuickTime, Shockwave, MS Visual Basic 2/3/4/5/6 runtime, MS Visual C++ runtimes librairies (vcrunXXXX), XNA…

Pour lister les runtimes déjà installés:

winetricks list-installed

Notes:

  • De temps en temps, pensez à mettre à jour winetricks:
    sudo winetricks --self-update
  • Et pour mettre à jour un package (par exemple dxvk):
    winetricks -f dxvk

Déinstallation des applications

winetricks uninstaller

Et choisissez l'application à dé-installer. Vous pouvez ainsi déinstaller les jeux/logiciels installés, ainsi que les runtimes que vous avez installés.


Astuces

Activation de Proton dans Steam pour tous les jeux

Proton est une version modifiée de Wine intégrée au client Steam. Par défaut, il n'est actif que sur quelques titre spécifiquement testés par Valve, mais il est possible de forcer l'activation pour tous les jeux (sans bien sûr la garantie qu'il fonctionne avec tous les jeux).

Pour effectuer cette activation:

  • Lancer Steam
  • Menu Steam > Paramètres
  • Steam Play > cocher Activer Steam Play pour les jeux compatibles et aussi Activer Steam Play pour tous les autres titres

Vous pouvez alors installer et lancer les jeux Windows.

Notez que plusieurs versions de Proton vous sont proposées. D'une manière générale, il vaut mieux choisir la version la plus récente. C'est elle qui sera utilisée par défaut.

Il peut arriver que certains jeux fonctionnent mieux avec d'anciennes versions de Proton. Dans les propriétés de chaque jeu, vous pouvez forcer la version de Proton. À vous d'essayer plusieurs versions de Proton pour faire passer un jeu.

Après avoir forcé la version de Proton sur un jeu, il est possible que Steam re-télécharge des fichiers ou que le bouton de lancement du jeu affiche "Mettre à jour". Cliquez dessus. Il est également possible que lors du lancement du jeu Steam décider d'installer les dépendances nécessaires (DirectX, msvcrt…). Cela peut prendre un certain temps.
Astuce: Si vous avez des jeux natifs Linux dans Steam qui ne démarrent pas, forcez l'utilisation de Proton ! Vous utiliserez alors la version Windows de ces mêmes jeux.
Astuce: Certains jeux existent dans Steam pour Linux et Windows. Il peut être intéressant d'essayer la version Windows de votre jeu, car parfois les versions Windows sont mieux maintenues que les version Linux et il est possible que vous ayez de meilleures performances avec les versions Windows des jeux (C'est flagrand pour Borderland 2 par exemple, dont la version Windows est beaucoup plus fluide que la version Linux).

Installation et mise à jour de Proton-GE dans Steam

Proton-GE est une version modifiée (et non officielle) de Proton intégrant des corrections et améliorations. Elle peut parfois permettre de faire passer des jeux qui ne passeraient pas avec les versions officielles de Proton.

Vous devrez la télécharger manuellement, et l'installer dans Steam.

Instructions:

Et Proton-GE devrait apparaitre dans la liste des versions de Proton disponibles.

Lancement de jeux Windows non-Steam avec Proton

Il est possible de lancer les jeux hors Steam depuis Steam afin de profiter de Proton (si par hasard un de vos jeux refuse de fonctionner sous Wine). L'avantage de lancer un jeu de cette manière est que cela facilite également la détection des manettes.

  • Lancez Steam
  • Menu Jeux > Ajouter un jeu non Steam à ma bibliothèque…
  • Si votre jeu est déjà présent dans le menu de votre environnement de bureau, cochez juste la case correspondante et validez.
  • Si votre jeu n'est pas dans le menu, il faut aller le chercher sur disque:
    • Cliquez sur "PARCOURIR…"
    • Dans Type, choisissez: All files
    • Parcourez votre disque pour lui indiquer le fichier exe de votre programme. Validez.
    • Cliquez sur Ajouter les sélections.
  • Votre jeu apparaît désormais dans la liste des jeux.

Vous pouvez:

  • Renommer le jeu dans la liste ou changer son icône: Clic-droit sur le jeu > Propriétés
    • C'est également là que vous pouvez choisir avec quelle version de Proton vous voulez le lancer.
  • Changer l'image du jeu ou l'image de fond dans la fiche du jeu: Dans la fiche du jeu, clic-droit sur le titre : Définir un logo personnalisé ou Définir un arrière-plan personnalisé

Notez que quand vous allez lancer le jeu, il y a de fortes chance que le bouton de lancement repasse immédiatement au vert. Laissez un peu de temps à l'ordinateur pour démarrer le jeu.

Interfaces

Il exiser des interfaces pour simplifier l'utilisation de Wine (par exemple la gestion des préfixes) ou apporter des fonctions supplémentaires: Lutris, Bottles, PlayOnLinux

FAQ

  • Mon jeu/logiciel ne fonctionne pas !
    • Lancez Wine en ligne de commande: Certains messages d'erreur vous guiderons peut-être sur la cause du problème.
    • Il manque peut-être un runtime Windows pour votre logiciel: DotNet ? DirectX ? Microsoft Visual C++ runtimes ? autres ? Les messages d'erreur pourront éventuelement vous aider. Utilisez winetricks pour installer les runtimes manquants.
    • Regardez s'il y a un fichier readme ou lisezmoi là où est installé le logiciel. Il arrive que les développeurs y indiquent les runtimes nécessaires à leur logiciel.
    • Parfois même, certains sous-répertoires du jeu contiennent les runtimes à installer. Explorez (est-ce qu'il y a un sous-répertoire "Redist", par exemple ?)
    • Une nouvelle version de Wine est sortie ? Ré-essayez votre logiciel ! WineHQ travaille en permanence à améliorer la compatibilité des logiciels, et il est possible que votre logiciel ou jeu fonctionne avec une nouvelle version de Wine.
    • Essayez aussi de mettre à jour winetricks, puis dxvk. De nouvelles versions de dxvk sortent régulièrement, augmentant le nombre de logiciels compatibles. Cela vaut le coup de ré-essayer.
    • Si vous avez Steam, essayez de lancer le jeu depuis Steam (donc avec Proton au lieu de Wine). Essayez avec différentes versions de Proton.
wine.txt · Dernière modification: 2022/08/03 13:24 de sebsauvage