Infos zu Linuxguides: WINE

XXXBold

Ensign
Registriert
Aug. 2019
Beiträge
150
Inhaltsverzeichnis
Übersicht
Erforderliche Vorkenntnisse
Was ist WINE
Befehle für WINE
wine
WINE-Prefixe
Hilfe und Support
Empfehlungen/Erfahrungen des Autors
Feedback, Kritik, Wünsche
Änderungen
TODO-Liste

Übersicht

Dieser Thread enthält allgemeine Informationen zu WINE und dessen Verwendung. Dazu zählen auch WINE-Prefixe und deren Aufbau, sowie die Verwendung von winecfg und winetricks.
Wichtig: Dies ist KEINE Anleitung für das Nutzen von WINE auf einer bestimmten Distribution oder für einen bestimmten Zweck!

Erforderliche Vorkenntnisse

Dieser Thread wird bei Bedarf von einem Guide für Linux verlinkt. Es ist nötig, dass die nötigen WINE-Pakete bereits installiert wurden (wine, winecfg, winetricks). Spezifische Kenntnisse für WINE sind das Arbeiten im Terminal. Englischkenntnisse sind erforderlich, um weiterführenden Quellen zu folgen und vorallem, um Informationen zur Kompatibilität einer Applikation zu finden und anzuwenden.
Für Allgemeines (als Einstieg) zu Linux auf dem Desktop dient der Meta-Guide.

Was ist WINE

WINE - Wine is not an Emulator ist eine Übersetzungsschicht der Windows (Win32) API zum Linuxhost.
Mithilfe von WINE laufen unter Linux Programme, die für Windows geschrieben wurden. Mehr Infos finden sich hier: https://www.winehq.org/.

Befehle für WINE

Für wine existieren unterschiedliche Befehle und Anwendungen. Auf einige wichtige wird im folgenden eingegangen.

wine

Ein Programm lässt sich mit WINE wie folgt starten:
Bash:
wine /path/to/program.exe
Im Optimalfall reicht dies bereits aus, um die Applikation zu verwenden.

Achtung! Wird ein Programm über WINE gestartet, so kommt es oft vor, dass in der Konsole viele (vermeintliche) Fehlermeldungen ausgegeben werden. Das ist kein Grund zur Panik, deshalb kann eine Anwendung trotzdem normal funktionieren.
Bei Fehlern können diese Ausgaben aber hilfreich sein und sollten bei Supportfällen unbedingt mitgeliefert werden, falls möglich.
Auch ist es möglich, dass das Starten einer Anwendung teilweise sehr lange dauert (Vorallem der erste Start). Das ist ebenfalls normal, deshalb ist hier Geduld angebracht, bevor die Ausführung abgebrochen und nach einem Fehler gesucht wird.

winecfg

Je nach Anwendung ist es nötig, spezifische Einstellungen der aktuellen virtuellen Windowsumgebung anzupassen, beispielsweise die an die Anwendung gemeldete Windowsversion.
Dazu kann winecfg genutzt werden:
Bash:
winecfg
Nach ausführen dieses Befehls, erscheint folgendes Fenster:
winecfg.png


Weiter können hier auch Überschreibungen für gewisse .DLLs eingestellt werden. Das ist vorallem dann nötig, wenn die integrierten .DLLs eine proprietäre Komponente nicht unterstützen (dürfen), z.B. Komponenten von DirectX.
Dies ist bei einigen Applikationen notwendig, damit sie korrekt funktionieren. Für eine Übersicht zur Kompatibilität befinden sich im Kapitel Hilfe & Support weiterführende Links.
winecfg-dlls.png


winetricks

Ein weiteres Tool, dass noch etwas mehr Möglichkeiten als winecfg bietet, ist winetricks: https://github.com/Winetricks/winetricks.
Mithilfe von winetricks können einige oft verwendete Abhänigkeiten direkt heruntergeladen und installiert werden, z.B. .NET-Runtimes. Die zur Installation verfügbaren .dlls lassen sich mit folgendem Befehl anzeigen:
Bash:
winetricks dlls list
Beispiel für die Installation von .NET 4.0:
Bash:
winecfg dotnet40
Auch einige Software kann direkt über winetricks installiert werden, verfügbare sind über folgenden Befehl einsehbar, die Installation funktioniert nach dem gleichen Schema wie für die .dlls:
Bash:
winetricks apps list

