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 12/11/2009, 14:21]
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 ​===
- +
  
-===== Solutions avec une application tierce =====+Vous pouvez télécharger les scripts, ou copier ce qui suit dans des fichiers (en leur donnant les droits d'​exécution).
  
-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.+**Les scripts ne demanderont ​pas les droits root, gage de non compromission possible du système.**
  
 +Vous n'​aurez qu'à changer le nom du paquet que vous voulez rendre portable. (cela peut devenir plus compliqué avec des applications complexes).
  
-====Klik ====+=== 1) Lister et copier les dépendances ​===
  
-  * [[http://​en.wikipedia.org/​wiki/​Klik_%28packaging_method%29|klik ​(packaging method - kde - sur wikipedia)]] +Lister les dépendances ​(exécuter dans la racine du projet: 
-====Runz ==== +<​code>​ 
-  * [[http://hacktolive.org/​wiki/​Portable_Applications_%28Linux%29|hacktolive.org]] +#!/bin/sh  
-====Zero Install ==== +# Version ​ 
-  * [[http://en.wikipedia.org/​wiki/​Zero_Install|sur Wikipedia]]+# 1.0 Bêta fonctionne même pour des applications relativement complexe.
  
-====Wine + Application portable Windows ====+# PortableApplicationCreator.sh Portable - portableTools for Linux 
 +
 +# Script Made by: 
 +# Eric Chaudy (Psychederic) 
 +
 +# Licensed: 
 +#​ PortableApplicationCreator - GNU GPLv2 !
  
-En utilisant wine il serait possible d'​émuler les applications portable windows : et peut être avec moins de problème de librairies manquantes. 
  
-Cependant cela reste une solution sale pour linux.+#Choisir le paquet que vous désirez transformer en application portable 
 +lenomdupaquet=firefox-3.5
  
-N'​oubliez pas que plus vous utiliserez d'​application windows par wine : plus vous augmenterez les risques ​de sécurité par wine.+#Creation des dossiers selon la convention ​de nommage 
 +mkdir App Data Other
  
-Ubuntu ne vérifie pas tous les logiciels exe, et il n'a pas d'[[antivirus]] par défaut, ce que vous aurez besoin ​en utilisant trop wine.+#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 
 + 
 +#Note vous pouvez ajouter des dépendances à cet endroitsous cette forme (pour trouver des dépendances vous pouvez utiliser dpkg,ldd) 
 +# sed -i 1i\ 'wget http://​fr.archive.ubuntu.com/​ubuntu/​pool/​....deb' ​ dependances.sh 
 + 
 +#​téléchargement des dépendances 
 +sh dependances.sh 
 +mv dependances.sh /Other 
 + 
 +mkdir tmp 
 +#​Dépaquetage deb, des dépendances 
 +for p in `find -name "​*.deb"​`  
 +do 
 +fakeroot dpkg --extract ​ $p tmp 
 +done 
 + 
 +#On efface les deb 
 +rm *.deb 
 + 
 +#On copie dans les bons répertoires 
 +mv ./tmp/* ./App/ 
 + 
 + 
 +</​code>​ 
 + 
 +((ldd)) 
 +=== 2) Adapter le script de lancement === 
 + 
 +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>​ 
 +#!/bin/sh 
 + 
 +eval 'exec perl -x -S ./$0 ${1+"​$@"​}'​ 
 +  if 0;  
 + 
 +#!perl 
 + 
 +# NOMAPPS Portable - portableTools for Linux 
 +
 +# Packaged / Made Portable by: 
 +# Nom Prenom (www.site.com) 
 +
 +# Licensed: 
 +# NOMAPPS - MPL, Portable Code - GPL. 
 +
 +# Portable Logic: 
 +# > quelque dépendance packagé et problématique de .conf ... 
 +# > besoin de  passer le répertoire profile pour garder les configurations.  
 + 
 +use Cwd; 
 + 
 +# Modifiable variables. 
 +$executable = '​firefox';​ 
 +$program_name = '​Firefox';​ 
 + 
 +# Internal variables. These usually do not need to be changed. 
 +$executable_dir = '​App/​usr/​lib/​firefox-3.5.5/';​ 
 +$executable_full = $executable_dir . $executable;​ 
 +$arguments = join '',​ @ARGV; 
 + 
 +print "​Bienvenue sur $program_name Portable.\n\n";​ 
 + 
 +if (!-e $executable_full) { 
 +    die "​Quelque chose n'a pas fonctionné. L'​executable principale est manquant. Avez vous copié tous les fichiers ?​\n";​ 
 +} elsif(!-x $executable_full) { 
 +    chmod 0755, $executable_full || die "Je n'ai pas pus changer les permissions de '​$executable'​. Avez vous copié ou extrait en tant qu'​utilisateur normal ?​\n";​ 
 +
 + 
 +$cwd = getcwd(); 
 + 
 +#Conf - variable de lancement 
 +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.1.5.system.conf"​);​ 
 +print CONF "​[1.9.1.5] 
 +GRE_PATH=$cwd/​usr/​lib/​xulrunner-1.9.1.5 
 +xulrunner=true 
 +abi=x86-gcc3";​ 
 + 
 +#​Environnement 
 +chdir($executable_dir);​ 
 +system("​./​$executable $arguments -no-remote -profile \"​$cwd/​Data/​firefox-profile\"​ 2>/​dev/​null"​);​ 
 + 
 +</​code>​ 
 + 
 +Voici par exemple le lanceur pour xterm : 
 +<​code>​ 
 +#!/bin/sh 
 + 
 +eval 'exec perl -x -S ./$0 ${1+"​$@"​}'​ 
 +  if 0;  
 + 
 +#!perl 
 + 
 +# 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. 
 + 
 +# Modifiable variables. 
 +$executable = '​xterm';​ 
 +$program_name = '​XTerm';​ 
 + 
 +# Internal variables. These usually do not need to be changed. 
 +$executable_dir = '​App/​bin/';​ 
 +$executable_full = $executable_dir . $executable;​ 
 +$arguments = join '',​ @ARGV; 
 + 
 +print "​Welcome to XTerm Portable.\n\n";​ 
 + 
 +if (!-e $executable_full) { 
 +    die "​Something went wrong. The 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";​ 
 +
 + 
 +chdir ($executable_dir);​ 
 +system("​./​$executable $arguments"​);​ 
 +</​code>​ 
 +===3) Empaquetage : Au choix === 
 + 
 +<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 91: 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.1258032105.txt.gz
  • Dernière modification: Le 12/11/2009, 14:21
  • par psychederic