Wine

Bild des Benutzers comrad

Was ist Wine?

Mit Wine lassen sich Windows-Anwendungen unter Linux laufen lassen. Dabei werden Funktionsaufrufe, die es eigentlich nur unter Windows gibt mit Wine nachgebaut und so der Anwendung zur Verfügung gestellt. Über viele Jahre hinweg wurden so entsprechend alle Windows-Aufrufe auch unter Linux ermöglicht. Daher ist Wine auch kein Emulator, sondern eher ein Wrapper um die Windows-API herum.

Neben Programmaufrufen werden auch Aufrufe für die grafischen Schnittstellen wie DirectX implementiert, dann intern aber nach OpenGL umgeleitet. Neuerdings werden diese Aufrufe mittels Zusatzprogrammen wie DXVK auf die neue Grafikschnittstelle Vulkan umgeleitet.

Viele Programme lassen sich so unter Linux zum Laufen bringen. Auch viele Spiele laufen mit Wine, wobei man hier besser die optimierte Variante Proton von Valve's Steam verwenden sollte. Mittlerweile funktionieren unter Wine zahlreiche Windowsprogramme. Ob das gewünschte Programm auch tatsächlich funktioniert ist jedoch meist Glücksache. Es gibt jedoch die WineHQ-Datenbank in welcher tausende von Programmen und Spiele gelistet sind und man sehr wahrscheinlich sein Programm finden kann.

Mit Crossover gibt es von der Firma Codeweavers aus Minnessota, USA auch eine kommerzielle besser unterstützte Version. Als grafische Oberfläche und Konfigurationswerkzeug kommt PlayOnLinux oder Winetricks zum Einsatz. Speziell für Spiele wird über Steam Wine der Form von Proton inklusive etlicher zusätzlicher Tools und Bibliotheken ausgeführt.

Eine Besonderheit der Firma Codeweavers ist, dass sie viele der Entwicklungen direkt an die Community geben und auch ein Beta-Programm für Abonnenten haben. Im Rahmen von Tests kann man Punkte sammeln und später ab einer bestimmten Stufe auch eine kostenlose Lifetime-Version von CrossOver bekommen. Ebenso gibt es zahlreiche Goodies wie T-Shirts, Aufkleber, Mauspads etc.

Varianten

  • Wine-Stable: Die stabile Version von wine, die jedes Jahr im Herbst einen Codefreeze erhält um die Entwicklungen des Entwicklerzweigs wine-devel zu integrieren und zu bündeln. Die aktuelle stabile Version ist Version 11.0
  • Wine-Devel - Wer die laufende Entwicklung von wine verfolgen will bekommt mit wine-devel alle zwei Wochen eine neue Version zum Testen als auch zum Reproduzieren von Bugs. Regressionen (Jargon für: Hat funktioniert - funktioniert jetzt nicht mehr) sind definitiv nicht auszuschließen.
  • Wine-Staging - basiert auf dem Entwicklerzweig wine-devel (Is. oben) ist aber um einige Patches ergänzt, die getestet und später in wine integriert werden sollen. Im Bugzilla von wine existieren viele solcher Patches und Tester werden ausdrücklich ermutigt zu den einzelnen Bugs Feedback zu geben.
  • Proton ist eine für Spielen optimierte Version von Valve.
  • Crossover (früher Crossover Games)), basiert auf einer mehr oder weniger aktuellen Wine-Version, bringen aber eine benutzerfreundliche GUI sowie professionellen Support mit. Ist daher aber nur kostenpflichtig im Abo zu beziehen.

Inzwischen eingestellt:

  • Cedega (davor WineX), basiert ebenfalls auf Wine, allerdings auf einer sehr alten. Wurde in den letzten Jahren stetig von Transgaming verbessert aber dann doch eingestellt.

Installation

Bei den allermeisten Distributionen wird Wine mitgeliefert, bzw. befindet sich in den Repositories, die Installation gestaltet sich dementsprechend einfach. Man kann es aber natürlich auch direkt von den Entwicklern beziehen, wenn man sich die Mühe machen möchte.

Debian / Ubuntu

Sowohl in Debian als auch in Ubuntu könnt ihr Wine ganz einfach aus dem Standard-Repository laden.

apt install wine

Möchtet ihr es trotzdem direkt von den Wine-Entwicklern beziehen, dann hilft euch die Anleitung im Wine-Wiki weiter: Link

openSUSE

In den Standard-Repositories könnt ihr euch wine oder wine-staging installieren:

sudo zypper in wine

oder

sudo zypper in wine-staging

Wie ihr Wine vom Projekt selbst installieren könnt, verrät euch das Wine-Wiki: Link

Slackware

Pakete von wine als auch von Entwicklerversionen werden zeitnah paketiert und auf sourceforge.net in einem separaten Verzeichnis veröffentlicht.

Konfiguration

Wine-Prefixe

