Descompresión

Un archivo tar.gz

La norma[33] de compresión bajo los sistemas UNIX® es el formato gzip, desarrollado por el proyecto GNU, y considerado como una de las mejores herramientas de compresión general.

Por lo general se asocia gzip a un utilitario denominado tar. tar es un sobreviviente de los tiempos prehistóricos, cuando los informáticos almacenaban sus datos en cintas magnéticas. Hoy día, los disquetes, los CD-ROM y los DVD han reemplazado a las cintas[34], pero todavía se usa tar para crear archivos. Por ejemplo, se pueden agregar todos los ficheros de un directorio a un solo archivo. Luego, este archivo se puede comprimir fácilmente con gzip.

Esta es la razón por la cual muchos software libres están disponibles como archivos tar, comprimidos con gzip. Por lo tanto, sus extensiones son .tar.gz (o también, su forma abreviada .tgz)

Utilización de GNU TAR

Para descomprimir este archivo, Usted puede utilizar gzip y tar. Pero la versión GNU de tar (gtar) le permite utilizar gzip al vuelo, y descomprimir un archivo de manera transparente (y sin necesitar el espacio extra en el disco)

La utilización de tar sigue este formato:

tar <fichero opciones> <.tar.gz fichero> [ficheros]

La opción <ficheros> no es obligatoria. Si se omite, se procesará todo el archivo. Si Usted quiere extraer el contenido de un archivo .tar.gz, no necesita especificar este argumento.

Por ejemplo:

$ 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
...

Entre las opciones de tar se encuentran las siguientes:

  • v permite que tar sea “verboso”. Esto significa que mostrará en pantalla todos los ficheros que encuentre en el archivo. Si se omite esta opción, el procesamiento será silencioso.

  • f esta es una opción obligatoria. Sin ella, tar intenta usar una cinta magnética en vez de un archivo de fichero (es decir, el dispositivo /dev/rmt0)

  • z permite manipular un archivo comprimido con gzip (con el nombre de fichero con sufijo .gz). Si Usted olvida esta opción, tar producirá un error. A la inversa, no deberá utilizar esta opción si Usted está frente a un archivo no comprimido.

tar permite efectuar varias acciones diferentes sobre un archivo (extracción, lectura, creación, adición ...). Una opción permite especificar la acción a usar:

  • x: esta opción le permite extraer los ficheros de un archivo.

  • t: esta opción lista el contenido de un archivo.

  • c: esta opción le permite crear un archivo, esto implica destruir su contenido actual. Por ejemplo, la puede usar para hacer una copia de seguridad de sus ficheros personales.

  • r: esta opción permite adicionar ficheros al final del archivo. No se puede usar con un archivo que ya está comprimido.

Bzip2

Un formato de compresión denominado bzip2 ya reemplazó a gzip en el uso general, aunque algún software todavía se distribuye en formato gzip, principalmente por razones de compatibilidad con sistemas más antiguos. Casi todo el software libre ahora se distribuye en archivos que usan la extensión .tar.bz2.

En lo que al comando tar respecta, bzip2 se usa como gzip. La única cosa que hay que hacer es reemplazar la opción z por la opción j. Por ejemplo:

$ tar xvjf pepe.tar.bz2

Otra posibilidad (que parece ser más portable, ¡pero es más larga de teclear!):

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

bzip2 debe estar instalado en el sistema en un directorio incluido en la variable de entorno PATH antes de que ejecute tar.

¡Simplemente hágalo!

La forma más fácil

Ahora que está listo para descomprimir el archivo, no olvide de hacerlo como administrador (root). Deberá hacer cosas que un usuario no privilegiado no puede hacer, e incluso si puede hacer algunas como tal, es más fácil ser root durante toda la operación, incluso cuando esto puede no ser muy seguro.

El primer paso es que Usted se dirija al directorio /usr/local/src, y copie el archivo allí. De esta manera, debería poder encontrar el archivo en caso de perder el software instalado. Si no tiene mucho espacio en su disco rígido, haga una copia de seguridad del archivo en el soporte habitual que Usted usa para esto una vez que instaló el software. También puede borrar el archivo pero antes de hacerlo, asegúrese de que lo pueda encontrar en la web cuando lo necesite.

Normalmente, la descompresión de un archivo tar debería crear un directorio nuevo (puede verificar esto antes de descomprimir con la opción t). Luego, cámbiese a ese directorio. Ya está listo para continuar con el paso siguiente.

La manera más segura

Los sistemas UNIX® (por ejemplo, GNU/Linux y FreeBSD®) suelen ser sistemas seguros. Esto significa que los usuarios no privilegiados no pueden hacer operaciones que puedan poner en peligro al sistema (por ejemplo, formatear el disco rígido) ni alterar los ficheros de los demás usuarios. En la práctica y en particular, esto hace al sistema inmune frente a los virus.

Por otra parte, root puede hacer lo que se le antoje, incluso correr un programa malicioso (como, por ejemplo, un virus o un Troyano). El disponer del código fuente es una especie de garantía de seguridad frente a los virus[35]. Es decir, al tener el código fuente y si Usted está lo suficientemente entrenado en el lenguaje de programación en el cual se programó el software, Usted puede ver el código y deducir “qué, cómo y por qué” el programa hace lo que hace y determinar si el programa puede llegar a tener, o no, un comportamiento malicioso.

La idea consiste en crear un usuario dedicado a la administración (por ejemplo, free o admin) usando el comando adduser. Dicho usuario debe poder escribir en los directorios siguientes: /usr/local/src, /usr/local/bin y /usr/local/lib, así como también en todo el subárbol /usr/man (puede que también tenga que copiar ficheros en otros lugares). Recomendamos por esto, hacer que este usuario sea el propietario de los directorios necesarios, o crear un grupo para él, y hacer que dicho grupo pueda escribir en esos directorios.

Una vez que se tomaron estas precauciones, Usted puede seguir las instrucciones de la sección “La forma más fácil”.



[33] En GNU/Linux hoy día el estándar es el formato bzip2, más eficiente sobre los ficheros de texto (aunque necesite más poder computacional y más memoria). Por favor, consulte “Bzip2” que trata específicamente con este programa.

[34] Aunque en algunos servidores con mucho volumen de información todavía se siguen usando las cintas magnéticas

[35] Un proverbio del mundo de BSD dice: “Never trust a software you don't have the sources for” (que significa: Nunca confíe en un software del cual no tenga el código fuente)