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. Il existe également un logiciel payant basé sur Wine, CrossOver).

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, 78% 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 20.04.

  • 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 20.04 et Linux Mint 20.x, c'est:
    sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' 
  • 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. Il existe des préfixes 32 bits et des préfixes 64 bits, adapatés respectivement au lancement des applications Windows 32 et 64 bits.

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 utilisons seulement 2 préfixes: un pour 32 bits, un pour 64 bits, afin de limiter la duplication des fichiers.

Nous allons donc préparer deux répertoires (cachés, placés dans votre répertoire personnel):

  • ~/.wine : un préfixe 32 bits.
  • ~/.wine64 : un préfixe 64 bits.

Il est nécessaire de préparer ces préfixes pour chaque utilisateur de la machine.

Si vous aviez déjà des préfixes avec des logiciels installés dedans, sauvegardez-les car nous allons les effacer.

  • Supprimez les répertoires s'ils sont présents, et re-créez-les vides:
    rm -rf ~/.wine
    rm -rf ~/.wine64
    mkdir -p ~/.wine
    mkdir -p ~/.wine64

Il faut savoir que si vous ne spécifiez pas de préfixe quand vous lancez Wine, il utilisera le préfixe par défaut ~/.wine et démarrera en mode 32 bits. Mais on peut indiquer dans la ligne de commande quel préfixe et architecture utiliser.

  • Préparer le préfixe 32 bits:
    WINEPREFIX=~/.wine WINEARCH=win32 wineboot
  • Préparer le préfixe 64 bits:
    WINEPREFIX=~/.wine64 WINEARCH=win64 wineboot

Lors de cette préparation, Wine voudra télécharger des fichiers. Répondez “oui” quand il vous pose la question.

Si vous changez de version de Wine (à l'occasion d'une mise à jour), vous verrez que Wine repasse par cette phase de préparation (sans toutefois effacer vos fichier) lors du premier lancement d'un programme dans le préfixe.

Installation des logiciels

Vous devez installer le jeu/logiciel dans le préfixe correspondant: Si c'est un jeu 32 bits, dans le préfixe 32 bits. Si c'est un jeu 64 bits, dans le préfixe 64 bits.

  • Pour installer un jeu/logiciel 32 bits :
    wine setup.exe
  • Pour installer un jeu/logiciel 64 bits :
    WINEPREFIX=~/.wine64 WINEARCH=win64 wine setup.exe

(Car, si non spécifié, par défaut Wine uilisera le préfixe et l'architecture 32 bits.)

Notez bien que pour les applications Windows:

  • C: correspond au chemin ~/.wine/drive_c (ou ~/.wine64/drive_c en 64 bits).
  • 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\).

Comment savoir si une application est 32 ou 64 bits ?

  • Regardez sur le site officiel quelle version est proposée.
    • Si vous avez le choix, préférez la version 32 bits, car Wine est meilleur à émuler le 32 bits.
  • Regardez éventuellement le nom du fichier d'installation (“x86” ou “i386”=32 bits, “x86_64” ou “amd64”=64 bits)
  • Une fois le jeu décompressé, utilisez l'outils file pour savoir si c'est un exécutable 32/64 bits. Exemples:
    • Pour un exécutable 64 bits, vous verrez x86-64:
      >file Prodeus.exe
      Prodeus.exe: PE32+ executable (GUI) x86-64, for MS Windows
    • Pour un exécutable 32 bits, vous verrez Intel 80386:
      >file Mable.exe 
      Mable.exe: PE32 executable (GUI) Intel 80386, for MS Windows

Ne vous inquiétez pas si vous vous êtes trompé⋅e de préfixe: Quand vous lancerez le logiciel, Wine vous dira immédiatement que ce n'est pas la bonne architecture. Vous devrez alors déinstaller le logiciel de ce préfixe et aller l'installer dans le bon préfixe. Exemple de message d'erreur quand on lance un programme 64 bits dans un préfixe 32 bits:

0024:err:module:process_init L"Z:\\home\\sebsauvage\\apps\\Vignettes-windows\\Vignettes.exe" 64-bit application not supported in 32-bit prefix

Installation de runtimes supplémentaires

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

Il n'est pas toujours facile d'identifier les runtimes manquants, mais winetrick vous simplifiera grandement l'installation de ces librairies.

L'installation de runtimes avec winetricks fonctionne très bien en 32 bits, mais pas toujours en 64 bits. C'est pour cela que tant que c'est possible, je vous recommande d'utiliser les versions 32 bits des logiciels/jeux quand elles existent.

Typiquement, beaucoup de logiciels récents ont besoin de DotNet4. Vous pouvez l'installer facilement en ligne de commande avec:

winetricks dotnet40

(ou dans le préfixe 64 bits: WINEPREFIX=~/.wine64 WINEARCH=win64 winetricks dotnet40)

Pour lister les runtimes 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 installés:

winetricks list-installed

Lancement

Placez-vous dans le dossier où est installé votre programme Windows, et lancez-le:

wine monprogramme.exe

ou en 64 bits:

WINEPREFIX=~/.wine64 WINEARCH=win64 wine monprogramme.exe

Déinstallation des applications

Dans le préfixe 32 bits:

winetricks uninstaller

Dans le préfixe 64 bits:

WINEPREFIX=~/.wine64 WINEARCH=win64 winetricks uninstaller

Et choisissez l'application à dé-installer. Vous pouvez ainsi déinstaller les jeux/logiciels installés dans chaque préfixe, 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.

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.

PlayOnLinux

PlayOnLinux est un logiciel libre qui fournit plusieurs choses:

  • une interface graphique pour gérer les préfixes Wine
  • une création semi-automatique des raccourcis de lancement.
  • des scripts tout prêts pour certains logiciels/jeux facilitant leur installation (typiquement en installant les runtimes nécessaires automatiquement).

Cependant PlayOnLinux a tendance à créer beaucoup de préfixes, et au final la liste des jeux/logiciels supportés n'est pas forcément très grande.

J'ai cessé d'utiliser ce logiciel.

Autres logiciels

Je n'aborderai pas dans cette page les clients alternatifs (Lutris, le client itch.io (qui est aussi capable de lancer des jeux Windows), GOG Galaxy, GameHub…)

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.
    • 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: 2020/11/19 09:00 de sebsauvage