qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

Wine Is Not an Emulator, WineBottler, Playonlinux, ReactOS, Arwinss

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Anhang/ Nützliche Tools/ Wine]])

<<<|###| >>> | English


Der Qemu-Manager für Windows 6.0 unter Linux mit Wine.
Der Qemu-Manager für Windows 6.0 unter Linux mit Wine.
winecfg: Anwendungen.
winecfg: Anwendungen.
winecfg: Bibliotheken.
winecfg: Bibliotheken.
winecfg: Grafik.
winecfg: Grafik.
winecfg: Desktop-Integration.
winecfg: Desktop-Integration.
winecfg: Laufwerke.
winecfg: Laufwerke.
winecfg: Audio.
winecfg: Audio.
Wine: regedit.
Wine: regedit.
Der Wine-Befehlsprozessor.
Der Wine-Befehlsprozessor.
Das Skript winetricks.
Das Skript winetricks.
Winebuttler: Existing Prefixes.
Winebuttler:
Existing Prefixes.
Winebuttler: Create Custom Prefixes.
Winebuttler:
Create Custom Prefixes.
Winebuttler: Predefined Prefixes.
Winebuttler:
Predefined Prefixes.
Der Qemu-Manager für Windows unter Winebottler (Mac OS X).
Der Qemu-Manager für Windows unter Winebottler (Mac OS X).

Inhaltsverzeichnis

[bearbeiten] Wine, WineBottler

Website: http://www.winehq.org

