Wine

Aus wiki.archlinux.de

WINE (Wine Is Not An Emulator) beschreibt eine Ausführungsschicht, die die native Win32-API auf die entsprechenden Linux-Derivate abbildet. Es wird nicht wie beispielsweise bei VirtualBox eine komplette virtuelle Maschine simuliert, sondern ausschließlich die Windows-Ausführungsschicht für Linux bereitgestellt. Ältere Programme aus Win95/98(SE) Zeiten funktionieren in der Regel recht gut, aber auch bei neueren Programmen hat Wine mittlerweile gewaltige Fortschritte erzielen können.

Um Wine installieren zu können muss man das multilib-Repo in der /etc/pacman.conf aktivieren

[multilib]
Include = /etc/pacman.d/mirrorlist

Installation

Das Programm ist als wine in multilib verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S wine

Das Repository multilib ist standardmäßig nicht aktiviert, und muss in der Konfiguration erst eingestellt werden. Multilib enthält 32-Bit-Pakete und -Librarys, die für den Betrieb auf 64-Bit-Systemen vorgesehen sind.

Konfiguration

Konfigurationsdialog

Eine Grundkonfiguration erhält man bereits mittels des Befehls:

winecfg

Es öffnet sich dann ein Fenster, in dem man Einstellung vornehmen kann. Die Windows-Version, Bibliotheken, Grafiken, die Desktop-Integration, Laufwerke (in denen Wine später Programme/Spiele etc. ablegen wird) und die Audio-Einstellungen lassen sich hier ziemlich simpel vornehmen. Als Laufwerk lässt sich das von den unter „Windows“ ausgeführten Programmen benutzte CD/DVD-ROM Laufwerk ebenfalls auswählen.

Generell funktioniert die Audioausgabe mittels ALSA, allerdings kann es bei einigen Anwendungen Probleme geben. Hierzu gibt es entsprechende Infos auf der Wine-Projekt Homepage. [1] Hier hilft es oftmals den OSS-Treiber zu verwenden beziehungsweise auf eine gepatchte Wine-Version auszuweichen.

Die Konfigurationsdaten werden im Homeverzeichnis des angemeldeten Benutzers unter „.wine“ abgespeichert und lassen sich hier auch manuell editieren.

Benutzung

Um eine beliebige Windows-Exe auszuführen startet man „wine“ gefolgt von der gewünschten Datei.

wine programmname.exe

In der Regel sollte ein Programm dann entweder starten oder im Terminal zumindest Feedback geben, was nicht funktioniert. Oftmals hilft auch ein Blick in die AppDB des WineHQ Projektes, da hier oftmals Workarounds gepostet werden, die so manche Applikation zum laufen gebracht haben. Die installierten Programme liegen unter „.wine/drive_c/programmname“ und lassen sich durch einfaches löschen des entsprechenden Programmordners entfernen. Zudem gibt es hierfür noch zusätzlich den integrierten uninstaller der sich über ein Terminal mit dem Befehl …

uninstaller

… aufrufen lässt. Dieser funktioniert ähnlich dem Windows-Uninstaller und entfernt vor allem einfachere Anwendungen meist zufriedenstellend. Zum anderen – sollte man noch nachkorrigieren müssen, weil zum Beispiel Reste in der Registry vorhanden sind – gibt es hierfür den Registryeditor der sich über regedit ausführen lässt.

Umgebungsvariablen

Um Programme mit bestimmten Parametern zu nutzen gibt es verschiedene Umgebungsvariablen die man beim Start von Wine mitgeben kann.

Wineprefix

Wird Wine ohne Parameter aufgerufen so nutzt das Programm ~/.wine als Programmpfad. Es ist möglich die Programme schon bei der Installation an einen anderen Ort zu installieren:

WINEPREFIX=/home/user/Programm1 wine Programm
WINEPREFIX=/home/user/Programm2 wine Programm

Dies erstellt beim ersten Aufruf das Verzeichnis 'Programm1' in '/home/user' und legt dort die wine-typische Verzeichnisstruktur an. Jedes Wineprefix ist ein unabhängiger Installationsort. So lassen sich dann die Programme logisch voneinander trennen.

Winearch

