Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
integrer-applications-windows-dans-paquets-logiciels [Le 28/06/2013, 05:35] 109.28.132.11 |
integrer-applications-windows-dans-paquets-logiciels [Le 30/01/2024, 20:21] (Version actuelle) 89.86.155.3 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>Bionic Xenial Focal Jammy tutoriel wine}} | ||
+ | |||
====== Intégrer une application Windows dans un paquet logiciel ====== | ====== Intégrer une application Windows dans un paquet logiciel ====== | ||
Ligne 50: | Ligne 52: | ||
La modification proposée va permettre d'outrepasser cette limite, afin que tous les utilisateurs puissent y avoir accès ensuite ! :-) | La modification proposée va permettre d'outrepasser cette limite, afin que tous les utilisateurs puissent y avoir accès ensuite ! :-) | ||
- | Tout d'abord, vous devrez récupérer les sources de wine, de la version désirée, ici => http://www.ibiblio.org/pub/linux/system/emulators/wine/ | + | Tout d'abord, vous devrez récupérer les sources de wine, de la version désirée, ici => https://dl.winehq.org/wine/source/ |
Dans mon cas, je choisit donc de télécharger wine-1.3.26.tar.bz2, dernière version en date | Dans mon cas, je choisit donc de télécharger wine-1.3.26.tar.bz2, dernière version en date | ||
- | <code>wget http://www.ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.26.tar.bz2</code> | + | <code>wget https://dl.winehq.org/wine/source/1.3/wine-1.3.26.tar.bz2</code> |
Ensuite je décompresse | Ensuite je décompresse | ||
Ligne 63: | Ligne 65: | ||
- | installation des dépendance avec le script de wine | + | installation des dépendance de wine |
- | <code>wget http://winezeug.googlecode.com/svn/trunk/install-wine-deps.sh</code> | + | <code>sudo apt-get -y build-dep wine</code> |
- | + | ||
- | + | ||
- | + | ||
- | <code>sudo sh http://winezeug.googlecode.com/svn/trunk/install-wine-deps.sh</code> | + | |
+ | <code>sudo apt-get -y build-dep wine-stable</code> | ||
+ | <code>sudo apt-get -y build-dep winehq-stable</code> | ||
Ensuite, il est nécessaire d'éditer 3 fichiers | Ensuite, il est nécessaire d'éditer 3 fichiers | ||
<code>gedit libs/wine/config.c</code> | <code>gedit libs/wine/config.c</code> | ||
+ | |||
+ | <note>a partir de wine 8.3 le fichier libs/wine/config.c a étais supprimer</note> | ||
+ | |||
<code>gedit dlls/ntdll/server.c</code> | <code>gedit dlls/ntdll/server.c</code> | ||
+ | |||
+ | <note>si le fichier dlls/ntdll/server.c éssayez dlls/ntdll/unix/server.c</note> | ||
+ | |||
+ | <code>gedit dlls/ntdll/unix/server.c</code> | ||
+ | |||
<code>gedit server/request.c</code> | <code>gedit server/request.c</code> | ||
- | Dans ces 3 fichiers, vous devez rechercher les termes "**is not owned by you**" contenant peu avant l'occurence "**fatal_error**" que vous devrez à chaque fois remplacer par "**printf**", dans mon cas, j'ai aussi pris la précaution de remplacer la valeur "**fatal_error**" des allocutions "**must not be accessible by other users**", cette dernière faisant référence aux droits des utilisateurs | + | Dans ces 3 fichiers, vous devez rechercher les termes "**is not owned by you**" contenant peu avant l'occurence "**fatal_error**" que vous devrez à chaque fois remplacer par "**printf**", dans mon cas, j'ai aussi pris la précaution de remplacer la valeur "**fatal_error**" des allocutions "**must not be accessible by other users**", cette dernière faisant référence aux droits des utilisateurs |
<code c>if (st.st_mode & 077) printf( "'%s' must not be accessible by other users\n", serverdir );</code> | <code c>if (st.st_mode & 077) printf( "'%s' must not be accessible by other users\n", serverdir );</code> | ||
Ligne 97: | Ligne 105: | ||
<code>make</code> | <code>make</code> | ||
- | Une fois celle ci terminée (ce qui devrait prendre un peu de temps), il n'y a plus qu'à installer les fichiers dans le répertoire choisit précédemment | + | Une fois celle ci terminée (ce qui devrait prendre un peu de temps), il n'y a plus qu'à installer les fichiers dans le répertoire choisit précédemment |
- | <code>make install</code> | + | <code>sudo make install</code> |
Vous devriez maintenant retrouver tous les fichiers liés à cette version de wine modifié dans "**/opt/catégorie-de-votre-programme/nom-de-votre-programme/.wine/version-choisie-de-wine/**" | Vous devriez maintenant retrouver tous les fichiers liés à cette version de wine modifié dans "**/opt/catégorie-de-votre-programme/nom-de-votre-programme/.wine/version-choisie-de-wine/**" | ||
Ligne 165: | Ligne 173: | ||
<code>sudo chmod u+x /opt/catégorie-de-votre-programme/nom-de-votre-programme/scripts/nom-du-script</code> | <code>sudo chmod u+x /opt/catégorie-de-votre-programme/nom-de-votre-programme/scripts/nom-du-script</code> | ||
- | Q===== Étape 4 : Script python zenity (gui GTK) pour lancer votre script d'application ===== | + | Q |
+ | ===== Étape 4 : Script python zenity (gui GTK) pour lancer votre script d'application ===== | ||
Parce que si vous avez plusieurs exécutables à lancer, ça sera quand même plus pratique ! (au moins avoir le choix entre l'application à lancer, et wineconfig) | Parce que si vous avez plusieurs exécutables à lancer, ça sera quand même plus pratique ! (au moins avoir le choix entre l'application à lancer, et wineconfig) | ||
Ligne 221: | Ligne 230: | ||
--title="faite votre choix dnas la liste" \ | --title="faite votre choix dnas la liste" \ | ||
--column="Choix" \ | --column="Choix" \ | ||
- | "lancer nom de votre programme" | + | "lancer nom de votre programme" \ |
"winecfg"` | "winecfg"` | ||
if [ "$programme" == "winecfg" ] | if [ "$programme" == "winecfg" ] | ||
+ | then | ||
# commande pour lancer winecfg | # commande pour lancer winecfg | ||
wine winecfg | wine winecfg | ||
- | else if [ "$programme" == "lancer nom de votre programme" ] | + | elif [ "$programme" == "lancer nom de votre programme" ] |
+ | then | ||
# commande pour lancer votre programme | # commande pour lancer votre programme | ||
wine "c:\Program Files\chemin-du-dossier-de-l'executable-windows-de-votre-programme\executable.exe" | wine "c:\Program Files\chemin-du-dossier-de-l'executable-windows-de-votre-programme\executable.exe" | ||
Ligne 237: | Ligne 248: | ||
===== Étape 5 : Créer votre paquet logiciel ===== | ===== Étape 5 : Créer votre paquet logiciel ===== | ||
- | <note important>Attention, comme pour beaucoup de programmes Linux, il est conseiller de divisier votre paquet en deux parties, l'un contenant les données "simples", l'autre des données plus lourdes, afin de faciliter la mise à jour d'une partie des fichiers, sans devoir tout re-télécharger / réinstaller ! | + | <note important>Attention, comme pour beaucoup de programmes Linux, il est conseiller de divisier votre paquet en deux parties, l'un contenant les données "simples", l'autre des données plus lourdes, afin de faciliter la mise à jour d'une partie des fichiers, sans devoir tout re-télécharger / réinstaller ! |
Par exemple, pour un jeu, un paquet contenant tout les fichiers sauf **/opt/catégorie-de-votre-programme/nom-de-votre-programme/prefix/drive_c/Program Files/chemin-du-dossier-de-votre-programme-windows**, et l'autre contenant ce dossier, ainsi, si vous mettez à jour le premier petit paquet, vous n'aurez pas à vous soucier de l'autre vu que les données ne devraient pas changer.</note> | Par exemple, pour un jeu, un paquet contenant tout les fichiers sauf **/opt/catégorie-de-votre-programme/nom-de-votre-programme/prefix/drive_c/Program Files/chemin-du-dossier-de-votre-programme-windows**, et l'autre contenant ce dossier, ainsi, si vous mettez à jour le premier petit paquet, vous n'aurez pas à vous soucier de l'autre vu que les données ne devraient pas changer.</note> | ||
Ligne 306: | Ligne 317: | ||
<code>sudo chmod 777 /chemin/opt/catégorie-de-votre-programme/nom-de-votre-programme/prefix/drive_c/ -R</code> | <code>sudo chmod 777 /chemin/opt/catégorie-de-votre-programme/nom-de-votre-programme/prefix/drive_c/ -R</code> | ||
- | Et maintenant, il ne reste plus... Qu'à créer le/les paquets (à refaire avec chaque paquet créé évidemment, si vous avez dissocié les fichiers et dossiers en plusieurs paquets) | + | Et maintenant, il ne reste plus... Qu'à créer le/les paquets (à refaire avec chaque paquet créé évidemment, si vous avez dissocié les fichiers et dossiers en plusieurs paquets) |
<code>cd .. | <code>cd .. |