Wer eine grafisch geführte Benutzung bevorzugt, kann winetricks einfach ohne Argumente starten. Einige weitere Funktionen von winetricks werden im folgenden Kapitel erläutert.

WINE-Prefixe

Wenn ein Programm mit WINE ausgeführt wird, so benötigt dieses eine virtuelle Windowsinstallation auf dem Datenträger, welches die Windowsspezifische Struktur nachbildet (Programme, Windows, User, ..) sowie die Registry.
Ein WINE-Prefix ist die Sammlung aller Verzeichnisse einer solchen virtuellen Installation. Wird ein Programm über eine Setup.exe installiert, so werden dessen Dateien in das aktuell verwendete Prefix kopiert.

Das Defaultprefix liegt unter $HOME/.wine und wird für alle Operationen mit WINE verwendet, sofern vorher kein anderes Prefix ausgewählt wird.

Weitere WINE-Prefixe können ganz einfach angelegt werden. Dazu muss die Umgebungsvariable in der aktuellen Shell auf den gewünschten Pfad gesetzt werden (Pfad darf nicht existieren, resp. muss bereits ein Prefix enthalten!).
Neben dem Pfad kann auch ausgewählt werden, ob das Prefix 32- oder 64-bit sein soll. Das kann zum Teil relevant sein, da gewisse 32-bit Applikationen in einem 64-bit Prefix nicht laufen. (Standard, wenn nicht selber spezifiziert: 64-bit Prefix auf einem 64-bit OS)
Beispiel:
Bash:
export WINEPREFIX="$HOME/myhousewine/pfxNo1"
#optional für 32-bit, für 64-bit kann folgende Zeile weggelassen werden, resp, win32 zu win64 geändert werden
export WINEARCH=win32
Danach einfach eine Windowsapplikation via WINE in derselben Shell starten, dieses nutzt nun den eben gesetzten Pfad als Prefix (Und erstellt die entsprechenden Verzeichnisse automatisch):
Bash:
wine /path/to/app.exe
Achtung! Ein 32-bit Prefix kann nicht in ein 64-bit umgewandelt werden oder umgekehrt, es muss ein neues Prefix erstellt werden!

Mit unterschiedlichen Prefixen lassen sich so ganze Windowsumgebungen komplett voneinander isolieren. Wird ein Prefix, resp. die darin installierten Daten, nicht mehr benötigt, so kann einfach dessen Verzeichnis auf dem Datenträger gelöscht werden.
Falls vom Betriebssystem Verknüpfungen, z.B. im Startmenü, angelegt wurden, müssen diese ggf. manuell entfernt werden.

Aufbau eines Prefixes

Der Inhalt eines Prefixes sieht wie folgt aus:
Bash:
drwxr-xr-x 2 user user 4096 Dez 27 21:35 dosdevices
drwxr-xr-x 7 user user 4096 Dez 27 17:45 drive_c
-rw-rw-r-- 1 user user 4601749 Dez 27 17:46 system.reg
-rw-r--r-- 1 user user 3280 Dez 23 16:10 userdef.reg
-rw-rw-r-- 1 user user 47207 Dez 27 17:46 user.reg
dosdrives und drive_c enthalten die Verzeichnisse der virtuellen Windowsinstallation, normalerweise wird drive_c zum Ziel führen, ausser es wird eine alte Applikation genutzt, welches sich nach dem DOS-Schema installiert hat.
Im Verzeichnis drive_c befindet sich nun die dem Windowsnutzer vertraute Struktur, und darin die gespeicherten Daten (Hier von einem 64-bit Prefix):
Bash:
drwxr-xr-x 4 user user 4096 Dez 27 17:45 ProgramData
drwxr-xr-x 7 user user 4096 Dez 27 17:45 'Program Files'
drwxr-xr-x 7 user user 4096 Dez 27 17:45 'Program Files (x86)'
drwxr-xr-x 4 user user 4096 Dez 23 16:09 users
drwxr-xr-x 17 user user 4096 Dez 27 17:45 windows

