Wine in LTSP server

 

Sur notre serveur LTSP, nous voulions depuis longtemps exécuter quelques programmes concus pour l’OS dominant…

Le projet WINE ( Wine Is Not an Emulator ) est un projet ancien, reconnu et actif. Il permet d’exécuter des progammes M$ Windows sur un environnement Linux.

Mais dans un environnement multi utilisateurs comme notre serveur ltsp, il nous contraignait à laisser les utilisateurs à installer dans leur /home les programmes qu’ils veulent utiliser.

Outre le fait que la plupart de nos utilisateurs n’ont pas les connaissances pour le faire, cela aurait fait enfler les /home, avec un risque important de voir des instabilités apparaitre sur notre serveur.

Installation sur le serveur LTSP

On crée un utilisateur wine et on le rend sudoer

sudo adduser wine
sudo adduser wine admin

On se déconnecte et on se reconnecte en tant que wine, ou bien

su wine

L’utilisateur wine installe wine

sudo apt-get install wine

Pour éviter que le menu wine n’apparaisse (je préfère déplacer que supprimer):

sudo mv /usr/share/applications/wine* ~/

Rendre le .wine de l’utilisateur accessible à tous les membres du groupe wine

chmod 770 -R /home/wine/.wine

Ajouter wine dans les groupes des utilisateurs

sudo nano /etc/security/group.conf

et ajouter wine à la liste

*;*;*;Al0000-2400;floppy,audio,cdrom,video,plugdev,scanner,fuse,wine

Configuration automatique de wine pour tous les utilisateurs

On crée un script pour faire un lien symbolique du drive_c et on le rend executable

wine@ltsp-jaunty:~$ cat /usr/local/bin/conf-wine.sh
#!/bin/bash
[ -f $HOME/.conf_wine_ok ] && exit 0
wine cmd.exe /c
rm $HOME/.wine/dosdevices/c:
ln -s /home/wine/.wine/drive_c/ $HOME/.wine/dosdevices/c:
rm -Rf $HOME/.wine/drive_c
ln -s /home/wine/.wine/drive_c $HOME/.wine/drive_c
touch $HOME/.conf_wine_ok
wine@ltsp-jaunty:~$sudo chmod +x /usr/local/bin/conf-wine.sh

On crée un fichier .desktop pour appeler ce script à la première connection des utilisateurs (donc dans le skel)

wine@ltsp-jaunty:~$ cat /etc/skel/.config/autostart/conf-wine.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=conf-wine
Name[fr_FR]=conf-wine
Exec=bash /usr/local/bin/conf-wine.sh
X-GNOME-Autostart-enabled=true
Comment=
Comment[fr_FR]=Application de configuration de Wine

Pour le mettre à tout le monde, il faut faire (si vous utilisez le script pour tous les utilisateurs)

sudo gest-home-ltsp.sh cp /etc/skel/.config/autostart/conf-wine.desktop .config/autostart/

Ainsi tous les utilisateurs utiliseront le même drive_c …
C’est en test chez nous … A suivre, car il faudra peut-être évoluer, notamment sur les clefs de BDR (les fichiers .reg de WINE)

Installer un logiciel

Tous les logiciels doivent être intallés par l’utilisateur wine

Exemple : http://www.micromega-hatier.com/demo/avogadro.htm

Faire l’install en tant que wine en faisant un ouvrir avec et taper wine

Le raccourci apparait ( mais uniquement pour l’utilisateur wine !), donc pas de soucis

Le raccourci est en fait

env WINEPREFIX="/home/wine/.wine" wine "C:\Program Files\avogadro\avogadro.exe"

Faut-il adapter le WINEPREFIX ? Ce serait bien … mais ca complique !!!! A moins qu’on puisse utiliser $HOME

env WINEPREFIX= »$HOME/.wine » wine « C:Program Filesavogadroavogadro.exe »

Ca marche !!! Linux est magique… Mais le env WINEPREFIX ne fonctionne pas dans le fichier .desktop

Créer une icône.

Avec votre gimp préféré, réaliser votre icone avogadro.png et enregistrer la dans /usr/local/share/icons

Réalisation d’un fichier /usr/share/applications/avogadro.desktop

[Desktop Entry]
Name=Avogadro
Comment=Loi des gaz parfaits
Exec=wine "C:\Program Files\avogadro\avogadro.exe"
Terminal=false
Type=Application
Icon=avogadro
Categories=Education;Science;
StartupNotify=true

Normalement, il devrait apparaitre dans le menu des applications Education… et c’est transparent pour l’utilisateur …

 

Laisser un commentaire