Bei einem 64Bit System wird Wine normalerweise auch als 64Bit-Programm ausgeführt. Dies kann bei einigen Programmen unerwünscht sein. Um ein Programm im 32Bit-Modus zu betreiben muss bereits das Wineprefix für 32Bit eingerichtet sein.

WINEARCH=win32 WINEPREFIX=/home/user/32bit-wine winecfg

Dies legt ein Verzeichnis '32bit-wine' in '/home/user' an, und weißt Wine an in diesem Wineprefix als wine32 zu laufen.

MSI Installationen

Msexec mit Steam

Um eine MSI-Installation durchzuführen wechselt man mittels „cd“ in der Konsole in das Verzeichnis in dem die .msi Datei liegt. Als nächstes den Befehl

msiexec /a DATEI.msi

ausführen. Dann sollte der Installer starten.

Windows Dlls einbauen

Da nach der Installation von Wine nur die nötigsten DLL-Dateien – bzw. deren Alternativen – vorhanden sind, empfiehlt es sich, zwecks Performance und Fehlerbehebung, diese von einem PC mit einem Original-Windows XP/Vista System zu kopieren. Dabei sind die Lizenzbedingungen von Windows/Microsoft zu beachten. Als Alternative bieten sich DLL-Suchmaschinen wie dll-files.com an, über die frei verfügbare DLL-Dateien gesucht und heruntergeladen werden können. Wine gibt am Terminal meist Aufschluss darüber, welche DLLs einem Programm fehlen.

Sicherheit

Wie der Name schon sagt, ist Wine KEIN Emulator. Dies bedeutet, dass alles, was mittels Wine an Windows-Programmen ausgeführt wird, direkt auch das System beeinflusst. So kann Schadsoftware oder das bewusste herumprobieren mit diversen Tools zum Beispiel alle Dateien eines unter Wine als Laufwerk X: eingebunden home-Verzeichnisses löschen oder unbrauchbar machen. Auch können Internet-Würmer über einen mittels Wine verwendeten Internet-Explorer über die tatsächlich im System vorhandene Netzwerkkarte ins LAN vordringen und sich zum Beispiel über Samba-Shares (so sie über Wine verfügbar sind) auf andere Rechner verbreiten.

Probleme

Nutzt Ihr ein 64Bit System und bekommt bei dem start einer 3D Anwendung als Fehler:

Kein Anzeigegerät gefunden.

Dann müsst Ihr folgendes Paket installieren:

NVIDIA:
# pacman -S lib32-nvidia-utils
ATI:
# pacman -S lib32-ati-dri

Dies ersetzt das Paket: lib32-libgl. Bei der Frage ob dies ersetzt werden soll mit Ja bestätigen.

Wine ersetzt Standardprogramme

Bei der Installation/Ausführung von Windowsprogrammen kann es vorkommen das die Standardprogramme unerwünscht durch Windowsprogramme ersetzt wurden (z.B. gedit durch notepad) Diese Verhalten kann deaktiviert werden indem man die Ausführung des Programms 'winemenubuilder' verhindert:

  1. winecfg starten
  2. zum Reiter Bibliotheken wechseln
  3. im Feld Neue Überschreibung für: winemenubuilder.exe eintragen
  4. auf Festlegen klicken
  5. im Feld Bestehende winemenubuilder.exe auswählen und auf Bearbeiten klicken
  6. Deaktivieren auswählen und OK anklicken

Diese Vorgehensweise führt zu Fehlermeldungen im Terminal welche jedoch ignoriert werden können.

Gallium Nine Support

Durch den Einsatz von gallium nine könnt ihr die fps verdoppeln. Funktioniert nur mit OpenSource Treiber!

Zur nutzt von Gallium Nine Patches müsst ihr folgendes tun: Mesa aus dem repo installieren: https://wiki.archlinux.org/index.php/Unofficial_user_repositories#mesa-git

mesa-git-repo:
[mesa-git]
Server = http://pkgbuild.com/~lcarlier/$repo/$arch
SigLevel = Optional

Und wine aus dem AUR https://aur.archlinux.org/packages/wine-gaming-nine/ Kompilieren.

Sollten Grafikfehler auftreten mal versuchen mit:

DRI_PRIME=1 thread_submit=true wine zu starten

Weitere Infos zum gallium nine patch/Hilfe:

https://wiki.ixit.cz/d3d9 irc://chat.freenode.net/d3d9

Weblinks