Die Dateien mit der Endung .reg enthalten Daten der virtuellen Registry. Sollen an der Registry Anpassungen vorgenommen werden, sollte dies über winetricks erfolgen, nicht über das direkte editieren!
Dazu wird winetricks ohne Argumente gestartet, woraufhin folgendes Fenster erscheint:
winetricks-start.png

Nach Klick auf "Ok" erscheinen folgende Optionen:
winetricks-selectdefpfx.png

Nun wird "regedit starten" ausgewählt, gefolgt von einem erneutem Klick auf "Ok". Dies startet einen Editor für die Registry, ähnlich dem, wie er auch unter Windows bekannt ist:
winetricks-regedit.png


WINE-Mono und WINE-Gecko

Wird ein neues Prefix angelegt, so wird möglicherweise nachgefragt, ob WINE-Mono und/oder WINE-Gecko installiert werden sollen.
WINE-Mono ist eine Opensource-Implementierung des auf Windows bekannten .NET-Frameworks: https://wiki.winehq.org/Mono
WINE-Gecko ist ein Ersatz für den Internet Explorer (Viele Programme unter Windows benötigen Komponenten des Internet Explorers): https://wiki.winehq.org/Gecko

Beide Pakete sollten installiert werden, wenn danach gefragt wird.

Hilfe und Support

Empfehlungen/Erfahrungen des Autors

Auch wenn diese Informationen für einige Anwendungszwecke etwas umfangreich erscheinen mögen, empfehle ich dringend, dass sich zumindest grundlegend über die Funktionalität von WINE und dessen Prefixen informiert wird.

Auch wenn ein Frontend (PlayOnLinux, Lutris, ...) oder ein Fork (Proton) von WINE verwendet wird, ist es immer hilfreich, wenn man eine Ahnung hat, was im Hintergrund geschieht, vorallem dann, wenn es Probleme gibt.

Feedback, Kritik, Wünsche

Für Feedback/Wünsche zu diesem Beitrag: Hier rein. Für Verbesserungsvorschläge: Bitte zuerst die TODO-Liste prüfen, ob das Thema bereits vorhanden ist. Wollt ihr selber ein Kapitel für das Thema schreiben, bitte ich um Kontaktaufnahme per PN.
Der Thread wird von mir nach bestem Wissen und Gewissen erstellt. Es ist möglich, dass einige Information nicht 100% korrekt oder unvollständig sind, für Hinweise bin ich dankbar, auch gerne per PN wenn ihr nicht direkt hier posten wollt.

Änderungen

  • 04.01.2020: Thread erstellt
  • 05.01.2020: Inhaltsverzeichnis verbessert
  • 09.01.2020: Kapitel zu WINE-Mono und WINE-Gecko hinzugefügt
  • 14.01.2020: Typo, kleinere Verbesserungen
TODO-Liste

  • Feedback abwarten
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Tanzmusikus, ###Zaunpfahl###, sedot und 16 andere
Gute Anleitung zu allem, was man eigentlich zu Wine wissen müsste, vielleicht wäre eine Erwähnung von Gecko und Mono nicht schlecht, auch wenn die Installation von diesen meist ziemlich trivial ist
 
  • Gefällt mir
Reaktionen: XXXBold
tolle anleitung, gehoert eigentlich angepinnt. 👌
sobald ich wieder ein festes system habe, werde ich den mal ausprobieren. 💪
habe letztes jahrzehnt es nie hingekriegt, ein spiel unter wine laenger als 5 min zu spielen. 🙈
 
@anarchopreussin Steam Proton hat es in dem Sinne sehr einfach gemacht, Ich habe Just Cause 4 komplett unter Linux durchgespielt ohne weitere spezifische Konfiguration
 
  • Gefällt mir
Reaktionen: anarchopreussin
Zurück
Oben