The making of…

Il concetto di applicazione portatile

Perchè una qualsiasi applicazione possa essere definita “Portatile“, ci si deve assicurare che sia conforme a questi tre principi:

  1. l’applicazione deve funzionare a prescindere dalla posizione in cui è installata o dalla lettera del drive che Windows assegna al dispositivo su cui sta girando;
  2. l’applicazione deve salvare dati e configurazioni sulla chiavetta USB, senza intaccare ulteriormente altre cartelle di sistema;
  3. l’applicazione non deve modificare l’ambiente di Windows, o quantomeno non in modo permanente.

Mentre il punto 1 potrebbe sembrare un dato di fatto, è sorprende scoprire quante applicazioni memorizzano, in fase di installazione o di avvio, la lettera assegnata da Windows al supporto USB su cui sono installate. Questo può creare problemi quando utilizziamo la stessa chiavetta USB su computer diversi, nei quali Windows assegna alla stessa chiavetta USB una lettera del drive diversa.
Il punto 2 generalmente ha a che fare col fatto che l’applicazione utilizza, ad esempio, la cartella “Documents and Settings“, piuttosto che altre cartelle di sistema, per immagazzinare configurazioni o dati temporanei mentre è in esecuzione.
Infine, riguardo al punto 3, il problema è come l’applicazione influisce sul registro di sistema di Windows. Realisticamente, non si può pensare che l’ambiente non si sporchi in qualche modo. Il meglio che si può fare è creare un backup di tutte le impostazioni attuali prima dell’avvio dell’applicazione, per poi restaurarle quando l’applicazione termina la sua esecuzione.
Per superare questi problemi, ci vengono in aiuto determinate utility di cui parleremo nel prosieguo di questo articolo.

Il sistema di base

Innanzitutto, per poter creare delle applicazioni portatili è necessario un ambiente, per così dire, vergine. Purtroppo molti di noi non posseggono computer da dedicare ad un’attività come questa. Una soluzione in tal senso è data dalla virtualizzazione dei sistemi, ossia da quei software che permettono di emulare l’hardware di un reale PC, e permettere così l’esecuzione di macchine virtuali all’interno del nostro sistema operativo.
Un’ottima soluzione, che poi è quella che ho utilizzato, è VirtualBox (www.virtualbox.org), reperibile all’URL: http://www.virtualbox.org/wiki/Downloads, software open-source disponibile anche per Linux, che svolge egregiamente tutte le funzioni di virtualizzazione di cui abbiamo bisogno.
Scaricate il software ed installatelo. Ad installazione completata, lanciate il programma VirtualBox e create una macchina virtuale su cui installare tutti i sistemi operativi che volete (mi raccomando alle licenze di Windows, dovete possederne tante quanti sono i sistemi Windows che installate). Non ci dilungheremo qui sulla creazione di una macchina virtuale ed assumeremo di avere un sistema Windows XP Service Pack 2 funzionante, magari con supporto al CD/DVD, all’USB e alla rete. In circa 30 minuti dovreste avere un sistema virtuale funzionante.

Le utility necessarie

Rendere portatile un’applicazione non è semplicissimo, per provare a farlo si può cominciare leggendo questa piccola guida che tratta l’argomento, in modo da farsi un’idea generale dell’argomento e poter iniziare con le idee un po’ più chiare. Per cominciare bisogna tener conto che i programmi sono quasi sempre disponibili in forma di file di installazione (Setup.exe) perciò spesso è necessario utilizzare particolari applicazioni in grado di estrarre i file dai pacchetti di installazione, evitando il passaggio dell’installazione. Una di queste applicazioni è Universal Extractor, che permette di estrarre i file presenti in questi pacchetti di installazione come se fosse un normale archivio compresso.
Abbiamo già detto della necessità di monitorare le cartelle in cui le applicazioni vanno a scrivere durante la loro esecuzione. Per verificare eventuali salvataggi di dati in queste cartelle è possibile utilizzare applicazioni di monitoraggio come FileMon.
Abbiamo anche già parlato della necessità di monitorare le variazioni del registro di sistema di Windows. Per scoprire se un programma modifica o meno il registro di sistema esistono applicazioni come RegMon e Regshot. Per risolvere questo problema alcuni programmatori stanno lavorando a piccoli launcher in grado di salvare nella stessa cartella del programma le rispettive chiavi di registro.
Per completare la creazione di un’applicazione portatile ricordiamo che con UPX Shell e UPX Tool è possibile comprimere i singoli file che compongono un programma, mantenendolo funzionante,  risparmiando spazio sul la chiavetta USB.
Infine, per la fase di deployment, ossia di distribuzione dell’applicazione, è necessario un sistema di pacchettizzazione ed installazione dei software. La migliore scelta, ma non solo per i fini della distribuzione del software, come vedremo nel prosieguo dell’articolo, è il Nullsoft Scriptable Install System (meglio conosciuto come NSIS), che non è altro che un compilatore per il linguaggio di scripting NSIS. Una semplice interfaccia grafica per NSIS è SFX Tool, con la quale è possibile in pochi passi compilare i pacchetti di installazione. Altro tool fondamentale, soprattutto per quanto riguarda le specifiche attuali del PortableAppsMenu (vedi qui sotto…) è il tool di compressione 7-Zip.

Il sistema dei launchers ed il menù di avvio delle applicazioni

Dopo aver trovato tutto il necessario per creare un’applicazione portatile, viene il momento di decidere quale metodologia adottare per la creazione della suite.
Dopo varie ricerche e letture su internet sono giunto alla conclusione di utilizzare il sistema dei launchers, ossia di creare delle piccole applicazioni utilizzando il linguaggio di scripting NSIS (che quindi non torna utile solo per le installazioni) che permettono di risolvere i problemi prospettati all’inizio di questo articolo. Tale metodologia è stata usata, seppur con strumenti diversi, da due dei progetti più avanzati circa la portabilizzazione delle applicazioni: WinPen Pack e PortableApps. Personalmente ho preferito l’approccio di quest’ultimo progetto, perchè più metodico, ma anche per un altro motivo: il PortableApps Menu è, secondo me, il menù di lancio di applicazioni portatili più semplice, completo, funzionale ed esteticamente bello che ci sia. La suite utilizza una versione modificata del PortableApps Menu, detta appunto PortableApps Menu Mod, che consente più personalizzazioni rispetto alla versione originale. Nelle suite è comunque presente un menù di lancio delle applicazioni più snello, il PStart, utile per chi non ha (o non vuole installare il .NET framework).

Creare un’applicazione portatile

to do…

Letture utili

Howto create a portable application?
Safe portable apping
Windows Tools on CDROM or USB Sticks
Howto put Windows XP on your thumb drive
List of portable application @ Wikipedia
Howto make your USB drive into a digital swiss-army knife

Links utili

Portable Freeware
PortableApps.Com
Portable utilities for USB keys @ Mike Tech
Freeware @ XTort.Net
Portable USB software: a melangè
Portable USB Apps @ InfoBox
Portable freeware @ NedWolf
WinPenPack
Wininizio Pensuite
USB applications @ Kizikas.Net
Windows SysInternals
Free Windows Software On The Go
OSSWin
StandAlone
NoNags
Freeware Planet
FramaKey.Org
USBSoft
Free Portable USB Flash Drive Applications
No-Install
Portables @ CubeGames
Portables @ Sourceforge

Annunci

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...




%d blogger hanno fatto clic su Mi Piace per questo: