Bzip2 COMO
David Fetter,
[email protected]
Traducido por: Joaquín Cuenca Abela,
[email protected] v1.6 Tue Mar 10 17:48:42 PST 1998
Este documento explica cómo utilizar el nuevo compresor bzip2.
Índice General
1 Introducción
1.1 Memoria de cambios . .
. . . . . .
.
. .
. .
. .
.
. . .
.
.
. . .
.
.
. . .
.
.
. . .
.
.
.
.
.
.
.
.
.
2 Obtención de bzip2
2.1 Obtención de versiones precompiladas de bzip2 .
. .
. .
2.2 Obtención del código fuente de bzip2 .
. .
2.3 Compilación de bzip2 en su ordenador .
. .
.
.
.
.
.
.
. .
. .
. .
. .
.
.
.
. .
. .
. .
. .
. .
. .
.
.
.
. .
. .
. . .
. . .
.
.
.
.
.
. . .
. . .
. . .
.
.
.
.
.
.
. . .
. . .
. . .
.
.
.
. .
. .
. .
. .
. .
. .
3 Utilización de bzip2
4 Utilización conjunta con tar
4.1 Forma fácil que configurar: . . . . .
.
. .
.
4.2 Forma fácil de usar: . . .
. . . . .
.
. .
. .
.
.
.
. .
. .
.
.
.
. . .
.
.
. . .
.
. . .
.
. .
. .
.
. .
. .
.
. . .
.
.
. . .
.
. .
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
5 Utilización de bzip2 con less
6 Utilización de bzip2 con emacs
6.1 Cambio de emacs para todos: . . . .
. .
6.2 Cambiar emacs para uno mismo: . .
. .
.
.
. .
. .
.
.
. .
. .
. .
. .
.
.
.
.
.
.
. . .
. . .
.
.
.
.
. . .
. . .
.
.
.
.
. . .
. . .
.
.
.
.
. . .
. . .
.
.
.
.
.
.
.
.
7 Utilización de bzip2 con wu-ftpd
8 Utilización de bzip2 con Netscape en XWindows
9 Utilización de bzip2 con xv
10 Anexo: El INSFLUG
1
Introducción
1
2
2
2
2
3
3
3
3
3
5
6
6
7
7
8
8
8
texto original (en sgml) se encuentra http://www.best.com/˜dfetter/Bzip2-HOWTO/Bzip2-
El
HOWTO.sgml.
Bzip2 está creado con un magnífico nuevo algoritmo sobre compresión de datos. Generalmente consigue que los
ficheros queden en un 60-70% del tamaño que tienen los ficheros comprimidos con gzip.
2. Obtención de bzip2
2
Este documento le llevará a través de unas cuantas aplicaciones para bzip2.
franco-hablantes
http://www.freenix.fr/linux/HOWTO/mini/Bzip2.html,
Los
en
ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/mini/Bzip2.gz.
Arnaud por correo electrónico
[email protected].
tienen el documento traducido por Arnaud Launay.
y
para
La versión web está
ftp
Puede contactar con
recoger
por
que
hablen
Japonés
versión
http://jf.gee.kyoto-u.ac.jp/JF/JF.html.
Aquellos
su
Isaji,
http://www2s.biglobe.ne.jp/˜kaien/,
[email protected].
pueden
utilizar
la
y
su
dirección
de
correo
electrónico
es
Japonesa,
La
de
página
la mano
de
Isaji
de
está
Tet-
en
isa-
1.1 Memoria de cambios
v1.6 Añadido el activador para Netscape de TenThumbs
También se cambió lesspipe.sh por sugerencia suya. Ahora debería funcionar mejor.
v1.5 Añadida la traducción al francés de Arnaud Launay, y su fichero wu-ftpd.
v1.4 Añadida la traducción al japones de Tetsu Isaji.
v1.3 Añadido el fichero .emacs para las versiones 19.30 y superiores por Ulrik Dickow.
(También se ha corregido el parche de jka-compr.el por sugerencia suya. ¡Eepa! Bzip2 todavía(¿?) no
tiene parámetro “append”.)
v1.2 Se ha cambiado el parche para que emacs reconozca automágicamente ficheros .bz2.
v1.1 Añadido parche para emacs.
v1.0 Primer round.
2 Obtención de bzip2
La página principal de bzip2 está http://www.muraroa.demon.co.uk/. El servidor réplica en los Estados
Unidos es http://www.digistar.com/bzip2/index.html. También se puede encontrar en la dirección
ftp de Red Hat, ftp://ftp.redhat.com/pub/contrib.
2.1 Obtención de versiones precompiladas de bzip2
Busque en las direcciones de las principales distribuciones.
es ftp://ftp.redhat.com/pub/contrib/i386/bzip2-0.1pl2-1.i386.rpm.
está
4.deb,
Slackware
3.4/slakware/a9/bzip2.tgz.
El fichero compilado para intel de Red Hat
El de Debian
ftp://ftp.debian.org/debian/hamm/hamm/binary-i386/utils/bzip2 0.1pl2-
http://www.cdrom.com/pub/linux/slackware-
está
en
de
la
y
También puede obtener los ficheros directorios análogos de cualquier servidor réplica.
2.2 Obtención del código fuente de bzip2
El código está en los lugares oficiales (ver la sección 2 (Obtención de bzip2) para obtener una lista de las direc-
ciones). Red Hat tiene el código en ftp://ftp.redhat.com/pub/contrib/SRPMS/bzip2-0.1pl2-
1.src.rpm.
3. Utilización de bzip2
3
2.3 Compilación de bzip2 en su ordenador
Si tiene gcc 2.7.2.3, cambie la línea que pone
CFLAGS = -O3 -fomit-frame-pointer -funroll-loops
a
CFLAGS = -fomit-frame-pointer -funroll-loops
osea, quite el -O3. Después de haber hecho ésto, sólo tiene que hacer un make e instalarlo siguiendo las instrucciones
del fichero README.
3 Utilización de bzip2
Lea la bonita página man :)
4 Utilización conjunta con tar
Básicamente, hay dos formas de combinar bzip2 con tar:
4.1 Forma fácil que configurar:
Este método no necesita configurar nada. Para desempaquetar un fichero .tar.gz, digamos algo.tar.bz, en el direc-
torio actual, debemos hacer
/directorio/de/bzip2 -cd algo.tar.bz2 | tar xf -
Este método funciona, pero puede ser un poco pesado teclearlo todo cada vez que se necesite descomprimir algo.
4.2 Forma fácil de usar:
Aplique el siguiente parche a gnu tar 1.12, compílelo, instálelo, y se acabó. Asegúrese de que tanto tar como bzip2
están en su $PATH con
which tar
which bzip2
Para utilizarlo, sólo tiene que hacer
tar xyf algo.tar.bz2
para descomprimir el fichero.
Para hacer un nuevo fichero comprimido hay que hacer algo parecido:
tar cyf algo.tar.bz2 fichero1 fichero2 fichero3...directorio1 directorio2...
4. Utilización conjunta con tar
4
Y aquí está el parche :)
*** tar.c.orig Sat Apr 26 05:09:49 1997
--- tar.c
***************
*** 16,21 ****
--- 16,24 ----
Feb 2 00:50:47 1998
with this program; if not, write to the Free Software Foundation, Inc.,
59 Place - Suite 330, Boston, MA 02111-1307, USA. */
+ /* Feb 2 98: patched by David Fetter to use bzip2 as a
+
+
filter (option -y) */
#include "system.h"
#include <getopt.h>
***************
*** 196,201 ****
--- 199,206 ----
+
+
{"block-number", no_argument, NULL, ’R’},
{"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR},
{"blocking-factor", required_argument, NULL, ’b’},
{"bzip2", required_argument, NULL, ’y’},
{"bunzip2", required_argument, NULL, ’y’},
{"catenate", no_argument, NULL, ’A’},
{"checkpoint", no_argument, &checkpoint_option, 1},
{"compare", no_argument, NULL, ’d’},
***************
*** 372,377 ****
--- 377,383 ----
PATTERN
-o, --old-archive, --portability
--posix
+
-y, --bzip2, --bunzip2
-z, --gzip, --ungzip
-Z, --compress, --uncompress
--use-compress-program=PROG
at list/extract time, a globbing PATTERN\n\
write a V7 format archive\n\
write a POSIX conformant archive\n\
filter the archive through bzip2\n\
filter the archive through gzip\n\
filter the archive through compress\n\
filter through PROG (must accept -d)\n"),
***************
*** 448,454 ****
Y per-block gzip compression */
#define OPTION_STRING \
!
"-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
static void
set_subcommand_option (enum subcommand subcommand)
--- 454,460 ----
Y per-block gzip compression */
#define OPTION_STRING \
!
"-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxyz"
static void
set_subcommand_option (enum subcommand subcommand)
***************
5. Utilización de bzip2 con less
5
*** 805,810 ****
--- 811,820 ----
+
+
+
+
case ’X’:
exclude_option = 1;
add_exclude_file (optarg);
break;
case ’y’:
set_use_compress_program_option ("bzip2");
break;
case ’z’:
5 Utilización de bzip2 con less
Para descomprimir los ficheros bzip2 al vuelo, esto es, para ser capaces de utilizar less en estos ficheros sin tener
primero que descomprimirlos, podemos crear un lesspipe.sh (página man de less) como éste:
#!/bin/sh
# This is a preprocessor for ’less’. It is used when this environment
# variable is set:
LESSOPEN="|lesspipe.sh %s"
case "$1" in
*.tar) tar tvvf $1 2>/dev/null ;; # View contents of various tar’d files
*.tgz) tar tzvvf $1 2>/dev/null ;;
# This one work for the unmodified version of tar:
*.tar.bz2) bzip2 -cd $1 $1 2>/dev/null | tar tzvvf - ;;
#This one works with the patched version of tar:
# *.tar.bz2) tyvvf $1 2>/dev/null ;;
*.tar.gz) tar tzvvf $1 2>/dev/null ;;
*.tar.Z) tar tzvvf $1 2>/dev/null ;;
*.tar.z) tar tzvvf $1 2>/dev/null ;;
*.bz2) bzip2 -dc $1 2>/dev/null ;; # View compressed files correctly
*.Z) gzip -dc $1 2>/dev/null ;;
*.z) gzip -dc $1 2>/dev/null ;;
*.gz) gzip -dc $1 2>/dev/null ;;
*.zip) unzip -l $1 2>/dev/null ;;
*.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=‘file -L $1‘ ; # groff src
FILE=‘echo $FILE | cut -d ’ ’ -f 2‘
if [ "$FILE" = "troff" ]; then
groff -s -p -t -e -Tascii -mandoc $1
fi ;;
*) cat $1 2>/dev/null ;;
FILE1=‘echo $FILE | cut -d ’ ’ -f 2‘
FILE2=‘echo $FILE | cut -d ’ ’ -f 3‘
if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
# *) FILE=‘file -L $1‘ ; # Check to see if binary, if so -- view with ’strings’
#
#
#
#
#
#
-o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
strings $1
fi ;;
esac
6. Utilización de bzip2 con emacs
6
6 Utilización de bzip2 con emacs
6.1 Cambio de emacs para todos:
He escrito el siguiente parche para jka-compr.el que añade bzip2 al auto-compression-mode.
Renuncia: Sólo lo he comprobado con emacs-20.2, pero no tengo ninguna razón para creer que un parche parecido
no pueda funcionar con otras versiones.
Para utilizarlo,
1. Vaya al directorio emacs-20.2/lisp (o donde lo haya desempaquetado)
2. Ponga el parche en un fichero llamado jka-compr.el.diff (en este fichero sólo debe estar el parche ;)
3. Haga
patch < jka-compr.el.diff
4. Ejecute emacs, y haga
M-x byte-compile-file jka-compr.el
5. Salga de emacs.
6. Cambie su fichero jka-compr.elc original a un lugar seguro para evitar fallos.
7. Cámbielo con el nuevo jka-compr.elc.
8. ¡D
Comentarios de: Bzip2 Como (0)
No hay comentarios