16.2. Decompressione

16.2.1. Archivi tar.gz

Il formato standard[1] per la compressione nei sistemi Unix è il formato gzip, sviluppato dal progetto GNU, che viene considerato uno dei migliori strumenti per la compressione generica dei file.

gzip viene spesso associato con un programma che si chiama tar. tar è il superstite di tempi antidiluviani, quando gli operatori di computer archiviavano i loro dati su nastri. Oggi floppy disk e CD-ROM hanno rimpiazzato i nastri, ma tar viene ancora impiegato per creare archivi. Tutti i file presenti in una directory, ad esempio, possono essere riuniti in un unico file; quest'ultimo può essere facilmente compresso con gzip.

Questo è il motivo per cui gran parte del software libero è disponibile sotto forma di archivi tar, compressi con gzip. La loro estensione, perciò, è .tar.gz (o anche .tgz per brevità).

16.2.2. Uso di GNU Tar

Per decomprimere un archivio di questo tipo, è possibile usare gzip e poi tar. Ma la versione GNU di tar (gtar) permette di usare gzip "al volo" (ingl. on-the-fly), e di decomprimere un archivio quasi senza accorgersene (e senza il bisogno di spazio aggiuntivo su disco).

L'uso di tar segue questa sintassi:

tar <opzioni file> <.tar.gz file> [file]

L'opzione <files> non è necessaria. Se omessa, l'operazione richiesta verrà effettuata sull'intero archivio. Questo argomento non dev'essere specificato per estrarre il contenuto di un archivio .tar.gz.

Ad esempio:

$ tar xvfz guile-1.3.tar.gz
-rw-r--r-- 442/1002      10555 1998-10-20 07:31 guile-1.3/Makefile.in
-rw-rw-rw- 442/1002       6668 1998-10-20 06:59 guile-1.3/README
-rw-rw-rw- 442/1002       2283 1998-02-01 22:05 guile-1.3/AUTHORS
-rw-rw-rw- 442/1002      17989 1997-05-27 00:36 guile-1.3/COPYING
-rw-rw-rw- 442/1002      28545 1998-10-20 07:05 guile-1.3/ChangeLog
-rw-rw-rw- 442/1002       9364 1997-10-25 08:34 guile-1.3/INSTALL
-rw-rw-rw- 442/1002       1223 1998-10-20 06:34 guile-1.3/Makefile.am
-rw-rw-rw- 442/1002      98432 1998-10-20 07:30 guile-1.3/NEWS
-rw-rw-rw- 442/1002       1388 1998-10-20 06:19 guile-1.3/THANKS
-rw-rw-rw- 442/1002       1151 1998-08-16 21:45 guile-1.3/TODO
...

Tra le opzioni di tar:

16.2.3. bzip2

Un nuovo formato di compressione, chiamato bzip2, ha cominciato a rimpiazzare gzip nell'uso normale. bzip2 produce archivi più piccoli rispetto a gzip, ma non è ancora diventato uno standard. Le estensioni .tar.bz2 hanno iniziato a diffondersi soltanto in tempi recenti.

bzip2 viene usato anche per mezzo del comando tar, proprio come gzip. L'unico accorgimento da adottare è la sostituzione della lettera z con la y. Ad esempio:

$ tar xvfy foo.tar.bz2

Alcune distribuzioni invece usano, o hanno usato, l'opzione I:

$ tar xvfI foo.tar.bz2

Un altro metodo (che sembrerebbe più compatibile, ma richiede più tempo per essere digitato!):

$ tar --use-compress-program=bzip2 -xvf foo.tar.bz2

bzip2 deve essere installato e incluso nella vostra variabile d'ambiente PATH prima di lanciare tar.

16.2.4. Fatelo e basta!

16.2.4.1. Il modo più semplice

Adesso che siete pronti a decomprimere l'archivio, non dimenticate di eseguire questa operazione in veste di amministratori del sistema (root). Sarà necessario compiere azioni che non sono permesse a un utente normale, e anche se parte di quello che farete è alla portata di quest'ultimo, è più semplice essere root per tutto il tempo.

Il primo passo è quello di spostarsi nella directory /usr/local/src e copiarvi l'archivio. In tal modo, dovreste riuscire sempre a ritrovare l'archivio di partenza se il programma installato dovesse venir rimosso. Se non avete molto spazio a disposizione sul vostro disco rigido, salvate l'archivio su un floppy disk dopo aver installato il programma. Nulla vi vieta di cancellarlo, ma accertatevi di poterlo comunque reperire sul Web nel caso doveste averne bisogno.

La decompressione di un archivio tar, in genere, dovrebbe portare alla creazione di una nuova directory (potete controllare che ciò si verifichi grazie all'opzione t). Una volta creata, spostatevi in tale directory, in modo da esser pronti per continuare.

16.2.4.2. Il modo più sicuro

I sistemi Unix (di cui GNU/Linux e FreeBSD costituiscono validi esempi) sono sistemi sicuri. Questo significa che gli utenti normali non possono né compiere operazioni che possono mettere a rischio il sistema (la formattazione di un disco rigido, ad esempio), né modificare i file di altri utenti. Tale condizione comporta anche un'immunizzazione del sistema per quanto riguarda i virus.

root, d'altra parte, può fare tutto - anche lanciare un programma malevolo. Avere a disposizione il codice sorgente vi permette di esaminarlo per escludere la presenza di codice malevolo (virus o cavalli di Troia). È meglio prestare la massima attenzione a questo problema[2].

Il nostro suggerimento, pertanto, è di creare un utente dedicato a compiti amministrativi (free o admin, ad esempio) usando il comando adduser. Questo utente deve avere il permesso di scrivere nelle seguenti directory: /usr/local/src, /usr/local/bin e /usr/local/lib, come pure tutta la sotto-gerarchia di /usr/man (è anche possibile che debba avere il permesso di copiare file altrove). Vi raccomandiamo di rendere questo utente proprietario delle directory necessarie, oppure di creare un gruppo per lui e di rendere tali directory accessibili in scrittura per il gruppo.

Dopo aver preso queste precauzioni, potete seguire le istruzioni della sezione Il modo più semplice.

Note

[1]

Un nuovo programma, chiamato bzip2, più efficiente nei confronti dei file di testo (e più esigente in materia di potere di calcolo), viene usato sempre più di frequente. Si veda la sezione successiva bzip2 che si occupa specificamente di esso.

[2]

Un proverbio del mondo BSD dice: "Non fidarti mai di un pacchetto di cui non hai i sorgenti."


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/