Mit dem Wine-Prefix bezeichnet man ein virtuelles Verzeichnis, das ein Windows-Verzeichnisbaum nachbildet. Man trennt so verschiedene Programme voneinander ab, da oftmals spezielle Einstellungen notwendig sind, damit ein Programm läuft. Auch kann man über die verschiedenen Verzeichnisse auch unterschiedliche DirectX-Versionen oder ähnliches installieren. So kommen sich die wählbaren Windowsversionen von wine und verschiedenen Abhängigkeiten nicht in die Quere.

Standardmäßig, d.h. bei keiner besonderen Angabe, wird das Verzeichnis ~/.wine verwendet. Nun möchte man unter Umständenverschiedene Programme nicht miteinander vermischen, da eventuell unterschiedliche Konfigurationen je Programm gebraucht werden. Mit einem WINE-Prefix verwendet man für jedes Programm ein "frisches" Windows. Manche Programme und Spiele zum Beispiel "Anarchy Online" müssen beispielsweise unter einem Windows XP Prefix laufen.

Die einfachste Form ist über den Umgebungsparameter vor dem Wine-Aufruf:

WINEPREFIX=~/.wine-anno wine ~/wine-anno/drive_c/meinprogramm.exe

Existiert das Verzeichnis noch nicht, so wird es von Wine automatisch angelegt. Alternativ könnt ihr auch

WINEPREFIX=~/wine-anno wineboot

ausführen.

Möchte man das Programm vollständig löschen, so reicht es einfach das Prefix-Verzeichnis zu entfernen.

Wine-Prefix (32-bit) und Änderung ab wine 11.0

Falls ihr ein 32bit-Programm mit Wine starten wollt, müsst ihr das dem Wineprefix zuvor bekannt geben. Initialisiert euren Wine-Prefix bei der Erstellung dazu mit

WINEARCH=win32 WINEPREFIX=~/wine-anno wineboot

anlegen. Dieser Parameter ist nachträglich nicht mehr änderbar und wird ab wine 11.0 auch nicht mehr weiter unterstützt.

winecfg

In den neueren Wine-Versionen ist eine Windows-Oberfläche über das Programm winecfg verfügbar, mit der Wine konfiguriert werden kann. Hier können Profile für bestimmte Programme angelegt werden und dabei spezielle Einstellungen geladen werden.
Startet winecfg am besten in eurem jeweiligen Wine-Prefix:

WINEPREFIX=~/wine-anno winecfg

Dosbox-Integration

Das Dosbox-Projekt wurde seit Wine 1.3.12 integriert und leitet seitdem Aufrufe von DOS-Executables direkt an Dosbox weiter, um sie ausführen. Dazu muss sich das Programm im Wine-Prefix befinden und Dosbox installiert sein.

.net Integration

Über ein Skript namens winetricks können .net Bibliotheken direkt von Microsoft bezogen und in das jeweilige Prefix (s. oben) eingebunden werden. Bis zur Version 4.8 existiert mit mono auch eine freie Implementierung von .net wobei Microsoft kürzlich die Schirmherrschaft darüber an Codeweavers, dem Hauptsponsor von wine, abgegeben hat. mono ist jedoch nicht zu 100% identitisch zu wine und manchmal benötigt man ein orignal Microsoft Paket.

Tools

Es gibt zahlreiche Frontends für Wine, welche einem das Leben einfacher machen:

Patches

Interessante Patches sind zum Beispiel:

Diese Patches sind alle bereits in Proton enthalten.

Benutzung

Bis auf ein paar Besonderheiten bei MSI oder den Bibliotheken wie DirectX (siehe weiter unten), könnt ihr eurer Programm ganz normal über z.B. die setup.exe aufrufen:

WINEPREFIX=wine-anno setup.exe

MSI-Installation

Wichtig zur Installation ist auch das Tool msiexec, das mit wine mitgeliefert wird. Mit ihm lassen sich MSI-Pakete ausführen (z. B. für STEAM). Man verwendet msiexec für die Installation eines MSI-Installationsarchives wie folgt:

msiexec /i DATEI.msi

Bibliotheken mit winetricks nachinstallieren

Winetricks bietet viele nützliche herunterladbare Bibliotheken an. Damit ihr diese gegenüber den von Wine-integrierten DLLs benutzen könnt, müsst ihr sie wie folgt installieren:

WINEPREFIX=wine-anno winetricks d3dx9_29

CD/DVD-Wechsel

Linux sperrt bei Zugriffen auf Speichermedien die Möglichkeit diese zu unmounten. Das ist bei einer Installation, die mehrere CDs/DVDs umfasst natürlich schlecht. Daher könnt ihr folgendes benutzen

wine eject

Das gibt eurer Laufwerk frei und ihr könnt den Datenträger auswechseln.

Prinzipiell geht alles was zu Wine gehört nach ~/.wine/ . Dort befinden sich auch die Links zu den "Windows-Laufwerken".

Screenshots und Videos
Mastodon