| Version 5 (modified by , 14 years ago) ( diff ) |
|---|
Wine-Anwendungen unter LTSP
Diese Seite dokumentiert das Verfahren, mit dem wir Wine-Anwendungen für unsere LTSP Thin Clients verfügbar machen.
Problem
Wine-Anwendungen sind generell für Multi-User-Systeme schlecht geeignet, da das Programm eine komplette Windows-Umgebung im Homeverzeichnis des jeweiligen Users emuliert. Diese müsste in sämtlichen Homeverzeichnissen aller User vorhanden sein, damit jeder das Programm nutzen kann. Das ist aus Platz- und Wartungsgründen inpraktikabel. Eine gemeinsame Umgebung zwischen mehreren Nutzern zu teilen ist aufgrund der Eigenheiten von Wine schwierig, das stets davon ausgeht, die komplette Windows-Umgebung "für sich" zu haben (z.B. Schreibrechte in der kompletten Umgebung).
Lösungsprinzip
Bau hat für die Linuxmusterclients ein Prinzip entwickelt, wie eine Wine-Installation von mehreren Nutzern (nacheinander) genutzt werden kann. Dabei gibt es eine Wine-Umgebung mit dem installierten Programm an einem lokalen Speicherort auf dem Rechner. Startet ein Nutzer ein Skript, wird die komplette Umgebung per rsync in ein zweites Verzeichnis kopiert und per chown dem Nutzer übereignet. Danach wird die Umgebungsvariable WINE_PREFIX passend gesetzt und das Programm gestartet.
Problem für LTSP
Das oben skizzierte Verfahren funktioniert nur, wenn nur ein Nutzer zu einer Zeit das Programm verwendet. Bei unserem Client-Server-Setup sollen aber mehrere Nutzer zugleich das selbe Wine-Programm auf dem Server laufen lassen können.
Mögliche Lösungen
Wine als local application
Laufen die Wine-Programme nicht auf dem Server, sondern lokal auf dem Client, kann jeder Nutzer für die Dauer der Programmausführung seine persönliche Wine-Umgebung haben. Dazu müsste die Wine-Umgebung in der Client-Chroot installiert werden. Dann könnte man oben beschriebenes Skript genauso einsetzen.
Ein Problem tritt allerdings auf, wenn an einem Client zugleich zwei Personen angemeldet sind, was durchaus möglich ist. Das Problem können wir aber vorerst ignorieren.
Wine als Serverapplikation mit lokalem Verzeichnis
Wine könnte weiterhin auf dem Server laufen, wenn dort jeder Benutzer sein persönliches lokales Wine-Verzeichnis bekommt (etwa unter /wine/<Nutzername>). Platz genug sollte auf den Platten sein, zumal die Umgebungen nach Verwendung auch wieder gelöscht werden könnten.
Wine als Serverapplikation mit Umgebung im Homeverzeichnis
Eine weitere Möglichkeit wäre schließlich, die Wine-Umgebung einmal in das Homeverzeichnis des Nutzers zu kopieren und dann dort zu lassen. Dazu würde entsprechender Platz auf dem NFS-Server für /home benötigt. Der klare Vorteil wäre, dass Einstellungen, die die Nutzer vorgenommen haben, von Programmaufruf zu Programmaufruf überleben. Nach einer Änderung der Umgebung (z.B. Programmupdate) müssten die Nutzerumgebungen dann aber gezielt überschrieben werden.
Lösung
Skripte zur Umsetzung der Lösung "Wine als Serverapplikation mit lokalem Verzeichnis" finden sich unter source:keplertools/LTSP-setup/trunk/wine-support/.
Installation:
- Die Datei
sudoersmuss auf den LTSP-Servern unter passendem Namen ins Verzeichnis/etc/sudoers.d/kopiert werden - Die Skripte
wine.shundwinestarter.shmüssen nach/usr/bin/kopiert oder dort verlinkt werden.
Aufruf
Der Aufruf geschieht dann über
winestarter.sh <wine-prefix-name> <pfad-zum-exe>
- Beispiel
-
winestarter.sh braintutor "C:/Program Files (x86)/Brain Innovation/BrainVoyager
Das Skript erwartet die Vorlagen für die wine-Umgebungen unter /usr/share/wineprefixes/. Es erziegt temporäre Wine-Umgebungen unter /tmp/wineprefixes/<user>/<wine-prefix-name>/
Damit das Programm über das Menü gestartet werden kann, muss eine entsprechende *.desktop-Datei in /usr/share/applications/gedit.desktop erzeugt werden.
- Beispiel
-
[Desktop Entry] Name=Brain Tutor Comment=Brain Voyager Brain Tutor Exec=winestarter.sh braintutor "C:/Program Files (x86)/Brain Innovation/BrainVoyager Brain Tutor/BrainVoyager Brain Tutor.exe" Terminal=false Type=Application Icon= Categories=Wine-Programs-Accessories;
[TODO: Icon-Pfad ergänzen]
Die Inhalte dieser Wiki-Seite erscheinen, (wo anwendbar und nicht anderweitig angegeben), unter einer Creative-Commons-Lizenz CC BY NC SA 3.0 Germany. Urheber: Dr. R. Kupper.