Wine est un programme pour exécuter des applications Windows sur des ordinateurs exécutant Unix.
Le lancement de Wine sur Windows a été un rêve devenu réalité pour les fans qui suivent l'appel du cœur "Nous faisons ce que nous devons, parce que nous n'avons pas à le faire", au moins depuis 2004, quand quelqu'un a essayé de compiler Wine dans Cygwin et a
cassé le registre des hôtes système .
Justification: "Mais qu'en est-il des anciennes applications qui ne fonctionnent pas correctement sous Windows récent?" Mais nous comprenons que la
vraie raison est "J'ai longtemps souffert pour mon art, maintenant c'est votre tour".
Fin 2008, j'ai été submergé par une obsession - et j'ai (il semble que c'était moi) créé la page
WineOnWindows sur le wiki Wine.
En bref: cela n'était pas possible du tout, car tout fonctionnait via Cygwin, MinGW ou Windows Services for Unix.
La page actuelle n'est pas beaucoup plus réussie.
Windows 10 a introduit le sous-système Windows pour Linux, et Ubuntu est facilement téléchargé à partir du Microsoft Store. En conséquence, notre idée stupide est réalisée presque d'elle-même, sauf si vous devez définir manuellement la variable d'environnement DISPLAY.
Jusqu'à présent, c'est à couper le souffle. Wine ne fonctionne qu'avec les applications Windows 64 bits, c'est-à-dire même pas avec toutes les applications fournies avec Windows 10 lui-même.
(Le projet initial a démarré après que quelqu'un n'a pas pu exécuter Encarta 97 sur Windows 10. Ainsi, comme toute vraie solution geek, il ne résout pas vraiment le problème d'origine de l'utilisateur).
Mais je tiens à souligner une fois de plus:
maintenant cela fonctionne trivialement . Je ne suis pas une sorte de génie fou qui a réalisé un projet fantastique - je semble juste être le premier à annoncer publiquement ce fait.
Comment faire cette chose stupide
1. Vous avez Windows 10 64 bits, non? Il s'agit de la seule version avec WSL.
2. Installez WSL. Panneau de configuration -> Applications -> Programmes et fonctionnalités -> Activer ou désactiver les fonctionnalités Windows. Cochez la case "Sous-système Windows pour Linux". Redémarrez Windows.
3. Accédez au Microsoft Store, installez Ubuntu (en gros, WSL a été créé pour le lancer). J'ai installé Ubuntu 18.04 LTS. Ouvrez Ubuntu et vous verrez le terminal bash.
4. Installez les éléments suivants à partir de la ligne de commande bash:
sudo dpkg --add-architecture i386 sudo apt update; sudo apt upgrade sudo apt install wine-stable
Vous pouvez installer une version plus récente de Wine si vous voulez vous
amuser (n'oubliez pas les deux nouvelles bibliothèques nécessaires pour wine-devel> = 4.5 et qui ne sont pas encore incluses dans Ubuntu!). Faites-moi savoir si cela fonctionne.
5. Ajoutez la ligne suivante à votre
.bashrc
:
export DISPLAY=:0.0
Vous voudrez probablement exécuter cela également dans la fenêtre bash actuelle.
6. Installez VcXsrv , une version joliment packagée de xorg compilée pour Windows - il suffit de récupérer la dernière version de l'exécutable et de l'exécuter. Lancez X Server via le bouton Démarrer et XLaunch. Il vous guidera à travers les défauts - laissez la plupart d'entre eux tels quels. Au cas où, j'ai coché la case "Désactiver le contrôle d'accès". Enregistrez la configuration.
6a. Si vous souhaitez vérifier que le serveur X est correctement configuré, installez
sudo apt install x11-apps
et exécutez
xeyes
pour un bref retour dans les années 80-90.
7. wine
lui-même ne fonctionne pas, car
les binaires 32 bits ne démarrent pas dans WSL . Sur notre Windows 10 64 bits, l'erreur
/usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error
. Apparemment, cela a été
corrigé dans WSL 2 .
En attendant, lancez le Bloc-notes dans Wine!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe
À FAIRE: prise en charge 32 bits. Nous devrons attendre la
sortie de WSL 2 . Je me demande si les anciens programmes Win16 fonctionneront - en théorie, ils devraient fonctionner dans Wine, même s'ils ne fonctionnent plus sous Windows lui-même.
Applications 32 bits via qemu
Merci à
un commentateur anonyme qui a suggéré comment aborder le lancement d'applications 32 bits.
sudo apt install qemu-user-static
sudo update-binfmts --install i386 / usr / bin / qemu-i386-static --magic '\ x7fELF \ x01 \ x01 \ x01 \ x03 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x03 \ x00 \ x03 \ x00 \ x01 \ x00 \ x00 \ x00 '--mask' \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xfc \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xf8 \ xff \ xff \ xff \ xff \ xff \ xff \ xff '
sudo service binfmt-support start
Et maintenant, nous pouvons faire:
fun @ DESKTOP-7F6DU8P: ~ $ wine --version
wine-3.0 (Ubuntu 3.0-1ubuntu1)
Cependant, Encarta 97 ne fonctionne toujours pas:
fun @ DESKTOP-7F6DU8P: / mnt / e $ wine SETUP.EXE
wine: erreur de page non gérée sur l'accès en lecture à 0xffffffff à l'adresse 0x11df: 0x00002c11 (thread 0011), démarrage du débogueur ...
0011: err: seh: start_debugger Impossible de démarrer le débogueur ("winedbg --auto 15 108") (2)
Lisez le Wine Developers Guide sur la façon de configurer winedbg ou un autre débogueur
Pour ceux du sujet: le
file
indique
SETUP.EXE: MS-DOS executable, NE for MS Windows 3.x
, nous devons donc descendre aux rares programmes 16 bits.
Encarta 97 s'installe et fonctionne parfaitement dans Wine 4.13 sous Linux ... mais toujours pas dans 4.13 sous Windows 10:
fun @ DESKTOP-7F6DU8P: ~ $ wine /mnt/e/SETUP.EXE
Xlib: extension "MIT-SHM" manquante sur l'affichage ": 0.0".
Xlib: extension "MIT-SHM" manquante sur l'affichage ": 0.0".
0009: err: processus: __ wine_kernel_init événement de démarrage attendre expiré
001d: err: process: __ wine_kernel_init boot event wait timed out
wine: erreur de page non gérée sur l'accès en lecture à 0xffffffff à l'adresse 0x11cf: 0x00002c11 (thread 001e), démarrage du débogueur ... 001e: err: seh: start_debugger Impossible de démarrer le débogueur ("winedbg --auto 28 152") (2)
Lisez le Wine Developers Guide sur la façon de configurer winedbg ou un autre débogueur
001d: err: ntdll: section RtlpWaitForCriticalSection 0x7e6273e0 "syslevel.c: Win16Mutex" délai d'attente dans le thread 001d, bloqué par 001e, réessai (60 sec)
Xlib: extension "MIT-SHM" manquante sur l'affichage ": 0.0".
Impossible de charger wine-gecko. Le rendu HTML sera désactivé.
001e: err: seh: raise_exception Code d'exception non géré c0000005 flags 0 addr 0x7b4a6abc
erreur client vin: 1e: écriture: descripteur de fichier incorrect
Bien sûr, il génère
différents messages d'erreur en plusieurs démarrages ...