martedì 30 marzo 2010

Spostare applicazioni di grandi dimensioni

A volte abbiamo bisogno di dover spostare su un'altra unità o in una differente partizione il contenuto della cartella d'installazione di un programma. Se spostassimo solo la cartella contenente l'applicazione avremmo sicuramente dei problemi questo perchè all'atto del setup della maggior parte delle applicazioni vengono aggiunti, nel registro di sistema, riferimenti alla specifica cartella nella quale il programma è stato installato. Queste informazioni vengono frequentemente utilizzate dal programma durante il suo funzionamento e sono abbinate ad altre indicazioni simili memorizzate in alcuni file di dati, spesso presenti nella cartella d'installazione.

Come fare, quindi, per spostare un'intera applicazione senza incorrere in malfunzionamenti, senza la necessità di operare una disinstallazione ed una successiva nuova installazione, e senza perdite di dati (ad esempio, informazioni relative alla configurazione del programma)?

Prima di procedere sarebbe utile un ble back up per ripristinare tutto nel caso in cui si dovessero incontrare difficoltà o malfunzionamenti.


Iniziamo ora con lo spostamento: questa operazione è effettuabile utilizzando l'interfaccia di Winzozz. Per effettuare un'operazione di spostamento è necessario usare il tasto destro del mouse mantenendolo sempre premuto per trascinare la cartella selezionata dal percorso di origine a quello di destinazione. Per completare l'operazione, si dovrà poi cliccare sulla voce Sposta qui.

Il passo successivo consiste nel generare una giunzione tra directory: a partire da Windows Svista l'operazione è semplicissima: è indispensabile aprire la finestra del prompt dei comandi con i diritti amministrativi (pulsante Start in basso a sinistra, digitare cmd, cliccare con il tasto destro del mouse su cmd.exe e scegliere la voce Esegui come amministratore)

Dopo aver confermato la scelta mediante la pressione del pulsante , si dovrà ricorrere al comando mklink, in grado di creare i cosiddetti collegamenti simbolici e giunzioni tra directory.

Una giunzione tra directory consente di richiedere al sistema operativo di creare una sorta di redirect automatico delle richieste dirette ai file presenti in tale directory verso la cartella di destinazione specificta (la directory all'interno della quale sono realmente memorizzati tutti i file e tutte le eventuali sottocartelle).
Usando correttamente il comando mklink si può quindi far credere a Windows che i file necessari per il corretto funzionamento di un'applicazione siano tutti memorizzati nel percorso originario quando in realtà non lo sono, essendo stati spostati altrove.

La sintassi del comando mklink è molto semplice:
mklink /J "cartella vecchia installazione" "cartella contenente i file spostati"

A questo punto il programma già dovrebbe funzionare.

N.B. Le giunzioni di directory possono fare riferimento solamente a percorsi locali: non è quindi permesso "puntare" a cartelle condivise in rete.

I link simbolici sono una caratteristica offerta dal file system NTFS: sono quindi utilizzabili non solo su Windows Svista e Windows 7 ma anche su Windows XP e Windows 2000. Questi ultimi due sistemi operativi sono però sprovvisti del comando mklink che non può essere impiegato.


Se non abbiamo un S.O. successivo o uguale a Windows Svista possiamo usare Link Shell Extensions (l'unico prerequisito è l'installazione delle librerie runtime Microsoft Visual C++)che è un software gratuito la cui prerogativa è la possibilità di aggiungere al menù contestuale di Windows nuovi comandi per la creazione di "giunzioni di directory". Il programma è utilizzabile su sistemi operativi più datati quali Windows XP e Windows 2000.

Dopo aver scaricato ed installato la versione adatta al sistema in uso (32 o 64 bit), si noterà la presenza di alcune voci aggiuntive nel menù contestuale di Windows. In particolare, il comando Pick link source permetterà di indicare la cartella contenente i file mentre scegliendo Drop as è possibile generare una "giunzione tra directory" (Junction).

Sia mklink che Link Shell Extensions consentono di creare anche i cosiddetti collegamenti simbolici ovvero particolari file che non sono altro che un rimando ad una directory o ad un altro file. I collegamenti simbolici vengono gestiti in maniera del tutto trasparente dal file system e quindi dal sistema operativo che interpreta le richiesta di accesso al collegamento così come se si trattasse del file o della cartella cui il sym-link fa riferimento. Ovviamente il passaggio intermedio aggiunto in forza dell'uso del collegamento simbolico ha un costo in termini prestazionali: l'accesso al file è sicuramente più lento rispetto ad un accesso fisico "diretto".
I collegamenti simbolici sono molto versatili, più delle "giunzioni di directory" perché possono puntare non solo a cartelle locali ma anche a directory memorizzate su percorsi di rete.


fonte: IlSoftware.it

Nessun commento:

Posta un commento