Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
logiciels_portables_et_virtualisation_d_applications [Le 13/11/2009, 20:22]
psychederic
logiciels_portables_et_virtualisation_d_applications [Le 11/09/2022, 12:00] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>logiciel ​entreprise ​reseau securite ​administration serveur ​brouillon}}+{{tag>logiciels ​entreprise ​réseau sécurité ​administration serveur ​BROUILLON}}
 ---- ----
  
 ====== Logiciels portables et virtualisation d'​applications sous Ubuntu Linux ====== ====== Logiciels portables et virtualisation d'​applications sous Ubuntu Linux ======
  
-Les applications portables sont de plus en plus utilisées auprès du grand public pour leur avantage :  +Les applications portables sont de plus en plus utilisées auprès du grand public pour leur avantage : 
-  * Pouvoir transporter son application,​ ses données, et sa configuration avec soi, par exemple sur une clés usb+  * Pouvoir transporter son application,​ ses données, et sa configuration avec soi, par exemple sur une clé USB.
  
 D'un point de vue plus technique : D'un point de vue plus technique :
-  * Cela permet de garder un système stable : **les applications virtualisées s'éxecutent ​dans leurs environnements et avec leurs dépendances** (aucune installation de librairie). ​+  * Cela permet de garder un système stable : **les applications virtualisées s'exécutent ​dans leurs environnements et avec leurs dépendances** (aucune installation de librairie).
  
  
 Au niveau professionnel,​ la virtualisation d'​applications peut garantir : Au niveau professionnel,​ la virtualisation d'​applications peut garantir :
   * La stabilité des applications.   * La stabilité des applications.
