Wine

Bild des Benutzers comrad

Wine ist ein Wrapper für Funktionsaufrufe, die an Microsoft Windows gerichtet sind, leitet diese um und ersetzt sie durch Linux-Funktionsaufrufe. Das gleiche geschieht mit Aufrufen an DirectX, die in OpenGL-Befehle umgewandelt oder emuliert werden. 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 auch eine kommerzielle besser unterstützte Version. Als grafische Oberfläche und Konfigurationswerkzeug kommt PlayOnLinux oder Winetricks zum Einsatz.

Installation

Bei den allermeisten Distributionen wird Wine mitgeliefert, bzw. befindet sich in den Repositories, die Installation gestaltet sich dementsprechend einfach.

Da jedoch alle 2 Wochen eine neue Wine-Version erscheint sind diese mitgelieferten Versionen sehr schnell veraltet. Es empfiehlt sich die aktuellste Version von der Webseite des Projekts zu installieren. Es wird die jeweils aktuellste Version in zahlreichen Paket-Formate angeboten.

Wine Staging

Wine Staging ist die Testumgebung für neue und experimentelle Anpassungen an WINE, die noch nicht in die Entwicklung eingeflossen sind. Wine Staging hat eine eigene Webseite: https://wine-staging.com

OpenSUSE

OpenSUSE bietet OBS Repositories an, mit denen man aktuellere Wine-Versionen nutzen kann: http://software.opensuse.org/package/wine

Wenn ein Browser genutzt wird wie Firefox oder Chromium z.B. könnt ihr da direkt "1-Click" anwählen und nach Angabe des root Passwortes wird wine in der ausgewählten Version automatisch installiert.

Die Version für eure Distribution müsste automatisch richtig ausgewählt werden. Ansonsten könnt ihr die richtige unten aus der Liste noch auswählen.

Wenn Ihr eine Aktuellere Version installieren möchtet welche nicht mit der Aktuellen Version mitgeliefert wird kann man einfach auf "Möglicherweise Instabile Pakete anzeigen" klicken.
Die Empfehlung liegt dabei die Version aus "Emulators:Wine" zu nutzen.

Ubuntu

Für Ubuntu wird ebenfalls ein Repository angeboten: http://www.winehq.org/download/deb

From Source

Zu erst solltet ihr die nötigen Abhängigkeiten zum bauen installieren.
Bei den meisten Distrubtions muss man dazu extra -dev oder -devel Pakete Installieren, bei Arch Linux zb. entfällt dies.
Bei Debian Distrubtions geht das ganze einfach mit folgendem Befehl:

 
apt-get build-dep wine

Bei anderen Distrubtions schaut bitte unter Recommended Packages im Wine Wiki (siehe Link).

  

Folgend führt ihr ./configure aus, dabei empfehle ich Wine via --prefix= in einen extra Ordner zu Installieren wenn ihr es gepatched habt, so das eure lokale Wine Version bleiben kann.
Der Ordner kann etwas wie $HOME/.local/share/wineversions/$wine_name sein.
Ich empfehle bei einem Programm wie Wine die CFLAGS anzupassen, als Arch User kann man hier einfach die Optionen aus /etc/makepkg.conf bzw. als Gentoo User /etc/portage/make.conf übernehmen.
Weitere Infos dazu gibt es in Compilation Optimization Guide, siehe weiterführende Links.
Der Rest ist einfach nur make && make install.

  

Konfiguration

In den neueren Wine-Versionen ist eine Windows-Oberfläche verfügbar, mit der Wine konfiguriert werden kann. Hier können Profile für bestimmte Programme angelegt werden und dabei spezielle Einstellungen geladen werden.

  

Wine-Prefixe

Mit dem WINE-Prefix bezeichnet man das Verzeichnis aus dem Wine heraus arbeitet. Standardmäßig, d.h. bei keiner besonderen Angabe, wird das Verzeichnis ~/.wine verwendet. Nun möchte man unter Umständen
verschiedene 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.

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. Möchte man das Programm vollständig löschen, so reicht es einfach das Prefix-Verzeichnis zu entfernen.

  

Start Script

Grade wenn man eine extra Wine-Version für ein Programm verwendet oder andere Dinge vor oder nach dem start des Programms erledigt werden soll empfiehlt es sich einen Script für das für das Programm zu schreiben und diesen nach $HOME/bin bzw. $HOME/.local/bin kopieren.

  

Dieser kann dann etwa so aussehen:

 
set_wine_ver () { # sehr praktisch bei gepatchten Wine Versionen
 
if [ -z "$1" ] ; then # unset wine version
  export LD_LIBRARY_PATH=
  export WINESERVER=
  export WINELOADER=
  export WINEDLLPATH=
  export BINPATH=
  WINE=
 
else  # use wine version from path given by "$1"
  export LD_LIBRARY_PATH="$1"/lib:$LD_LIBRARY_PATH
  export WINSERVER="$1"/bin/wineserver
  export WINELOADER="$1"/bin/wine
  export WINEDLLPATH="$1"/lib/wine
  export BINPATH="$1"/bin/
  WINE=$BINPATH/wine
fi
 
 
}
APPMAME='Star Wars: The Old Republic'
APPPATH='/home/bidar/.local/share/wineprefixes/swtor/drive_c/Program Files/Electronic Arts/BioWare/Star Wars - The Old Republic'
WINEPATH=/home/bidar/.wine-ver/swtor-git
WINEPREFIX=/home/.local/share/wineprefixes/swtor
cd "$APPPATH"
 
if [ "$WINEPATH" ] ; then
      set_wine_ver "$WINEPATH" # wine version setzen so das, dass Programm mit der Passenden Version startet
fi
export WINEPREFIX
${WINE:-wine} explorer /desktop=SWTOR,800x600 launcher.exe

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.

Alternativen

  • Crossover bzw. Crossover Games, basieren auf einer mehr oder weniger aktuellen Wine-Version, bringen aber eine benutzerfreundliche GUI sowie professionellen Support mit.
  • Cedega, basiert ebenfalls auf Wine, allerdings auf einer sehr alten. Wurde in den letzten Jahren stetig von Transgaming verbessert aber dann doch eingestellt.

Tools

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

Patches

Interessante Patches sind zum Beispiel:

Benutzung

Programme starten

Wine steuert seine Einstellungen über einen sogenannten WINEPREFIX. Dieser kann über die Konsole vor dem Aufruf von Wine gesetzt werden, um unterschiedliche Installationen zu konfigurieren.

WINEPREFIX=~/.wine

Um eine Einstellung via winecfg für Programm XY vorzunehmen gebt folgendes ein:

WINEPREFIX=~/.wine/xy/ winecfg

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=test64 winetricks d3dx9_29

Falls ihr die 32bit-Variante der Bibliothek benötigt, müsst ihr den WINE-Prefix zuvor mit

WINEARCH=win32 WINEPREFIX=~/test32 winecfg

anlegen. Dieser Parameter ist nachträglich nicht mehr änderbar.

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".

WineD3D

WineD3D ist der interne Wrapper für DirectX 9 bis DirectX 11-Aufrufe nach OpenGL. Ab Wine 6.0 wird über vkd3d auch Vulkan als alternativer Renderer verwendet. DXVK nimmt ebenfalls das Mapping vor, jedoch standardmäßig Richtung Vulkan.

Screenshots und Videos
Mastodon