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, 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.
L'avantage de cette solution par rapport à des machines virtuelles (VMware, VirtualBox):
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).
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:
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.
sudo apt purge wine*
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key sudo apt-key add winehq.key
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
focal
par hirsute
.sudo apt update
sudo apt install --install-recommends winehq-staging winetricks
sudo apt install aptitude sudo aptitude install winehq-staging winetricks --with-recommends
Une fois Wine installé, il est nécessaire de préparer les 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. 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 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.
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.
WINEPREFIX=~/.wine WINEARCH=win32 wineboot
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.
wineboot
.
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.
wine setup.exe
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:
~/.wine/drive_c
(ou ~/.wine64/drive_c
en 64 bits)./
(la racine de votre système Linux).~/apps
, donc j'installe les applications Windows dans Z:\home\sebsauvage\apps\
).
Comment savoir si une application est 32 ou 64 bits ?
file
pour savoir si c'est un exécutable 32/64 bits. Exemples:>file Prodeus.exe Prodeus.exe: PE32+ executable (GUI) x86-64, for MS Windows
>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
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.
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…
winetricks dxvk vcrun2019
Si votre jeu utilise DirectX 12, vous pouvez essayer d'ajouter vkd3d
, mais ce logiciel est encore récent votre jeu risque malgré tout de ne pas fonctionner. (Certains jeux comme Borderlands 3 peuvent être configurés pour utiliser DirectX 11 ou 12: Pour Wine, préférez 11.)
Pour lister les runtimes installés:
winetricks list-installed
winetricks dxvk
). Cela permet de faire fonctionner la majorité des jeux Windows nécessitant DirectX 9/10/11 avec d'excellentes performances, car il fait appel à l'API Vulkan (la plupart des cartes graphiques sont compatibles Vulkan). Avec ça, il est même probable que vous ayez de meilleures performances que sous Windows (!). Si l'installation d'un jeu propose l'installation de DirectX, pensez bien à décocher l'option.
Notes:
sudo winetricks --self-update
winetricks -f dxvk
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
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.
La branche "staging" de Wine évolue vite, avec plusieurs livraisons par an. Si une nouvelle version pose problème, vous avez la possibilité de revenir à une ancienne version.
>apt-cache madison winehq-staging winehq-staging | 6.5~focal-1 | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.4~focal-1 | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.3~focal-1 | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.2~focal-1 | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.1~focal-1 | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.0.0~focal-1 | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.0~rc6~focal | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.0~rc5~focal | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages winehq-staging | 6.0~rc4~focal | https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 Packages [...]
6.4~focal-1
.sudo apt remove winehq-* wine-* sudo apt autoremove VERS='6.4~focal-1' sudo apt install winehq-staging=$VERS wine-staging=$VERS wine-staging-i386=$VERS wine-staging-amd64=$VERS
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:
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.
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:
~/.steam/debian-installation/compatibilitytools.d/
Et Proton-GE devrait apparaitre dans la liste des versions de Proton disponibles.
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.
Vous pouvez:
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.
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…