Les applications portables sont de plus en plus utilisées auprès du grand public pour leur avantage :
D'un point de vue plus technique :
Au niveau professionnel, la virtualisation d'applications peut garantir :
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. 1)
La virtualisation d'applications est aussi utilisée pour les téléphones portables.
En entreprise il serait préférable d'utiliser des applications empaquetées - et compatibles linux nativement (sans logiciel tierce)2).
Les applications portables connues du grand public ne sont que rarement empaquetées.
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.
Veuillez vous reporter sur des sites de confiance.
Merci de rapporter toute problématique de sécurité.
Concurrent de Vmware thinApps(windows), et des applications portables libres basées sur nsis (nullsoft), et autres.
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.
Vous n'aurez qu'à changer le nom du paquet que vous voulez rendre portable. (cela peut devenir plus compliqué avec des applications complexes).
Lister les dépendances (exécuter dans la racine du projet) :
#!/bin/sh # Version # 1.0 Bêta : fonctionne même pour des applications relativement complexe. # PortableApplicationCreator.sh Portable - portableTools for Linux # # Script Made by: # Eric Chaudy (Psychederic) # # Licensed: # PortableApplicationCreator - GNU GPLv2 ! #Choisir le paquet que vous désirez transformer en application portable lenomdupaquet=firefox-3.5 #Creation des dossiers selon la convention de nommage mkdir App Data Other #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 endroit, sous 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/
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 :
mkdir App/firefox-profile
Vous pouvez trouver un exemple plus simple après celui-ci.
#!/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");
Voici par exemple le lanceur pour xterm :
#!/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");
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.
En utilisant Wine, il serait possible d'émuler les applications portables Windows : et peut-être avec moins de problèmes de bibliothèques manquantes.
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é).
Concurrent de ClicOnce (microsoft) ou Java Web Start ( sun ).
Contributeurs : Psychederic.