-  * La sécurité et la mise à jour du parc informatique ( par exemple : en distribuant ces applications facilement par réseau en faisant du [[http://​fr.wikipedia.org/​wiki/​Logiciel_en_tant_que_service|saas]],​ ou de l'[[http://​en.wikipedia.org/​wiki/​Application_streaming|application à la demande]] ).+  * La sécurité et la mise à jour du parc informatique (par exemple : en distribuant ces applications facilement par réseauen faisant du [[https://​fr.wikipedia.org/​wiki/​Logiciel_en_tant_que_service|saas]],​ ou de l'[[https://​en.wikipedia.org/​wiki/​Application_streaming|application à la demande]]).
  
-Dernier avantage pour le monde linux : la virtualisation d'application ​permet de **distribuer des logiciels - quelque ​soit la version d'​ubuntu,​ et même quelque ​soit la distribution linux**. (( [[http://​ldn.linuxfoundation.org/​lsb/​make-your-app-portable|(en)Make Your App Portable , linuxfoundation]] ))+Dernier avantage pour le monde linux : la virtualisation d'applications ​permet de **distribuer des logiciels - quelle que soit la version d'​ubuntu,​ et même quelle que soit la distribution linux**. (([[http://​ldn.linuxfoundation.org/​lsb/​make-your-app-portable|(en)Make Your App Portable , linuxfoundation]]))
  
-La virtualisation d'​applications est aussi utilisé ​pour les téléphones portables.+La virtualisation d'​applications est aussi utilisée ​pour les téléphones portables.
  
 <note help>​Note pour la compréhension complète du sujet :  les applications portables peuvent être empaquetées ou non. <note help>​Note pour la compréhension complète du sujet :  les applications portables peuvent être empaquetées ou non.
  
-En entreprise il serait préférable d'​utiliser des applications empaquetées - et compatible ​linux nativement (sans logiciel tierce)((ce qui est fait avec thinapp sous windows entre autre)).+En entreprise il serait préférable d'​utiliser des applications empaquetées - et compatibles ​linux nativement (sans logiciel tierce)((ce qui est fait avec thinapp sous windows entre autre)).
  
-Les applications ​portable connu du grand public ne sont que rarement empaquetées.+Les applications ​portables connues ​du grand public ne sont que rarement empaquetées.
  
-  * L'​avantage de l'​empaquetage est que le paquet ne pourra être corrompue. (stabilité , sécurité, contrôle) +  * L'​avantage de l'​empaquetage est que le paquet ne pourra être corrompu. (stabilité,​ sécurité, contrôle) 
-  * L'​avantage de ne pas empaqueter est de permettre la mise à jour du logiciel, et ses dépendances facilement (voir même automatiquement par exemple avec firefox).+  * L'​avantage de ne pas empaqueter est de permettre la mise à jour du logiciel, et ses dépendances facilement (voire même automatiquement par exemple avec firefox).
  
-**Tout deux restent totalement ​portable** , et sauvegardent les configurations personnelles dans l'​endroit spécifié : dans le même répertoire que l'​application portable ou un autre répertoire.+**Toutes ​deux restent totalement ​portables** , et sauvegardent les configurations personnelles dans l'​endroit spécifié : dans le même répertoire que l'​application portable ou un autre répertoire.
 </​note>​ </​note>​
  
Ligne 40: Ligne 40:
 ===== Solution Linux natif ===== ===== Solution Linux natif =====
  
-Concurrent de Vmware thinApps(windows),​ et des applications ​portable libre basé sur nsis (nullsoft), et autre.+Concurrent de Vmware thinApps(windows),​ et des applications ​portables libres basées ​sur nsis (nullsoft), et autres.
  
 +   * [[CDE]] ([[http://​www.pgbovine.net/​cde.html|site]])([[http://​linuxfr.org/​redirect/​69829.html|source]])([[http://​vimeo.com/​16684443|video]])(GNU GPL v3) basé sur strace, encapsule tous les fichiers nécessaires à l'​exécution du binaire : Code, Données, Environnement. Ainsi, lors de l'​exécution de la commande $ cde a.out sur la machine A, CDE va exécuter a.out, surveiller ses accès (bibliothèques dynamiques, fichiers de configuration,​ polices, etc.), copier ces fichiers dans un sous-répertoire et créer un fichier a.out.cde. L'​ensemble des fichiers de ce sous-répertoire peut être transféré sur une machine B. Lors de l'​exécution de a.out.cde, l'​environnement est changé (comme avec chroot) et ce sont les bibliothèques fournies dans le sous-répertoire qui sont utilisées. ​
 + 
 ==== Sites d'​applications portables ==== ==== Sites d'​applications portables ====
 +  * [[http://​www.portablelinuxapps.org/​|PortableLinuxApps.com]]
  
-  * [[http://​www.portools.com/​|Portable Apps for Linux(portools.com)]]+==== Applications portables officielles ====
  
 +==== Méthode pour la création d'​applications portables sous linux ====
  
  
-==== Méthode pour la création d'​application portable sous linux ==== 
 === 0) Télécharger les scripts === === 0) Télécharger les scripts ===
  
-Vous pouvez télécharger les scripts, ou copier ce qui suit dans des fichiers ( en leur donnant les droits d'​exécution ).+Vous pouvez télécharger les scripts, ou copier ce qui suit dans des fichiers (en leur donnant les droits d'​exécution).
  
 **Les scripts ne demanderont pas les droits root, gage de non compromission possible du système.** **Les scripts ne demanderont pas les droits root, gage de non compromission possible du système.**
  
-=== 1Lister et copier les dépendances ===+Vous n'​aurez qu'à changer le nom du paquet que vous voulez rendre portable. (cela peut devenir plus compliqué avec des applications complexes).
  
-<note warning>​EN COUR DE DÉVELOPPEMENT.</​note>​+=== 1) Lister et copier les dépendances ===
  
-Lister les dépendances (exécuter dans la racine du projet): ​+Lister les dépendances (exécuter dans la racine du projet) :
 <​code>​ <​code>​
 #​!/​bin/​sh ​ #​!/​bin/​sh ​
 +# Version ​
 +# 1.0 Bêta : fonctionne même pour des applications relativement complexe.
  
 # PortableApplicationCreator.sh Portable - portableTools for Linux # PortableApplicationCreator.sh Portable - portableTools for Linux
Ligne 73: Ligne 78:
  
 #Choisir le paquet que vous désirez transformer en application portable #Choisir le paquet que vous désirez transformer en application portable
-lenomdupaquet=exaile+lenomdupaquet=firefox-3.5
  
 #Creation des dossiers selon la convention de nommage #Creation des dossiers selon la convention de nommage
 mkdir App Data Other mkdir App Data Other
  
-#Listage des dépendances+#Listage des dépendances - par défaut toutes les dépendances
 for p in `apt-cache depends $lenomdupaquet | awk '​{print $NF}' | sed -e "​s/<//"​ -e "​s/>//"​ | sort | uniq`; do apt-cache show $p; done | grep Filename | sed "​s/​Filename:​ /wget http:​\/​\/​fr.archive.ubuntu.com\/​ubuntu\//"​ > dependances.sh for p in `apt-cache depends $lenomdupaquet | awk '​{print $NF}' | sed -e "​s/<//"​ -e "​s/>//"​ | sort | uniq`; do apt-cache show $p; done | grep Filename | sed "​s/​Filename:​ /wget http:​\/​\/​fr.archive.ubuntu.com\/​ubuntu\//"​ > dependances.sh
  
Ligne 86: Ligne 91:
 #​téléchargement des dépendances #​téléchargement des dépendances
 sh dependances.sh sh dependances.sh
-#mv dependances.sh /Other+mv dependances.sh /Other
  
 mkdir tmp mkdir tmp
Ligne 92: Ligne 97:
 for p in `find -name "​*.deb"​` ​ for p in `find -name "​*.deb"​` ​
 do do
-fakeroot dpkg - $p tmp+fakeroot dpkg --extract ​ $p tmp
 done done
  
 #On efface les deb #On efface les deb
-#rm *.deb+rm *.deb
  
 #On copie dans les bons répertoires #On copie dans les bons répertoires
-mv ./tmp/etc/ ./App/ +mv ./tmp/./App/ 
-mv ./tmp/usr/ ./App/+
  
 </​code>​ </​code>​
  
 ((ldd)) ((ldd))
-=== 4) Adapter le script de lancement ===+=== 2) Adapter le script de lancement ===
  
 Script basé sur le principe utilisé par http://​www.portools.com/​ Script basé sur le principe utilisé par http://​www.portools.com/​
 +
 +Le point important est de sauver le profile ( dernière ligne ) et de bien définir les variables. Il vous faudra ici créer le répertoire firefox-profile dans Data : <​code>​mkdir App/​firefox-profile</​code>​
 +
 +Vous pouvez trouver un exemple plus simple après celui-ci.
  
 <​code>​ <​code>​
Ligne 126: Ligne 135:
 # #
 # Portable Logic: # Portable Logic:
-# quelque dépendance packagé ​(blabla) , et problématique ... +# quelque dépendance packagé et problématique ​de .conf ... 
-# besoin de  passer le répertoire profile pour garder les configurations. ​(blabla)+# besoin de  passer le répertoire profile pour garder les configurations. ​
  
 use Cwd; use Cwd;
  
 # Modifiable variables. # Modifiable variables.
-$executable = 'iceweasel'; +$executable = 'firefox'; 
-$program_name = 'IceWeasel';+$program_name = 'Firefox';
  
 # Internal variables. These usually do not need to be changed. # Internal variables. These usually do not need to be changed.
-$executable_dir = '​App/​usr/​lib/​iceweasel/';+$executable_dir = '​App/​usr/​lib/​firefox-3.5.5/';
 $executable_full = $executable_dir . $executable;​ $executable_full = $executable_dir . $executable;​
 $arguments = join '',​ @ARGV; $arguments = join '',​ @ARGV;
Ligne 151: Ligne 160:
  
 #Conf - variable de lancement #Conf - variable de lancement
-system("​mv App/​etc/​gre.d/​1.9.system.conf App/​etc/​gre.d/​1.9.system.conf.bak"​);​ +system("​mv App/​etc/​gre.d/​1.9.1.5.system.conf App/​etc/​gre.d/​1.9.1.5.system.conf.bak"​);​ 
-open(CONF, ">​App/​etc/​gre.d/​1.9.system.conf"​);​ +open(CONF, ">​App/​etc/​gre.d/​1.9.1.5.system.conf"​);​ 
-print CONF "[1.9.0.4+print CONF "[1.9.1.5
-GRE_PATH=$cwd/​usr/​lib/​xulrunner-1.9+GRE_PATH=$cwd/​usr/​lib/​xulrunner-1.9.1.5
 xulrunner=true xulrunner=true
 abi=x86-gcc3";​ abi=x86-gcc3";​
Ligne 160: Ligne 169:
 #​Environnement #​Environnement
 chdir($executable_dir);​ chdir($executable_dir);​
-system("​./​$executable $arguments -no-remote -profile \"​$cwd/​Data/​iceweasel-profile\"​ 2>/​dev/​null"​);​+system("​./​$executable $arguments -no-remote -profile \"​$cwd/​Data/​firefox-profile\"​ 2>/​dev/​null"​);​ 
 </​code>​ </​code>​
-===5) Empaquetage : Au choix === 
  
-===== Solutions avec une application tierce =====+Voici par exemple le lanceur pour xterm : 
 +<​code>​ 
 +#!/bin/sh
  
-Nécessite la présence de l'application tierce ​l'​exécuteur ​ou l'​emulateur ( qui n'est pas présente par défaut sur les distributions linux ) pour lancer le "logiciel portables" ​/ l'application virtualisée.+eval 'exec perl --S ./$0 ${1+"$@"}' 
 +  if 0; 
  
 +#!perl
  
-====Klik ====+# XTerm Portable 237 - portableTools for Linux 
 +
 +# Packaged / Made Portable by: 
 +# Daniil Kulchenko (www.portools.com) 
 +
 +# Licensed: 
 +# XTerm - MIT/X, Portable Code - GPL. 
 +
 +# Portable Logic: 
 +# XTerm does not have any non-standard runtime dependencies,​ and does 
 +# not save any config files anywhere. Therefore, none.
  
-  * [[http://en.wikipedia.org/​wiki/​Klik_%28packaging_method%29|klik (packaging method - kde - sur wikipedia)]] +# Modifiable variables
-====Runz ==== +$executable ​'​xterm';​ 
-  * [[http://​hacktolive.org/​wiki/​Portable_Applications_%28Linux%29|hacktolive.org]] +$program_name ​'​XTerm';​
-====Zero Install ==== +
-  * [[http://​en.wikipedia.org/​wiki/​Zero_Install|sur Wikipedia]]+
  
-====Wine + Application portable Windows ====+# Internal variables. These usually do not need to be changed. 
 +$executable_dir ​'​App/​bin/';​ 
 +$executable_full ​$executable_dir . $executable;​ 
 +$arguments ​join '',​ @ARGV;
  
-En utilisant wine il serait possible d'​émuler les applications portable windows : et peut être avec moins de problème de librairies manquantes.+print "​Welcome to XTerm Portable.\n\n";
  
-Cependant cela reste une solution sale pour linux.+if (!-e $executable_full) { 
 +    die "​Something went wrongThe main executable is missing. Perhaps you didn't copy all the files?​\n";​ 
 +} elsif(!-x $executable_full) { 
 +    chmod 0755, $executable_full || die "I could not change the permissions of '​$executable'​. Did you copy the files as a regular user?​\n";​ 
 +}
  
-N'​oubliez pas que plus vous utiliserez d'​application windows par wine : plus vous augmenterez les risques de sécurité par wine.+chdir ($executable_dir);​ 
 +system("​./​$executable $arguments"​);​ 
 +</​code>​ 
 +===3) Empaquetage : Au choix ===
  
-Ubuntu ne vérifie pas tous les logiciels exe, et il n'y a pas d'[[antivirus]] par défaut, ce que vous aurez besoin ​en utilisant trop wine.+<note warning>​En cour de développement</​note>​ 
 + 
 +===== Solutions avec une application tierce ===== 
 + 
 +Nécessite la présence de l'​application tierce - l'​exécuteur - ou l'​émulateur (qui n'est pas présent par défaut sur les distributions Linux) pour lancer le "​logiciel portable"​ / l'application virtualisée. 
 + 
 + 
 +====Runz ==== 
 +  * [[http://​hacktolive.org/​wiki/​Portable_Applications_%28Linux%29|hacktolive.org]] 
 +====Zero Install ==== 
 +  * [[https://en.wikipedia.org/​wiki/​Zero_Install|sur Wikipedia]]
  
-Finalement : LINUX n'est pas windows. ​+====Wine + Applications portables Windows ====
  
-C'​était un message ​d'avertissement.+En utilisant [[Wine]], il serait possible ​d'émuler les applications portables Windows : et peut-être avec moins de problèmes de bibliothèques manquantes.
  
-Mais vous êtes libre.+Cependant cela reste une solution insatisfaisante au regard de l'​utilisation d'une version native, notons par exemple une intégration à Ubuntu imparfaite, des applications qui peuvent souffrir de bogues ou de fonctionnalités inopérantes,​ voire ne fonctionnant pas du tout (certains mentionnent également la possibilité d'​infection par des virus Windows, mais ceci n'est pas vérifié).
  
-==== Liste de toutes les solutions tierces pour la création d'​application portable ==== 
  
-  * [[http://​hacktolive.org/​wiki/​Methods_for_Portable_Applications_on_Linux|Methods_for_Portable_Applications_on_Linux]] 
 ===== Solutions de serveur applicatif ===== ===== Solutions de serveur applicatif =====
  
-Concurrent de [[http://​en.wikipedia.org/​wiki/​ClickOnce|ClicOnce]] (microsoft) ou [[http://​en.wikipedia.org/​wiki/​Java_Web_Start|Java Web Start]] ( sun ).+Concurrent de [[https://​en.wikipedia.org/​wiki/​ClickOnce|ClicOnce]] (microsoft) ou [[http://​en.wikipedia.org/​wiki/​Java_Web_Start|Java Web Start]] ( sun ).
  
 <note help>​Nous ne parlerons pas ici des solutions de serveur applicatif en ligne, basé le plus souvent sur java, voir plutôt la page consacré. Merci.</​note>​ <note help>​Nous ne parlerons pas ici des solutions de serveur applicatif en ligne, basé le plus souvent sur java, voir plutôt la page consacré. Merci.</​note>​
Ligne 204: Ligne 243:
 ===== Liens ===== ===== Liens =====
  
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=357387|Application portable sur le forum ubuntu]].+  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=358366|Retour d'​expérience sur la création d'Application portable sur le forum ubuntu]].
  
  
-  * [[http://​en.wikipedia.org/​wiki/​Application_virtualization|(en)Application virtualization]] (wikipedia en) +  * [[https://​en.wikipedia.org/​wiki/​Application_virtualization|(en)Application virtualization]] (wikipedia en) 
-  * [[http://​fr.wikipedia.org/​wiki/​Intergiciel|Serveur d'​application (interficiel sur wikipedia)]]+  * [[https://​fr.wikipedia.org/​wiki/​Intergiciel|Serveur d'​application (interficiel sur wikipedia)]]
  
-  * [[http://​en.wikipedia.org/​wiki/​Application_streaming|(en)Application streaming]] +  * [[https://​en.wikipedia.org/​wiki/​Application_streaming|(en)Application streaming]] 
-  * [[http://​fr.wikipedia.org/​wiki/​Logiciel_en_tant_que_service|Le logiciel en tant que service ou en anglais le Software as a Service (SaaS) (saas)]] +  * [[https://​fr.wikipedia.org/​wiki/​Logiciel_en_tant_que_service|Le logiciel en tant que service ou en anglais le Software as a Service (SaaS) (saas)]] 
-  * [[http://ldn.linuxfoundation.org/​lsb/​make-your-app-portable|(en)Make Your App Portable , linuxfoundation]]+  * [[http://www.linuxfoundation.org/​collaborate/​workgroups/​lsb/​make-your-app-portable|(en)Make Your App Portable , linuxfoundation]] ​(mise à jour lien mort)
  
   * [[http://​sardes.inrialpes.fr/​ecole/​livre/​pub/​|Intergiciel et Construction d'​Applications Réparties]] (livre libre de l'​inria)   * [[http://​sardes.inrialpes.fr/​ecole/​livre/​pub/​|Intergiciel et Construction d'​Applications Réparties]] (livre libre de l'​inria)
  • logiciels_portables_et_virtualisation_d_applications.1258140176.txt.gz
  • Dernière modification: Le 13/11/2009, 20:22
  • par psychederic