Wine (Wine Is Not an Emulator) ist eine Windows-kompatible Laufzeitumgebung für POSIX-kompatible Betriebssysteme. Damit ist es möglich für Microsoft-Windows-Betriebssysteme kompilierte Programme unter BSD-Unix (*BSD, Solaris, Mac OS X) und Linux laufen zu lassen. Wine ist weder ein Emulator noch eine Virtualisierungslösung. Mit Wine wird das System um die entsprechenden Windows-APIs erweitert. Wine ist OpenSource (GNU LGPL) und benötigt keine Windows-Lizenz. Das Betriebssystem ReactOS (http://www.reactos.org) verwendet große Teile des Source Codes von Wine, da ReactOS kompatibel zur Microsoft Windows NT-Serie werden soll. Die Projekte Wine und ReactOS arbeiten eng zusammen. Eine kommerzielle Verwendung von Wine ist CrossOver Office der Firma Codeweavers.

Vereinfacht betrachtet besteht Wine aus zwei Komponenten: Zum einen wird ein Loader benötigt, der Windows-Executables (*.exe, *.dll, *.ocs, ...) lädt und dem Posix-System zur Ausführung übergibt. Dieser Zwischenschritt muss eingefügt werden, da das Portable Executable Format (Binärformat für ausführbare Dateien) von POSIX-Systemen nicht verarbeitet werden kann. Zum anderen ist eine Implementierung des Win32-API notwendig, die es ermöglicht Windows-Programme auszuführen.

Viele Implementierungen sind noch lückenhaft, da die entsprechenden Microsoft Windows-Funktionalitäten ungenügend dokumentiert sind. APIs, die aus einer Funktion mit leerem oder fast leerem Rumpf bestehen, nennt man Stub. Wird von einer Anwendung eine solche Funktion in Wine aufgerufen, so erscheint eine entsprechende Ausgabe. Die Unterstützung der Microsoft Windows-Versionen ist sehr unterschiedlich. Microsoft Windows 95 und 98 werden gut unterstützt. Die NT-Versionen sind problematisch.

Die Portierung von Wine für Mac OS X nennt man WineBottler (http://winebottler.kronenberg.org). Eine Dokumentation findet man unter der URL http://wiki.winehq.org/WineBottler. WineBottler hieß früher Darwine. Darwine unter der PowerPC-Architektur verwendet die Userspace-Emulation von QEMU.

[bearbeiten] Installation

Unter Linux ist es zu empfehlen, Wine als Paket zu installieren. In diesem Beispiel wird Wine unter Debian beziehungsweise Ubuntu installiert.

~$ sudo apt-get install wine

Unter Ubuntu hat man die Wahl zwischen mehreren Wine-Versionen. Mit folgenden Befehl wird die Version 1.3 installiert.

~$ sudo apt-get install wine1.3

Zur Installation von WineBottler unter Mac OS X wird das Image (.dmg) heruntergeladen und eingebunden. Die Programmpakete Wine und WineBottler verschiebt man in den Ordner Programme (Applications). Gestartet wird WineBottler durch Klick auf das Icon WineBottler.

Unter FreeBSD wird Software in Ports und Packages angeboten. Ports enthalten den Source-Code der Software und werden beim Installieren kompiliert. Oft sind Ports aktueller als Packages. Zu Wine relevante Ports befinden sich im Verzeichnis /usr/ports/emulators/wine im Ports-Tree.

Host ~# cd /usr/ports/emulators/wine
Host ~# make install clean

Es ist auch möglich Wine als Package zu installieren. Package sind bereits fertig kompilierte Software-Pakete.

Host ~# pkg_add -r wine

Die Installation von Wine unter dem FreeBSD-Derivat PC-BSD ist mit dem PBI-System (Push Button Installer) mit wenigen Mausklicks möglich. Es wird das PBI-Paket für Wine von der URL http://pbidir.com/bt/pbi/11 heruntergeladen und mit dem PBI-Launcher installiert. Erscheint die Fehlermeldung .PBItmp/.pbistart not found, hat man ein PBI-Paket für die falsche PC-BSD-Version heruntergeladen.

Software wird für NetBSD als Package Source (Pkgsrc) angeboten. Falls nicht geschehen muss das Package Source-System installiert werden. Hier wird vereinfacht der Download der Pakete des Current-Branches als tar-Archiv beschrieben. Das Pakage-System kann auch mit dem Software Update Protocol (SUP) oder mit Concurrent Versions System (CVS) heruntergeladen und aktuell gehalten werden.

Host ~# cd /usr
Host ~# ftp ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.gz
Host ~# tar xzvf pkgsrc.tar.gz

Es wird Wine installiert.

Host ~# cd /usr/pkgsrc/emulators/wine
Host ~# make install clean

Eine Anleitung zum Kompilieren von Wine findet man unter der URL http://wiki.winehq.org/Recommended_Packages. Für Ubuntu vereinfachen Skripte das Kompilieren.

[bearbeiten] Konfiguration

Microsoft Windows-Programme setzen eine bestimmte Verzeichnisstruktur voraus. Diese wird per Default in $HOME/.wine abgebildet. Darin befindet sich die Registry und das Verzeichnis dosdevices mit den Unterverzeichnissen c:, d: und z:. Dies sind Links auf Verzeichnisse des Host-Systems. Weiterhin findet man das Verzeichnis drive_c/windows/, das dem Verzeichnis C:\Windows entspricht. Die Unterverzeichnisse drive_c/Programme/ und drive_c/Program Files verweisen auf die entsprechenden Verzeichnisse mit den installierten Programmen unter Microsoft Windows.

Wine ermöglicht die Verwendung von mehreren Windows-Verzeichnisstrukturen. Damit lässt sich für jede Windows-Software eine eigene Umgebung aufbauen, die sie unabhängig von anderer Windows-Software macht. So ist es möglich Windows-Software parallel zu betrieben, die sich nativ unter Windows gegenseitig ausschließt. Diese Umgebungen nennt man Präfixe beziehungsweise Bottles. Die Umgebungsvariable WINEPREFIX definiert den aktuellen Präfix von Wine. Mit wineboot wird die entsprechende Verzeichnisstruktur erstellt.

~$ env WINEPREFIX=$HOME/winetests/ wineboot -u

Es ist möglich dieses Prefix zu sichern.

~$ tar czvf $HOME/winetests.tar.gz $HOME/winetests

Die für Windows sichtbaren Verzeichnisse und Dateien zeigt der Wine-Explorer an. Jedem Windows-Back-Slash muss ein Back-Slash als Quotierung vorangestellt werden.

~$ env WINEPREFIX=$HOME/winetests/ wine c:\\windows\\explorer.exe &

Anpassungen der Registry sind mit dem Programm regedit möglich. Die Registry-Einstellungen werden im Prefix in den Dateien system.reg, userdef.reg und user.reg gespeichert.

~$ env WINEPREFIX=$HOME/winetests/ wine c:\\windows\\regedit.exe &

Zur Konfiguration von Wine dient das grafische Konfigurationsprogramm winecfg. Neben allgemeinen Einstellungen werden damit die zu installierenden Windows-Applikationen konfiguriert. In dem folgenden Beispiel nutzt das Programm winecfg nicht die Registry unter $HOME/.wine, sondern unter $HOME/winetests:

~$ env WINEPREFIX=$HOME/winetests/ winecfg &

Da noch nicht alle Windows-Funktionen in Wine implementiert wurden, können DLLs einer Windows-Installation in das Verzeichnis $WINEPREFIX/drive_c/windows/system kopiert werden. Nach dem Kopieren von nativen DLLs sind diese mit dem Programm winecfg (Reiter Libraries beziehungsweise Bibliotheken) einzubinden. Für die Verwendung von nativen DLLs ist eine Lizenz einer entsprechende Microsoft Windows-Version notwendig. Werden native DLLs eingebunden, kann man keinen Support von den Wine-Entwicklern erwarten. Die WINEDLLOVERRIDES Variable konfiguriert den DLL-Loader. Es ist folgende Syntax zu verwenden:

WINEDLLOVERRIDES =“modul=n|b“

Für modul können alle Namen von DLLs, zum Beispiel ole32 oder vbrun6, eingesetzt werden. Sollen native DLLs verwendet werden, ist nach dem Gleichheitszeichen ein n einzusetzen. Wird nach dem Gleichheitszeichen ein b angegeben, werden die DLLs von Wine verwendet (builtin). Es ist möglich n und b gleichzeitig zu verwenden. Im folgenden Beispiel wird zuerst die native Version von ole32 gesucht. Wird diese nicht gefunden, wird nach der Wine-Version gesucht. Wird auch diese nicht gefunden, bricht Wine mit einer Fehlermeldung ab.

WINEDLLOVERRIDES=“ole32=n,b“ wine TEST.EXE

[bearbeiten] Das Skript winetricks

Wiki: http://wiki.winehq.org/winetricks

Mit dem Skript winetricks lassen sich wichtige DLLs und andere Module von Microsoft installieren. Dazu gehören die Runtime-DLLs für Visual-Basic-Programme, die Microsoft Core Fonts und der Windows Scripting Host. Winebottler und viele Wine-Pakete enthalten bereits das Skript winetricks. winetricks benötigt die Pakete cabextract und wget.

~$ sudo apt-get install winetricks cabextract wget

Falls winetricks nicht als Paket vorhanden ist, ist es herunterzuladen und ausführbar zu machen. Da das Skript häufig aktualisiert wird, ist es regelmäßig neu herunterzuladen.

~$ mkdir -p ~/bin
~$ cd ~/bin
~$ wget http://www.kegel.com/wine/winetricks
~$ chmod +x winetricks

Das Skript wird gestartet.

~$ env WINEPREFIX=$HOME/winetests/ winetricks &

In dem Dialogfenster werden die angezeigten Zusatzpakete ausgewählt und installiert. Es ist auch möglich dem Skript das zu installierende Paket auf der Kommandozeile zu übergeben. Im folgenden Beispiel werden die Runtime-DLLs für mit Visual Basic 6 installiert.

~$ env WINEPREFIX=$HOME/winetests/ winetricks vb6run

Viele Windows-Programme benötigen die Gecko-Engine.

~$ env WINEPREFIX=$HOME/winetests/ winetricks gecko

True-Type-Fonts werden mit der Option corefonts installiert. Die Fonts werden unterhalb des Verzeichnisses $WINEPREFIX/drive_c/windows/fonts gespeichert.

~$ env WINEPREFIX=$HOME/winetests/ winetricks corefonts

[bearbeiten] Microsoft Windows-Programme starten

Auf der Kommandozeile muss wine und das zu startenden Programm als Parameter übergeben werden. Die Wine-Shell wird mit dem Befehl wine cmd gestartet. Mit exit wird sie wieder verlassen.

~$ env WINEPREFIX=$HOME/winetests/ wine cmd
C:\>exit

Das Programm Notepad startet man mit diesem Befehl.

~$ env WINEPREFIX=$HOME/winetests/ wine c:\\windows\\notepad.exe &

Der doppelte Backslash ist notwendig, da ein Backslash sonst als Escape-Zeichen interpretiert wird. Man kann auch Unix-Pfadnamen verwenden.

~$ wine $WINEPREFIX/drive_c/windows/notepad.exe

Parameter für Windows-Anwendung werden zwei Bindestriche (--) vorangestellt:

~$ wine program.exe -- [Parameter 1] [Parameter 2] ... [Parameter n]

Programme der DOS-Eingabeaufforderung wird wineconsole vorangestellt. Im folgenden Beispiel wird die in Wine enthaltene Shell gestartet.

~$ env WINEPREFIX=$HOME/winetests/ wineconsole cmd &

In dieser Shell gestartete Programme werden mit der Tastenkombination [Strg]+[C] beendet. Alle unter Wine laufenden Programme eines Präfixes werden mit wineserver -k beendet.

~$ env WINEPREFIX=$HOME/winetests/ wineserver -k

[bearbeiten] Microsoft Windows-Programme (de-)installieren

Installationsprogramme werden wie normale Windows-Programme gestartet.

~$ env WINEPREFIX=$HOME/winetests/ wine setup.exe

Zum Deinstallieren von Programmen dient das Programm uninstaller.

~$ env WINEPREFIX=$HOME/winetests/ wine uninstaller

Die Microsoft-Windows-Version von QEMU ist ohne KQEMU unter Wine lauffähig (siehe http://qemu-buch.de/d/QEMU_unter_Microsoft_Windows).

[bearbeiten] Debugging

Mit der Variable WINEDEBUG werden Debug-Channels konfiguriert. Diese helfen bei der Fehlersuche. Ein Debug-Channel zeigt Meldungen zu einem Teilsystem oder einem Modul an. Mögliche Channels sind zum Beispiel ole, winsock und file. Jeder Channel verfügt über vier Classes. Diese regeln welche Informationen in die Standardfehlerausgabe geschrieben werden sollen. Es gibt die Classes err, warn, fixme und trace. Es ist möglich mehrere Channels zu aktivieren. Eine Class muss nicht angegeben werden. Es werden dann alle Meldungen des entsprechenden Channels angezeigt. Es ist die Syntax [Class][+/-][Channel] einzuhalten. Weitere Informationen findet man unter der URL http://wiki.winehq.org/DebugChannels. Im folgenden Beispiel wird das Programm TEST.EXE gestartet und Meldungen aus dem Channel loaddll auf der Standardfehlerausgabe ausgegeben:

WINEDEBUG=loaddll wine TEST.EXE

Ein Debugging-Tool ist das Perl-Skript winestart (http://freshmeat.net/projects/winestart/). Als Parameter wird diesem Skript das zu untersuchende Windows-Programm übergeben. Weiterhin werden Debugging-Optionen vorgegeben. Das Skript gibt einen Header mit Umgebungsvariablen und Informationen aus. Die Optionen des Skript listet die Option --help auf.

~$ ./winestart.pl --help

Im folgenden Beispiel ruft das Skript das Windows-Programm TEST.EXE auf. Dabei werden Debug-Informationen in eine Datei unter $HOME/.wine/ drive_c/ geschrieben (--to-file). Das Skript winestart verwendet das Namensschema Programmname --Wine-Versionsnummer--Datum--Zeit.txt. Die Debug-Informationen werden auch auf der Standardausgabe angezeigt (--double-out). Die Variablen WINEDEBUG und WINEDLLOVERRIDES werden definiert.

~$ ./winestart.pl --program=TEST.EXE --to-file --double-out \ 
   --winedebug="loaddll" --winedlloverrides="ole32=n,b"

[bearbeiten] Die Bibliothek WINELIB

Die Bibliothek Winelib enthält alle von Wine nachimplementierten APIs aus Windows und stellt diese als Unix-Systembibliothek zur Verfügung. Weiterhin enthält Winelib Entwicklungswerkzeuge für das Übersetzen von Windows-Programmen unter Wine. Soll ein Quellcode übersetzt werden, muss es in C beziehungsweise C++ geschrieben sein. Oftmals sind syntaktische Änderungen am Quelltext notwendig. Unix unterscheidet bei Dateien und Pfadangaben Groß- /Kleinschreibung. Diese müssen eventuell korrigiert werden. Backslashes in Include-Anweisungen müssen durch Slashes ersetzt werden. Weiterhin müssen Zeilenenden und -umbrüche von CRLF auf LF geändert werden. Statt gcc beziehungsweise g++ sind winegcc und wi- neg++ – Wrapper zu verwenden. Diese Anpassungen erledigt das in Wine integrierte Perl-Skript winemaker. Neben der Anpassung der Quelltexte legt es Sicherungskopien an und erstellt ein Makefile für GNU make an. Ausführlichere Informationen über Winelib erhält man unter den URLs http://www.winehq.org/site/winelib und http://www.winehq.org/site/docs/winelib-guide/index.

[bearbeiten] Playonlinux

Playonlinux ist ein grafisches Frontend für Wine. Es vereinfacht die Handhabung von mehreren Wine-Version und Präfixen. Playonlinux benötigt keine vorhandene Wine-Installation, kann aber neben installierten Wine-Versionen betrieben werden. Für jede installierte Windows-Software wird eine eigene Wine-Version und ein eigenes Präfix verwendet.

~$ sudo apt-get install playonlinux

Gestartet wird es mit folgendem Befehl.

~$ playonlinux

Zur Installation klickt man auf das Icon Install und wählt die gewünschte Anwendung aus. Ist die Anwendung frei im Internet verfügbar, wird diese automatisch heruntergeladen. In diesem Beispiel wird der Web-Browser Safari installiert. Nach dem man das Icon Install angeklickt hat, wird unter Internet die Software Safari ausgewählt. Es startet ein Wizard zur Installation.

Playounlinux richtet für jede installierte Windows-Software ein eigenes Präfix im Verzeichnis $HOME/.PlayOnLinux/wineprefix ein.


<<<|###| >>> http://qemu-buch.de

Von „http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Anhang/_N%C3%BCtzliche_Tools/_Wine

Diese Seite wurde bisher 18.998 mal abgerufen. Diese Seite wurde zuletzt am 3. Januar 2013 um 15:13 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Bestellen
Tipps für Autoren
Autoren
Impressum


English
Order
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …