en software libre, tutoriales

Atool, descomprimir y comprimir archivos en linux (I)

“Atool”:http://www.nongnu.org/atool/ es una herramienta que desde consola nos permite comprimir/descomprimir archivos y carpetas en diversos formatos.

Es una manera de olvidarnos para siempre de los -nunca recordables- parámetros del comando _tar_. Es en definitiva, una interesante alternativa a _tar_.

*NOTA*: En este primer post nos ocuparemos de ver características generales del programa y como instalarlo. En un segundo post veremos ejemplos de como comprimir y descomprimir con las herramienta que incluye _atool_ para ese efecto, y en un tercer post centraremos nuestra atención en las otras restantes funciones que incluye _atool_.

* Instalar _atool_ en Ubuntu Jaunty 9.04:

bc. $ sudo aptitude install atool

Si preferimos bajar directamente el paquete _.deb_ o _.rpm_, o el código fuente, lo podemos hacer desde la “propia pagina del software”:http://www.nongnu.org/atool/.

¿Que diferencia hay? La versión de _Ubuntu_ es la 0.35, y en la pagina descargaríamos la versión 0.36.

* Instalara _atool_ desde el código fuente

Solo para ver como se hace, instalaremos la versión 0.36 desde el código fuente.

+Descargar el código fuente de _atool_+

Input

bc. $ wget http://savannah.nongnu.org/download/atool/atool-0.36.0.tar.gz

Output

bc. –2009-07-26 14:58:36– http://savannah.nongnu.org/download/atool/atool-0.36.0.tar.gz
Resolviendo download.savannah.gnu.org… 199.232.41.75
Conectando a download.savannah.gnu.org|199.232.41.75|:80… conectado.
Petición HTTP enviada, esperando respuesta… 302 Found
Ubicación: http://mirrors.openfountain.cl/savannah/atool/atool-0.36.0.tar.gz [siguiente]
–2009-07-26 14:58:37– http://mirrors.openfountain.cl/savannah/atool/atool-0.36.0.tar.gz
Resolviendo mirrors.openfountain.cl… 190.96.70.35
Conectando a mirrors.openfountain.cl|190.96.70.35|:80… conectado.
Petición HTTP enviada, esperando respuesta… 200 OK
Longitud: 106622 (104K) [application/x-gzip]
Guardando: «atool-0.36.0.tar.gz»
2009-07-26 14:58:39 (98,9 KB/s) – `atool-0.36.0.tar.gz’ guardado [106622/106622]

Un vez hecho esto, tendremos en nuestro disco el código de _atool_. Nos queda descomprimirlo y compilarlo.

+Preparar el sistema para la compilación+

Antes de intentar compilar, hay que corroborar que tenemos instalado el compilador _GCC_. Nos aseguramos tecleando:

bc. $ sudo aptitude install build-essential

Luego de esto, podremos estar seguros de que tenemos lo necesario para compilar programas.

Input

bc. $ mkdir atool && cp atool-0.36.0.tar.gz atool && cd atool
$ tar -zxvf atool-0.36.0.tar.gz
$ cp -r atool-0.36.0/* ./
$ rm -r atool-0.36.0*

Lo que hacemos aquí es crear una carpeta llamada _atool/_, mover el archivo descargado en el paso anterior, descomprimirlo con _tar_ (Ultima vez que lo usaremos :-D), y borrar el comprimido una vez hecha la descompresión.

+Proceso de compilación+

Básicamente, el proceso de compilación de un programa consta de 3 partes:

# ./configure
# make
# make install

Los problemas de compilación se dan cuando falla alguno de estos comandos en medio de su ejecución. A mi no me ha ocurrido nada inesperado, así que si les llega a surgir algún error, comenten y vemos como podemos solucionarlo.

@$ sudo ./configure@

bc. [sudo] password for tomas:
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking for perl… /usr/bin/perl
configure: creating ./config.status
config.status: creating atool.1
config.status: creating atool.spec
config.status: creating Makefile
config.status: executing acat-link commands
config.status: executing adiff-link commands
config.status: executing als-link commands
config.status: executing apack-link commands
config.status: executing aunpack-link commands
config.status: executing arepack-link commands

@$ sudo make@

bc. touch atool
sed -r “1~s|[^ ]*|#!/usr/bin/perl|;/^\\$::SYSCONFDIR = /s|’.*’|’/usr/local/etc’|;
/^\\$::PACKAGE = /s/’.*’/’atool’/;/^\\$::VERSION = /s/’.*’/’0.36.0′
/;/^\\$::BUG_EMAIL = /s/’.*’/’oskar@osk.mine.nu’/” < atool > atool.tmp \
&& mv atool .atool-old \
&& mv atool.tmp atool
chmod a+x atool
touch .atool-stamp

@$ sudo make install@

bc. make[1]: se ingresa al directorio `/home/tomas/atool’
test -z “/usr/local/bin” || /bin/mkdir -p “/usr/local/bin”
/usr/bin/install -c ‘atool’ ‘/usr/local/bin/atool’
mkdir -p /usr/local/bin
mkdir -p /usr/local/share/man/man1
for f in aunpack arepack apack acat als adiff; do \
ln -s -f atool /usr/local/bin/$f; \
ln -s -f atool.1 /usr/local/share/man/man1/$f.1; \
done
test -z “/usr/local/share/man/man1” || /bin/mkdir -p “/usr/local/share/man/man1”
/usr/bin/install -c -m 644 ‘./atool.1’ ‘/usr/local/share/man/man1/atool.1′
make[1]: se sale del directorio `/home/tomas/atool’

+Comprobación de que la instalación se realiza de manera correcta+

@$ atool –version@

bc. atool 0.36.0
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008 Oskar Liljeblad
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License .
There is NO WARRANTY, to the extent permitted by law.
Written by Oskar Liljeblad.

Como vemos, nos dice que tenemos la versión 0.36, que fue la que descargamos, por lo tanto, damos por finalizado la instalación.

* Algunas consideraciones

_Atool_ es un conjunto de _scripts_ que ayudan a manejar formatos de compresión. Maneja los clásicos _.zip_, pero también _.tar_, _.bz2_, _.gz_, etc…

Se integra de 6 sub-programas que detallo a continuación:

# aunpack: Herramienta encargada de descomprimir
# apack: Herramienta encargada de comprimir
# als: Herramienta que lista los archivos que hay dentro de un comprimido.
# acat: Extrae los archivos del comprimido y los muestra por la salida estándar.
# adiff: Se encarga de mostrar las diferencias entre dos archivos comprimidos.
# arepack: Sirve para pasar de un formato de comprimido a otro sin realizar manualmente el paso intermedio de descompresión.

Del manual de _atool_ podemos ver que maneja los siguientes formatos de archivo comprimidos:

# tar+gzip (.tar.gz, .tgz): Todos los comandos son soportados.
# tar+bzip (.tar.bz, .tbz): Todos los comandos son soportados.
# tar+bzip2 (.tar.bz2, .tbz2): Todos los comandos son soportados.
# tar+compress (.tar.Z, .tZ): Todos los comandos son soportados.
# tar+lzop (.tar.lzo, .tzo): Todos los comandos son soportados.
# tar+7z (.tar.7z, .t7z): Todos los comandos son soportados.
# tar (.tar): Todos los comandos son soportados.
# zip (.zip): Todos los comandos son soportados.
# jar (.jar, .war): Los comandos soportados son listar, extraer y agregar archivos.
# rar (.rar): Todos los comandos son soportados.
# lha (.lha, .lzh): Todos los comandos son soportados.
# 7z (.7z): Los comandos soportados son listar, extraer y agregar archivos.
# alzip (.alz): Es soportado el comando extraer.
# ace (.ace): Son soportados los comandos listar y extraer.
# ar (.a): Todos los comandos son soportados.
# arj (.arj): Los comandos soportados son listar, extraer y agregar archivos.
# arc (.arc): Todos los comandos son soportados.
# rpm (.rpm): Los comandos soportados son listar y extraer archivos.
# deb (.deb): Los comandos soportados son listar y extraer archivos.
# cab (.cab): Los comandos soportados son Cat, listar y extraer archivos.
# gzip (.gz): Los comandos soportados son Cat, agregar y extraer archivos.
# bzip (.bz): Los comandos soportados son Cat, agregar y extraer archivos.
# bzip2 (.bz2): Los comandos soportados son Cat, agregar y extraer archivos.
# compress (.Z): Los comandos soportados son Cat, agregar y extraer archivos.
# lzma (.lzma): Los comandos soportados son Cat, agregar y extraer archivos.
# lzop (.lzo): Los comandos soportados son Cat, agregar y extraer archivos.
# rzip (.rz): Los comandos soportados son agregar y extraer archivos.
# lrzip (.lrz): Los comandos soportados son agregar y extraer archivos.
# 7zip (.7z): Todos los comandos son soportados.
# cpio (.cpio): Los comandos soportados son listar, agregar y extraer archivos.

Para mas detalles, ver el manual de la herramienta. Pero a simple vista podemos observar que muchos formatos son soportados.

+Algunos datos adicionales+

Para los formatos mas comunes, soporta el uso de contraseñas al extraer. (Es decir, si alguien le agrego contraseña a un comprimido, _atool_ nos la preguntara y hará la extracción correspondiente).

No menciona en ningún lado que permita crear archivos con contraseña. Si lo encuentro después les cuento.

Damos por finalizada esta primera parte del tutoría. Para la segunda parte, me tomare algunos días.

Si encuentran errores, comenten el post.

*Actualización(27/06/09):* La carpeta desde donde se instalo _atool_ cuando compilamos el código (en caso de haber seguido dicho procedimiento), no debería ser borrada, debido a que posteriormente nos podría servir para desinstalar el programa en caso de querer hacerlo.

Para desinstalar el programa, dentro de la carpeta _atool/_ donde instalamos el programa (Donde hicimos la secuencia @./configure@, @make@ y @make install@), tipeamos (desde una consola)

bc. $ sudo make uninstall

Luego de unos comandos, el programa quedara desinstalado.

Loading Facebook Comments ...

¿Algo para decir?

Comentario

Loading Disqus Comments ...