[[Vorlage(Überarbeitung, 1.6.2013, Wine, Kelhim)]] [[Vorlage(Getestet quantal, precise)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(2)]] [[Bild(./logo.png, 64, left)]] Wine ('''W'''ine '''I'''s '''N'''ot an '''E'''mulator) ist ein Programm, mit dem man Windows-Software unter Linux laufen lassen kann. Man benötigt keine Windows-Installation auf seinem Computer, um mit Wine Programme starten zu können, die für Windows programmiert wurden. Leider gibt es keine grafische Benutzeroberfläche oder Wizards. Fehlermeldungen erscheinen nur in der Konsole und für abgestürzte Programme sollte man wissen, wie der Linux-Befehl [:Shell/kill:kill] funktioniert. = Wie gut funktioniert Wine? = Programme, die noch aus der Windows-95/98-Ära stammen, aber auch viele Programme für Windows 2000 und XP, funktionieren meistens prächtig. Je neuer und komplexer das Programm ist, desto wahrscheinlicher sind Probleme. Es funktionieren viele Spiele (siehe auch [:Spiele/PlayOnLinux:PlayOnLinux]), insbesondere solche, die ältere DirectX-Versionen oder gar OpenGL nutzen. Die Entwicklung schreitet zur Zeit sehr schnell voran. Mit einer aktuellen Version sind viele Spiele und Programme ohne Probleme nutzbar, die noch vor wenigen Wochen nicht oder nur mit Tricks (z.B. Microsoft-DLLs) liefen. Je nach Windows-Programm, das mit Hilfe von Wine ausgeführt wird, ist der Anspruch an die Ressourcen (primär CPU-Leistung und verfügbarer RAM) sehr moderat bis sehr hoch. Leider kann hier keine pauschale Aussage getroffen werden, welches Programm "flüssig" läuft und welches nicht. Wie gut Wine für die eigenen Zwecke funktionieren müsste, kann man vor dem Testen durch Stöbern in der [http://appdb.winehq.org/ WineHQ-Datenbank] {en} herausfinden. [[Anker(Installation)]] = Installation = == Fertige Pakete == Will man ein vorkompiliertes Paket von Wine installieren, kann man immer noch entscheiden, welche Quelle man nutzt. In den Ubuntu-Quellen liegt eine bei Einführung der jeweiligen Ubuntu-Version aktuelle, möglicherweise gepatchte, Wineversion. Gelegentlich gibt es auch neuere Versionen in den offiziellen Backports. In den Quellen des Wine-Projektes findet sich dagegen immer die aktuellste, ungepatchte Version. Einerseits bringt diese oft entscheidende Verbesserungen, andererseits handelt es sich um Entwicklerversionen, die immer auch neue Fehler und Kompatibilitätsbrüche enthalten können. Zur Zeit wird alle zwei Wochen eine neue Version veröffentlicht. Bei der Wahl kann man keine generelle Empfehlung geben, da je nach Anwendungsziel eine andere Version mehr oder weniger Kompatibilität bietet. === Methode 1 - Offizielle Paketquellen === Es muss lediglich das folgende Paket installiert [1] werden: {{{#!vorlage Paketinstallation wine, universe }}} [[Anker(Wine-PPA)]] === Methode 2 - Wine-PPA === [[Vorlage(PPA, ubuntu-wine/ppa)]] Bezeichnung und Version des Paketes können abweichen. Das Paket heißt: * '''wine1.x''', ''ppa'' [[Anker(ManuelleInstallation)]] === Methode 3 - Manuell gewähltes Paket === Aktuelle Wine-Versionen brechen mit den in ihnen enthaltenen Neuerungen regelmäßig die Kompatibilität zu Programmen, die mit einer vorigen Version schon liefen. Aus diesem Grund kann es sinnvoll sein, eine ältere Version zu nutzen. Auf der [http://wine.budgetdedicated.com/archive/index.html Archiv-Seite von WineHQ] {en} findet man eine umfassende Sammlung vorkompilierter Pakete. Das gewünschte Paket herunterladen und installieren [4]. [[Vorlage(Fremd,Paket)]] [[Anker(Kompilieren)]] == Kompilieren == Fortgeschrittene Benutzer möchten Wine unter Umständen an die Besonderheiten ihres Systems anpassen und zu diesem Zweck Wine aus dem Quellcode kompilieren. Das genaue Vorgehen ist im Artikel [:Wine/Kompilieren:] beschrieben. = Benutzung = == Windows-Programme starten == {{{#!vorlage Warnung Wine sollte grundsätzlich __niemals__ als Root oder mit Root-Rechten ([:sudo:]) aufgerufen werden! Siehe [http://wiki.winehq.org/FAQ#head-96bebfa287b4288974de0df23351f278b0d41014 Wine-FAQ 7.9.] {en} }}} Es gibt drei korrekte Möglichkeiten, ein Programm mit Wine zu starten. Um [:Wine/Problembehebung#Dateien-nicht-gefunden-oder-gespeichert:Fehler] zu vermeiden, sollte Wine das Arbeitsverzeichnis des Programms mitgeteilt werden: === Absolute Pfade === Mithilfe des `start`-Befehls kann man einen absoluten Pfad zur EXE-Datei angeben und damit automatisch deren Verzeichnis als Arbeitsverzeichnis festlegen: {{{#!vorlage Befehl wine start /Unix "/Absoluter/Pfad/zur/Datei.exe" # mit Unix-Pfad wine start 'C:\Absoluter\Pfad\zur\Datei.exe' # mit Windows-Pfad }}} === Relative Pfade === Dasjenige Verzeichnis, aus dem heraus man Wine startet, wird als Arbeitsverzeichnis gesetzt. Bei einem Programmstart im Terminal wechselt man daher zunächst in das Programmverzeichnis und ruft das Programm erst dann mit der sich darin befindenden EXE-Datei auf: {{{#!vorlage Befehl cd "/Pfad/zum/Programmverzeichnis" wine Datei.exe }}} Für [:Menü#desktop-Dateien:Programmstarter] empfehlen sich dagegen [#Absolute-Pfade absolute Pfade] oder die Verwendung des [#Path-Schluessel-in-Programmstartern Path-Schlüssels]. === Path-Schlüssel in Programmstartern === Natürlich kann man Windows-Programme auch mithilfe eines [:Menü#desktop-Dateien:Programmstarters] in Menüs oder in den Suchfeldern der verschiedenen Desktop-Umgebungen starten. Ein vollständiges Beispiel für Wine findet sich weiter unten im Abschnitt [#desktop-Datei-erstellen-und-konfigurieren .desktop-Dateien erstellen und konfigurieren]. Diese Programmstarter in Form von .desktop-Dateien können das Arbeitsverzeichnis (ohne umrahmende Anführungsstriche) mithilfe des Path-Schlüssels angeben und dann in der `Exec`-Zeile auch ohne `start`-Befehl einen absoluten Pfad benutzen. Hier ein Ausschnitt einer .desktop-Datei: {{{ Exec=wine "/Absoluter/Pfad/zur/Datei.exe" Path=/Pfad zum Programmverzeichnis/ }}} [[Anker(Wineprefix)]] == Wineprefix == Windows-Programme, die besondere Wine-Einstellungen erfordern, um vernünftig zu funktionieren, sollten in einer eigenen unabhängigen Wine-Umgebung installiert werden. === Anlegen === Diese Umgebung wird automatisch in einem beliebigen Verzeichnis erstellt, sobald man dieses Verzeichnis einem Wine-Befehl mitteilt. Das Verzeichnis sollte, muss sich aber nicht im persönlichen Verzeichnis oder im versteckten Wine-Verzeichnis befinden. Dafür definiert man einfach die Umgebungsvariable WINEPREFIX und benutzt anschließend den Wine-Befehl. Ein Beispiel: [3] {{{#!vorlage Befehl env WINEPREFIX="$HOME/.wine/Programm" wine start /Unix "/media/Programm-CD/Programm.exe" }}} Für Programme, die in einem Wineprefix installiert werden, legt Wine automatisch [:Menü#desktop-Dateien:Programmstarters] an, die dem Startbefehl die WINEPREFIX-Variable voranstellen. Doch wer einen eigenen Programmstarter erstellen oder das Programm im Terminal starten möchte, muss dies natürlich selber tun. Vergisst man dies, wird das Programm in der standardmäßigen Wine-Umgebung in '''~/.wine''' und mit allen ihren Einstellungen gestartet, was genau das Verhalten und genau die Fehler produziert, die man mit dem Wineprefix gerade vermeiden möchte. Auch Wine-Hilfsprogramme wie [:winetricks:] müssen im Wineprefix desjenigen Programmes benutzt werden, das man mit `winetricks` bearbeiten möchte: {{{#!vorlage Befehl env WINEPREFIX="$HOME/.wine/Programm" winetricks }}} === Entfernen === Das Verzeichnis einer Wine-Umgebung kann bedenkenlos entfernt werden. Dabei gehen jedoch auch alle darin installierten Windows-Programme verloren. Übrig bleiben jedoch alle Dateien außerhalb dieser Wine-Umgebung, nämlich Menüeinträge und Programmstarter, die einzeln in den Verzeichnissen '''~/.config/menus/applications-merged/''' bzw. '''~/.local/share/applications/wine''' ausfindig gemacht und entfernt werden müssen. == Wine erweitern == Das Grundgerüst von Wine kann durch das Skript [:winetricks:] sehr einfach erweitert werden. Es lädt benötigte Laufzeit-Bibliotheken und Fonts und installiert diese automatisch. == Windows-Programme deinstallieren == === Automatisch === Man kann den in Wine integrierten Uninstaller nutzen, der ganz ähnlich zu seinem Windows-Pendant arbeitet. Dazu öffnet man ein Terminal [3] und gibt folgenden Befehl ein: {{{#!vorlage Befehl wine uninstaller }}} Alternativ kann man das Deinstallationsprogramm der jeweiligen Anwendung nutzen. Dieses befindet sich meist im jeweiligen Programmordner. === Manuell === Das jeweilige Programm einfach zu löschen ist nicht die eleganteste Methode, doch leider funktioniert die Deinstallation unter Wine nicht immer, oder es bleiben trotz Deinstallationsprogramm Menüeinträge und Programmstarter zurück. Diese entfernt man einzeln aus den Verzeichnissen '''~/.config/menus/applications-merged/''' bzw. '''~/.local/share/applications/wine'''. Rückstände in der Registrierung kann man z.B. manuell mit dem [#Registry Wine-Registrierungseditor] oder mit Werkzeugen wie [http://www.chip.de/downloads/c1_downloads_12991462.html regcleaner] {de} bereinigen. == MSI installieren == Um MSI-Programmdateien ('''.msi''') zu installieren gibt man Folgendes ein: {{{#!vorlage Befehl msiexec /i Programmname.msi }}} == Batch-Datei aufrufen == Um eine Windows-Batch-Datei auszuführen, kann man so vorgehen: {{{#!vorlage Befehl wineconsole cmd }}} Nun sollte sich eine Windows-Konsole öffnen. Zuerst navigiert man in dieser Konsole in den Ordner, der die Batch-Datei beinhaltet, und führt diese anschließend aus. Das ganze könnte dann so aussehen: {{{#!vorlage Befehl cd pfad\zur\BatchDatei\ foo.bat }}} == Registry == Um die Wine-Registry einzusehen oder zu bearbeiten folgenden Befehl ins Terminal eingeben: {{{#!vorlage Befehl regedit }}} == .desktop-Datei erstellen und konfigurieren == [[Bild(Starter-Falsch, align=right)]] [[Bild(Starter-Richtig.png, align=right)]] Wenn eine Windows-Anwendung mit Wine installiert wird, dann erscheint unter [:Unity:] statt des Programmsymbols das allgemeine Symbol von Wine (siehe Abbildungen rechts). Um eigene Startsymbole für Wine Anwendungen zu vergeben, muss der Programmstarter (eine Datei der Form '''.desktop''') anpasst werden. Wurde ein solcher Starter bei der Installation des Programmes automatisch erstellt, ist er im Ordner '''~/.local/share/applications/wine/Programs/''' zu finden. Fehlt eine solche Datei bzw. sollen individuelle Starter angelegt werden, kann dies von Hand erfolgen. Dazu entweder eine Datei über einen Editor anlegen, oder einen bereits vorhandenen Starter im Nautilus kopieren und über die Anzeige der Dateieigenschaften bearbeiten. Ein Beispiel: '''~/.local/share/applications/wine/Programs/programm.desktop''' {{{ [Desktop Entry] Encoding=UTF-8 Name=Name des Programms Comment=Beschreibung der Fähigkeiten Type=Application Exec=wine start "C:/Program Files/programm.exe" Icon=/home/user/pfad/zum/icon.ico StartupWMClass=programm.exe }}} Weitere Details sind dem Artikel [:Menü:] zu entnehmen. Der Eintrag ''"StartupWMClass=..."'' ist sehr wichtig. Desktop-Dateien, die diesen Eintrag besitzen, werden mit dem entsprechenden Symbol angezeigt. Bei PlayOnLinux werden '''.desktop'''-Dateien zwar automatisch erstellt, doch fehlt diesen Dateien der Eintrag. Durch das Hinzufügen der Zeile wird dieser kleine Fehler korrigiert. == Dateien übers Kontextmenü öffnen == Immer wieder nachgefragt: Es wird ein [:Menü:Programmstarter] benötigt, um über einen Dateimanager ein Windows-Programm mit Übergabe einer Datei zu starten. Dies kann man über folgende .desktop-Datei erreichen (bitte entsprechend anpassen): {{{ [Desktop Entry] Name=Windows-Programm Comment[de]=Ein Kommentar zur Funktion des Programms Exec=winepath -w %f | xargs '-d\n' env wine start /unix ~/".wine/dosdevices/c:/Programme/ORDNER/PROGRAMM.exe" Icon=/PFAD/ZUM/SYMBOL Terminal=false Type=Application Categories=KATEGORIE }}} [[Anker(Konfiguration)]] = Konfiguration = Hierfür bringt es von Haus aus ein kleines Konfigurationswerkzeug mit, das sich über den Befehl {{{#!vorlage Befehl winecfg }}} ausführen lässt. Der sich nun öffnende Dialog sollte so oder ähnlich aussehen: [[Bild(./winecfg-about.png, 200, center)]] Man muss nicht zwingend etwas einstellen. [[Vorlage(Tasten, lmt)]] ''"OK"'' speichert die Grundeinstellungen im versteckten Ordner '''~/.wine'''. == Laufwerke == === Laufwerk C: === Hier kann überprüft werden, ob der Laufwerksbuchstabe '''C:''' auf `../drive_c` verweist. {{{#!vorlage warnung C: darf nicht auf ein Laufwerk mit einem vorhandenen Windows (z.B. `/media/sda1`) verweisen! Dadurch wird die Windows-Partition überschrieben und kann nur durch aufwändige Reparaturen oder eine Neuinstallation wieder nutzbar gemacht werden. }}} === CD-ROM-Laufwerk einrichten === Um ein CD-ROM-Laufwerk einzurichten, zunächst auf ''"Laufwerke"'' klicken. Anschließend sieht der Dialog so aus: [[Bild(./winecfg-drives.png, 200, center)]] Hier auf ''"Hinzufügen"'' klicken, dann wird in der Liste der Laufwerke automatisch ein neues Laufwerk '''D:''' eingerichtet werden. Für dieses Laufwerk muss spezifiziert werden, an welchem Punkt es in das Dateisystem eingehängt ist. In einem Standard-Ubuntu-System lässt sich hier '''/cdrom''' oder '''/media/cdrom''' eintragen. Den genauen Einhängpunkt findet man in der Datei '''/etc/fstab'''. Anschließend folgt ein Klick auf ''"Zeige Erweitert"''. Hier muss noch ausgewählt werden, dass es sich um ein CD-ROM-Laufwerk handeln soll. Der Rest sollte so gelassen werden (weitere Optionen unterscheiden sich von Version zu Version auch stark). Das CD-ROM-Laufwerk ist nun für Windows-Anwendungen als solches sichtbar. Mit einem Klick auf ''"Anwenden"'' werden die Änderungen übernommen. == Audio == Um den Sound zu testen, wählt man oben den Registerreiter ''"Audio"''. Möchte man ein anderes Audio-Treiber-Backend benutzen, muss man den Dialog jedoch zunächst schließen. [[Bild(./winecfg-audio.png, 200, center)]] Wine benutzt standardmäßig bereits das ALSA-Backend, das im Allgemeinen am zuverlässigsten funktioniert. Wer jedoch noch eine alte Wine-Konfiguration mit dem mittlerweile obsoleten Winepulse-Backend benutzt oder spezielle Ansprüche hegt, kann das Backend auf zwei Weisen wechseln. Die folgenden Beispiele beziehen sich auf die Umstellung auf das ALSA-Backend. Am einfachsten erreicht man dies mit [:winetricks:]: {{{#!vorlage Befehl winetricks sound=alsa }}} Genauso gut kann man jedoch im [#Registry Registreierungseditor] den Schlüssel ''"HKEY_CURRENT_USER / Software / Wine / Drivers"'' anlegen, falls er nicht schon existiert, und dort eine Zeichenfolge namens ''"Audio"'' mit dem Wert ''"alsa"'' erstellen bzw. sie mit diesem Wert überschreiben. Dann muss der Editor wieder geschlossen werden. Welchen Weg man auch wählt: Nun kann im Wine-Konfigurationsdialog `winecfg` unter dem Reiter ''"Audio"'' geprüft werden, ob ''"winealsa.drv"'' als Treiber ausgewählt ist und der Sound funktioniert. Für andere Backends als ALSA gelten analoge Anweisungen. Kommt es im Windows-Programm zu Problemen mit dem Sound, muss man ein wenig experimentieren. Je nach verwendeter Audio-Hardware können die Einstellungen hier sehr verschieden ausfallen. OSS kann bei manchen Spielen und/oder bei manchen Soundkarten bessere Ergebnisse liefern. Wer nahezu latenzfreie Soundausgabe benötigt (wie bei Multiplayer-Shootern), sollte Jack installieren und als Treiber wählen. Siehe auch [:Soundsystem:Einführung in das Linux-Sound-System]. == Anwendungen == Der Eintrag ''"Standardeinstellungen"'' gilt für alle mit Wine gestarteten Applikationen, die nicht explizit in den Anwendungen eingetragen ist. Ist dieser Eintrag ausgewählt, wirken sich alle Einstellungen in den Reitern, Audio/Grafik/Bibliotheken auf diese Standardeinstellungen aus. Hat eine Windows-Anwendung Probleme, die durch Änderung der Konfiguration in Audio/Grafik/Bibliotheken behoben werden können, so sollte man diese Anwendung explizit hinzufügen (Button ''"Anw. hinzufügen"''). Ist diese neue Anwendung ausgewählt, können nun Einstellungen in Audio/Grafik/Bibliotheken vorgenommen werden, die sich nur auf diese Anwendung auswirken. == Grafik == Manche Anwendungen starten nur, wenn ''"Emuliere einen virtuellen Bildschirm"'' ausgewählt ist. Darunter gibt man die gewünschte Auflösung an. Alternativ kann es auch ausreichen, die Desktopauflösung vor dem Start der Anwendung anzupassen. == Bibliotheken == Manche Anwendungen starten/funktionieren nur, wenn bestimmte Bibliotheken von ''"native (Windows)"'' auf ''"builtin (Wine)"'' geändert oder komplett deaktiviert werden. Dazu wählt man die Bibliothek im Auswahlfeld ''"Neu Überschreibung für"'' aus, drückt ''"Hinzufügen"''. Dadurch wird diese in die Liste ''"Bestehende"'' aufgenommen. Dort wählt man sie aus und drückt ''"Bearbeiten"'', um Änderung vorzunehmen. == Farben anpassen == Es gibt zwei Möglichkeiten, das Design von unter Wine laufenden Programmen anzupassen. Die erste (optisch schön; allerdings kann der PC dadurch langsamer werden) ist, dass man ein Windows-Design mittels `winecfg` einstellt. Dazu benötigt man ein passendes Design. Dieses erhält man z.B. von [http://www.deviantart.com/ deviantART] {en}. Das passendsten Designs heißt [http://freddi67.deviantart.com/art/Ubuntu-Light-for-Windows-XP-177514325 Ubuntu Light for Windows XP] {en}. Einfach die Datei herunterladen und mit Wine aktivieren. Danach sehen die Programme mehr nach Ubuntu aus. Die zweite Methode ist zwar nicht die schönste, aber die optimale, um das Layout zu ändern. Man stellt die Farben für die Wine-Umgebung selbst ein. Dies erreicht entweder über `winecfg`, in dem man es von Hand macht oder einfach die folgende Anpassung verwendet. Dazu einfach den unten stehenden Code in eine neue Datei mit dem Namen '''ubuntu.reg''' einfügen: {{{ REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Colors] "ActiveBorder"="239 235 230" "ActiveTitle"="200 130 60" "AppWorkSpace"="102 51 51" "Background"="0 128 128" "ButtonAlternateFace"="180 180 180" "ButtonDkShadow"="115 106 96" "ButtonFace"="239 235 230" "ButtonHilight"="239 235 230" "ButtonLight"="248 246 244" "ButtonShadow"="203 193 183" "ButtonText"="0 0 0" "GradientActiveTitle"="16 132 208" "GradientInactiveTitle"="181 181 181" "GrayText"="203 193 183" "Hilight"="248 198 119" "HilightText"="0 0 0" "HotTrackingColor"="0 0 255" "InactiveBorder"="239 235 230" "InactiveTitle"="239 235 230" "InactiveTitleText"="60 60 60" "InfoText"="0 0 0" "InfoWindow"="255 255 225" "Menu"="239 235 230" "MenuBar"="239 235 230" "MenuHilight"="0 0 0" "MenuText"="0 0 0" "Scrollbar"="239 235 230" "TitleText"="255 255 255" "Window"="255 255 255" "WindowFrame"="0 0 0" "WindowText"="0 0 0" }}} und folgenden Befehl ausführen: {{{#!vorlage Befehl regedit ubuntu.reg }}} Die Farben sind für Ubuntu optimiert. = Deinstallation = Wine selbst wird zwar problemlos deinstalliert. Die installierten Windows-Programme bleiben jedoch weiterhin in ihren jeweiligen Wine-Umgebungen (standardmäßig '''~/.wine''') erhalten. Möchte man auch diese deinstallieren, entfernt man einfach diese Verzeichnisse (z.B. '''~/.wine'''). In jedem Fall bleiben Menüeinträge und Programmstarter zurück. Mit folgenden Terminal-Befehlen [3] werden __alle__ von Wine angelegten Menüeinträge und Programmstarter gelöscht. Es bleiben nur die Einträge zurück, die bei der Installation von Wine angelegt wurden. {{{#!vorlage Befehl cd ~/.config/menus/applications-merged/ rm -f wine* cd ~/.local/share/applications/ rm -rf wine }}} = Links = * [http://www.winehq.org/ WineHQ] {en} - Die offizielle Seite der Wine-Entwickler * [http://wiki.winehq.org/ WineHQs Wiki] {en} - Wine Wiki * [http://www.winehq.org/download/deb Wiki für die Installation von Wine (von WineHQ)] * [http://appdb.winehq.org/ WineHQs Applikationendatenbank] {en} - Was läuft und was läuft nicht? * [http://www.transgaming.com/ Transgaming] {en} - Die Seite der Cedega/Cider-Macher * [http://www.cedega.com/gamesdb/ Transgaming Games DB] {en} - Was läuft und was läuft nicht mit Cedega? * [http://www.cedegawiki.net/ GameTree Linux Wiki] {en} - Anleitungen und vieles mehr * [http://frankscorner.org/ frankscorner.org] {en} - Anleitungen und HowTos zum Thema Wine * [http://my.opera.com/area42/blog/tweaking-wine Linux for Designers - Tweaking Wine] {en} - Die Windows/Wine-Oberfläche farblich anpassen bzw. Download eines Ubuntu Farb-Themas für Wine * [http://www.playonlinux.com PlayOnLinux] {en} - Benutzerfreundliches Frontend um vorallem die Installationen zu erleichtern und mehrere Wineversionen nebeneinander zu betreiben * [http://www.avertlabs.com/research/blog/index.php/2009/02/23/running-windows-malware-in-linux/ Windows-Schädlinge laufen auch unter Wine] {en} # tag: Emulation und Virtualisierung, crossover, Windows