Windows-API bequemer konfigurieren

WINE-Prefixes für einzelne Anwendungen erstellen

Viele Programme lassen sich leichter mit WINE betreiben, wenn ihre Laufzeitumgebung auf sie zugeschnitten wird. Allerdings ist es zeitraubend, vor jedem Programmstart DLLs, Registry-Einstellungen und ähnliches anzupassen. Hierfür kennt WINE sogenannte Prefixes.

Lösung: Aus Sicht der installierten Anwendungen repräsentiert jedes WINE-Prefix eine neue Windows-Installation, für die jeweils eigene Einstellungen vorgenommen werden können. Konfiguriert man WINE allerdings nicht ausreichend, so wird jede Anwendung in dasselbe Prefix installiert. Hier kann sich das Programm mit bereits installierter Software in die Quere kommen.

Ohne Prefix-Konfiguration: Alle Programme landen im selben Ordner.
Ohne Prefix-Konfiguration: Alle Programme landen im selben Ordner.
Foto: PlayOnLinux-Projekt

Da die Prefixes als Verzeichnisse umgesetzt werden, liegt dieses Standard-Prefix im Ordner ~/.wine. Dort finden sich die WINE-Einstellungen, die Windows-Registry und die virtuelle Festplatte C. Dieser Speicherort lässt sich leicht ändern: Startet man ein Programm beispielsweise mit dem Aufruf WINEPREFIX=~/.wine-notepad wine notepad.exe, so sucht WINE nicht in ~/.wine, sondern in ~/.wine-notepad nach dem oben erwähnten Datensatz.

Dort befindet sich zwar noch nichts, jedoch erstellt WINE in diesem Verzeichnis automatisch einen weiteren Programmordner. Da dieser gemäß den Standardeinstellungen auch notepad.exe beinhaltet, wird das Programm anstandslos in einer von der Hauptinstallation unabhängigen Umgebung gestartet. Sämtliche Einstellungen, die hier am System vorgenommen werden, bleiben für den nächsten Start erhalten - vorausgesetzt, dem Programmaufruf wird wieder die Definition von WINEPREFIX vorangestellt.

Besseres Prinzip: Für jede Anwendung wird ein eigenes Prefix erstellt.
Besseres Prinzip: Für jede Anwendung wird ein eigenes Prefix erstellt.
Foto: PlayOnLinux-Projekt

Dabei ist man nicht auf einfache WINE-Einstellungen wie die darzustellende Windows-Version oder das verwendete Soundsystem beschränkt. Auch per winetricks installierte DLLs, Veränderungen an der Registry und ähnliche Anpassungen werden für diese Umgebung gespeichert. So kann man beispielsweise in einem für Office-Anwendungen gedachten Prefix Pakete wie das .NET-Framework, diverse Mediencodecs oder die Kernschriftarten von Windows installieren. Gleichzeitig wird in dem für 3D-Darstellung vorgesehenen Prefix DirectX installiert und mit einigen Registry-Hacks auf das zu verwendende Programm angepasst. Dies erleichtert erstens die Konfiguration, und zweitens verringert sich der Leistungshunger von WINE durch die verschlankten Installationen ganz erheblich. Vor horrendem Speicherbedarf braucht man sich indes nicht zu fürchten: Jedes Prefix ist erst einmal nur rund 60 Mbyte groß, es kann also getrost auch für kleinere Programme ein eigener Ordner erstellt werden.

Es ist allerdings unbedingt zu beachten, dass die Umgebungsvariable WINEPREFIX vor jedem WINE-Aufruf das momentane Arbeitsverzeichnis beinhalten muss. Dies bezieht sich auch auf Helferskripte und -tools wie winetricks oder winecfg. Möchte man sich die Tipparbeit sparen, so ist schnell ein Skript zusammengestellt, das das momentane Prefix in eine Datei schreibt und diese von bash ständig neu einlesen lässt. Eine Beispielimplementation finden Sie hier. Dieses Skript nennt man beispielsweise /usr/local/bin/wpre und macht es mit chmod +x /usr/local/bin/wpre ausführbar. Außerdem muss die Definition von WINEPREFIX noch eingebunden werden, indem man source ~/.wine-prefix an das Ende von ~/.profile setzt. Danach lässt sich das oben erzeugte Prefix bequem mit dem Aufruf wpre notepad für alle zukünftigen Programmaufrufe einstellen.

Prefixes mit winetricks: Die GUI des praktischen Skripts ermöglicht eine Vielzahl von Aktionen im aktuellen Arbeitsverzeichnis
Prefixes mit winetricks: Die GUI des praktischen Skripts ermöglicht eine Vielzahl von Aktionen im aktuellen Arbeitsverzeichnis

Ein weiterer Vorteil dieser Vorgehensweise ist, dass unnötig gewordene Programme sehr schnell entfernt werden können. Löscht man das Prefix einer Anwendung, ist diese ebenfalls restlos entfernt. Damit bleiben keine dauerhaften Änderungen im System zurück, und die von Windows bekannte Überfrachtung der Registry mit veralteten Schlüsseln stellt beispielsweise kein Problem mehr dar. So lassen sich die einzelnen Prefixes auch als kleine Sandboxen verstehen. Man sollte allerdings im Auge behalten, dass WINE seinen Programmen nach den Standardeinstellungen Vollzugriff auf das Dateisystem gewährt. Ohne diese Privilegien zu beschneiden, bietet die Verwendung von Prefixes also keinen besseren Schutz vor Viren und anderen Gefahren.

Ähnliche Ansätze verfolgt übrigens das Skript winetricks sowie das Programm PlayOnLinux. Zieht man die Verwendung einer grafischen Oberfläche der Verwendung der Konsole vor, sind die beiden Tools allemal einen Blick wert.

Produkte: Grundsätzlich funktioniert WINE auf jedem System nach den gleichen Prinzipien. Diese Methode kann der Nutzer also allgemein anwenden. Lediglich die Definition des Prefixes muss von Betriebssystem zu Betriebssystem unterschiedlich vorgenommen werden. Die ausgeführte Methode mittels bash-Skript ist auf beinahe allen Desktop-Linuxen sowie Mac OS X benutzbar. (dre)