Bzip2 COMO
 David Fetter, [email protected]
 Traducido por: Joaqu�n Cuenca Abela, [email protected]
 inf.uv.es
 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

 El texto original (en sgml) se encuentra
 http://www.best.com/~dfetter/Bzip2-HOWTO/Bzip2-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.

 Este documento le llevar� a trav�s de unas cuantas aplicaciones para
 bzip2.

 Los franco-hablantes tienen el documento traducido por Arnaud Launay.
 La versi�n web est� en
 http://www.freenix.fr/linux/HOWTO/mini/Bzip2.html, y para recoger por
 ftp ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/mini/Bzip2.gz.
 Puede contactar con Arnaud por correo electr�nico [email protected].
 Aquellos que hablen Japon�s pueden utilizar la versi�n Japonesa, de la
 mano de Tetsu Isaji, http://jf.gee.kyoto-u.ac.jp/JF/JF.html. La p�gina
 de Isaji est� en http://www2s.biglobe.ne.jp/~kaien/, y su direcci�n de
 correo electr�nico es [email protected].

 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. El
 fichero compilado para intel de Red Hat es
 ftp://ftp.redhat.com/pub/contrib/i386/bzip2-0.1pl2-1.i386.rpm.  El de
 Debian est� ftp://ftp.debian.org/debian/hamm/hamm/binary-
 i386/utils/bzip2_0.1pl2-4.deb, y la de Slackware est� en
 http://www.cdrom.com/pub/linux/slackware-3.4/slakware/a9/bzip2.tgz.

 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 ``Obtenci�n de
 bzip2'' para obtener una lista de las direcciones). Red Hat tiene el
 c�digo en
 ftp://ftp.redhat.com/pub/contrib/SRPMS/bzip2-0.1pl2-1.src.rpm.

 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

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

 Y aqu� est� el parche :)

 *** tar.c.orig  Sat Apr 26 05:09:49 1997
 --- tar.c       Feb  2 00:50:47 1998
 ***************
 *** 16,21 ****
 --- 16,24 ----
      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                at list/extract time, a globbing PATTERN\n\
     -o, --old-archive, --portability   write a V7 format archive\n\
         --posix                        write a POSIX conformant archive\n\
 +   -y, --bzip2, --bunzip2             filter the archive through bzip2\n\
     -z, --gzip, --ungzip               filter the archive through gzip\n\
     -Z, --compress, --uncompress       filter the archive through compress\n\
         --use-compress-program=PROG    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)
 ***************
 *** 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 ;;
      #  *) FILE=`file -L $1` ; # Check to see if binary, if so -- view with 'strings'
      #    FILE1=`echo $FILE | cut -d ' ' -f 2`
      #    FILE2=`echo $FILE | cut -d ' ' -f 3`
      #    if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
      #         -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
      #      strings $1
      #    fi ;;
        esac

 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. �Divi�rtase!

 --- jka-compr.el        Sat Jul 26 17:02:39 1997
 +++ jka-compr.el.new    Thu Feb  5 17:44:35 1998
 @@ -44,7 +44,7 @@
  ;; The variable, jka-compr-compression-info-list can be used to
  ;; customize jka-compr to work with other compression programs.
  ;; The default value of this variable allows jka-compr to work with
 -;; Unix compress and gzip.
 +;; Unix compress and gzip.  David Fetter added bzip2 support :)
  ;;
  ;; If you are concerned about the stderr output of gzip and other
  ;; compression/decompression programs showing up in your buffers, you
 @@ -121,7 +121,9 @@

  ;;; I have this defined so that .Z files are assumed to be in unix
 -;;; compress format; and .gz files, in gzip format.
 +;;; compress format; and .gz files, in gzip format, and .bz2 files,
 +;;; in the snappy new bzip2 format from http://www.muraroa.demon.co.uk.
 +;;; Keep up the good work, people!
  (defcustom jka-compr-compression-info-list
    ;;[regexp
    ;; compr-message  compr-prog  compr-args
 @@ -131,6 +133,10 @@
       "compressing"    "compress"     ("-c")
       "uncompressing"  "uncompress"   ("-c")
       nil t]
 +    ["\\.bz2\\'"
 +     "bzip2ing"        "bzip2"         ("")
 +     "bunzip2ing"      "bzip2"         ("-d")
 +     nil t]
      ["\\.tgz\\'"
       "zipping"        "gzip"         ("-c" "-q")
       "unzipping"      "gzip"         ("-c" "-q" "-d")

 6.2.  Cambiar emacs para uno mismo:

 Este truco se lo tengo que agradecer a Ulrick Dickow, [email protected],
 programador de sistemas en Kampsax Technology:

 Para hacer que se pueda utilizar bzip2 autom�ticamente cuando no es el
 administrador del sistema, s�lo tiene que a�adir lo siguiente al
 fichero .emacs:

 ;; Automatic (un)compression on loading/saving files (gzip(1) and similar)
 ;; We start it in the off state, so that bzip2(1) support can be added.
 ;; Code thrown together by Ulrik Dickow for ~/.emacs with Emacs 19.34.
 ;; Should work with many older and newer Emacsen too.  No warranty though.
 ;;
 (if (fboundp 'auto-compression-mode) ; Emacs 19.30+
     (auto-compression-mode 0)
   (require 'jka-compr)
   (toggle-auto-compression 0))
 ;; Now add bzip2 support and turn auto compression back on.
 (add-to-list 'jka-compr-compression-info-list
              ["\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'"
               "zipping"        "bzip2"         ()
               "unzipping"      "bzip2"         ("-d")
               nil t])
 (toggle-auto-compression 1 t)

 7.  Utilizaci�n de bzip2 con wu-ftpd

 Gracias a Arnaud Launay por su truco para ahorrar ancho de banda. Lo
 siguiente deber�a ir en /etc/ftpconversions para compresiones y
 descompresiones al vuelo con bzip2. Aseg�rese de que las direcciones
 (como /bin/compress) son correctas.

       :.Z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
       :   : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
       :.gz: :  :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
       :   : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
       :.bz2: :  :/bin/bzip2 -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:BUNZIP2
       :   : :.bz2:/bin/bzip2 -9 -c %s:T_REG:O_COMPRESS:BZIP2
       :   : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
       :   : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
       :   : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
       :   : :.tar.bz2:/bin/tar -c -I -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+BZIP2

 8.  Utilizaci�n de bzip2 con Netscape en XWindows

 [email protected] dijo:

 He encontrado una forma de hacer que Netscape (en Linux) utilice bzip2
 en Content-Encoding como si estuviese utilizando gzip. A�ada �sto a
 $HOME/.Xdefaults o $HOME/.Xresources

 Yo utilizo la opci�n -s porque prefiero cambiar algo de velocidad en
 la descompresi�n por memoria RAM. Puede quitar la opci�n si lo
 prefiere.

 Netscape*encodingFilters:      \
         x-compress :  : .Z     : uncompress -c  \n\
         compress   :  : .Z     : uncompress -c  \n\
         x-gzip     :  : .z,.gz : gzip -cdq      \n\
         gzip       :  : .z,.gz : gzip -cdq      \n\
         x-bzip2    :  : .bz2   : bzip2 -ds \n

 9.  Utilizaci�n de bzip2 con xv

 Estoy trabajando en un parche que debe hacer que xv auto-descomprima
 los ficheros .bzip2 tal y como lo hace con los ficheros comprimidos
 mediante gzip o compress. �Quiere ayudarme alguien?

 10.  Anexo: El INSFLUG

 El INSFLUG forma parte del grupo internacional Linux Documentation
 Project, encarg�ndose de las traducciones al castellano de los Howtos
 (Comos), as� como la producci�n de documentos originales en aquellos
 casos en los que no existe an�logo en ingl�s.

 En el INSFLUG se orienta preferentemente a la traducci�n de documentos
 breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
 :) ), etc.

 Dir�jase a la sede del INSFLUG para m�s informaci�n al respecto.

 En la sede del INSFLUG encontrar� siempre las �ltimas versiones de las
 traducciones:  www.insflug.org. Aseg�rese de comprobar cu�l es la
 �ltima versi�n disponible en el Insflug antes de bajar un documento de
 un servidor r�plica.

 Se proporciona tambi�n una lista de los servidores r�plica (mirror)
 del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
 recursos en castellano.

 Francisco Jos� Montilla, [email protected].