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 …