Alien

De doc.ubuntu-es
(Diferencias entre revisiones)
Saltar a: navegación, buscar
Línea 141: Línea 141:
  
 
* '''file [...]''': Paquete o lista de archivos de paquetes para convertir. En realidad no es una opción, ya que se trata de los nombres de los paquetes a convertir sin más (como se ha visto en el apartado de Guía de Uso Rápido).
 
* '''file [...]''': Paquete o lista de archivos de paquetes para convertir. En realidad no es una opción, ya que se trata de los nombres de los paquetes a convertir sin más (como se ha visto en el apartado de Guía de Uso Rápido).
 +
  
 
* '''-d, --to-deb''': Cualquiera de las dos formas vale. Esta opción crea un paquete .deb (Debian) a partir de otro tipo de paquete binario. Esta opción es la opción por defecto, asi que la podemos obviar si lo deseamos.
 
* '''-d, --to-deb''': Cualquiera de las dos formas vale. Esta opción crea un paquete .deb (Debian) a partir de otro tipo de paquete binario. Esta opción es la opción por defecto, asi que la podemos obviar si lo deseamos.
 +
  
 
* '''-r, --to-rpm''': Cualquiera de las dos formas vale. Esta opción crea un paquete .rpm (RedHat) a partir de otro tipo de paquete binario.  
 
* '''-r, --to-rpm''': Cualquiera de las dos formas vale. Esta opción crea un paquete .rpm (RedHat) a partir de otro tipo de paquete binario.  
 +
  
 
* '''-t, --to-tgz''': Cualquiera de las dos formas vale. Esta opción crea un paquete .tgz (Slackware) a partir de otro tipo de paquete binario.  
 
* '''-t, --to-tgz''': Cualquiera de las dos formas vale. Esta opción crea un paquete .tgz (Slackware) a partir de otro tipo de paquete binario.  
 +
  
 
* '''--to-slp''': Esta opción crea un paquete .slp (Stampede) a partir de otro tipo de paquete binario.  
 
* '''--to-slp''': Esta opción crea un paquete .slp (Stampede) a partir de otro tipo de paquete binario.  
 +
  
 
* '''-p, --to-pkg''': Cualquiera de las dos formas vale. Esta opción crea un paquete .pkg (Solaris) a partir de otro tipo de paquete binario.  
 
* '''-p, --to-pkg''': Cualquiera de las dos formas vale. Esta opción crea un paquete .pkg (Solaris) a partir de otro tipo de paquete binario.  
 +
  
 
* '''-i, --install''': Automaticamente instalar cada paquete generado por la transformación y seguidamente eliminarlo una vez instalado.
 
* '''-i, --install''': Automaticamente instalar cada paquete generado por la transformación y seguidamente eliminarlo una vez instalado.
 +
  
 
* '''-g, --generate''': Crea un directorio temporal adecuado para ser empleado como base para construir un paquete binario, pero que se queda ahi y de hecho no crea dicho paquete. Esto es útil para usuarios avanzados que quieran quieres trabajar con los archivos, moverlos o adaptarlos antes de construir el paquete binario definitivo. Este paquete definitivo puede ser construido a partir del directorio temporal empleando:
 
* '''-g, --generate''': Crea un directorio temporal adecuado para ser empleado como base para construir un paquete binario, pero que se queda ahi y de hecho no crea dicho paquete. Esto es útil para usuarios avanzados que quieran quieres trabajar con los archivos, moverlos o adaptarlos antes de construir el paquete binario definitivo. Este paquete definitivo puede ser construido a partir del directorio temporal empleando:
Línea 158: Línea 165:
 
:* ''"rpmbuild -bb <packagename>.spec"'': Para crear un paquete RedHat (.rpm)
 
:* ''"rpmbuild -bb <packagename>.spec"'': Para crear un paquete RedHat (.rpm)
  
:* '''-s, --single''': Opción similar a "--generate", pero que no genera el directorio ''nombredepaquete.orig''. Esto es útil sólo si nos encontramos con un problema de muy poco espacio en disco y que además estamos generando un paquete Debian.
+
 
 +
* '''-s, --single''': Opción similar a "--generate", pero que no genera el directorio ''nombredepaquete.orig''. Esto es útil sólo si nos encontramos con un problema de muy poco espacio en disco y que además estamos generando un paquete Debian.
  
 
       --patch=patch
 
       --patch=patch

Revisión de 20:58 23 dic 2007

Clip.png Este artículo se halla en proceso de traducción-completado. En breve será finalizado.

Alien es un script en Perl que nos permite convertir entre diferentes formatos de paquetes binarios de GNU/Linux, pudiendo pasar entre sí cualquiera de estos formatos:

  • .rpm (RedHat)
  • .deb (Debian)
  • .slp (Stampede)
  • .tgz (Slackware)
  • .pkg (Solaris)

Usando alien podemos por tanto, convertir por ejemplo paquetes precompilados de debian (debian, esware, etc…) a .rpm’s (Red Hat, Conectiva, Mandrake, SuSE,…), o paquetes .rpm a .tgz (muy sencillos de descomprimir), de una forma sencilla, rápida y muy cómoda. También soporta paquetes LSB.


Clip.png Hay que indicar que en la conversión existe una posibilidad de que se puedan perder dependencias, scripts u otras características de los paquetes originales que no se conservarían en el nuevo formato de paquete destino, por lo que el uso de alien esta recomendado si no hay otra opción. Esto es cuando no se disponga del programa que busquemos en el formato de paquetería de nuestra distribución (en el caso de Ubuntu, un .deb).


Contenido

Precauciones a tener en cuenta en el uso de Alien

Alien no debería ser empleado para sustituir paquetes de sistema importantes como init, libc u otros que sean esenciales para el funcionamiento de nuestro sistema. Muchos de estos paquetes están configurados de forma distinta por las diferentes distribuciones existentes y no son intercambiables.

En general, si no podemos desinstalar/eliminar un paquete determinado de nuestro sistema sin romper la estabilidad del mismo, no debemos intentar cambiarlo con una versión convertida a través de alien.


Instalación de Alien

Podemos instalar Alien a través de terminal (apt-get o aptitude) o del gestor de paquetes Synaptic de Ubuntu o Adept de Kubuntu. De este modo no tendremos que preocuparnos por dependencias.

Para instalarlo desde uno de los gestores de paquetes gráficos (Synaptic o Adept), sólo hay que buscar el paquete e indicarle "instalar".

Para instalarlo a través de un terminal podemos hacerlo mediante apt-get:

sudo apt-get install alien

o mediante aptitude:

sudo aptitude install alien


Notas sobre el Formato de Paquetes (nivel avanzado)

En cuanto al formato de paquetes, para aquellos que quieran saber más de las interioridades (librerías, requisitos, dependencias,...) de este script, podemos añadir lo siguiente. Para un usuario estándar esta información no es precisa, ya que instalando por cualquiera de los métodos mencionados anteriormente ya queda alien perfectamente funcional.


Paquetes RPM

Para convertir a .rpm o desde .rpm a otro formato será imprescindible instalar el Gestor de Paquetes RedHat.


Paquetes LSB

Unlike the other package formats, alien can handle the depenenden‐

          cies of lsb packages if the destination package format supports
          dependencies. Note that this means that the package generated from
          a lsb package will depend on a package named "lsb" -- your distri‐
          bution should provide a package by that name, if it is lsb compli‐
          ant. The scripts in the lsb package will be converted by default as
          well.
          To generate lsb packages, the Red Hat Package Manager must be
          installed, and alien will use by preference a program named
          lsb-rpm, if it exists.  No guarantees are made that the generated
          lsb packages will be fully LSB compliant, and it’s rather unlikely
          they will unless you build them in the lsbdev environment.
          Note that unlike other package formats, converting an LSB package
          to another format will not cause its minor version number to be
          changed.


Paquetes DEB

For converting to (but not from) deb format, the gcc, make, deb‐

          helper, dpkg-dev, and dpkg packages must be installed.


Paquetes TGZ

tgz Note that when converting from the tgz format, alien will simply

          generate an output package that has the same files in it as are in
          the tgz file. This only works well if the tgz file has precompiled
          binaries in it in a standard linux directory tree. Do NOT run alien
          on tar files with source code in them, unless you want this source
          code to be installed in your root directory when you install the
          package!


Paquetes PKG

      pkg To manipulate packages in the Solaris pkg format (which is really
          the SV datastream package format), you will need the Solaris
          pkginfo and pkgtrans tools.


Guía de Uso Rápido (para impacientes)

El uso que le vamos a dar a Alien va a ser principalmente para:

  • Convertir un Paquete propio de otra Distribución a otro Formato
  • Convertir e Instalar un Paquete propio de otra Distribución en nuestra Distribución


Convertir un Paquete propio de otra Distribución a otro Formato

En este caso no queremos instalarlo, si no sólo convertirlo para ponerlo a disposición de la comunidad o por otros motivos. Para ello debemos usar una de las siguientes opciones:

alien --to-deb package.rpm  ----> Convertimos el paquete "package.rpm" a formato deb en el paquete "package.deb"
alien --to-rpm package.deb  ----> Convertimos el paquete "package.deb" a formato rpm en el paquete "package.rpm"

Incluso podemos hacer conversiones múltiples:

alien --to-deb --to-rpm --to-tgz --to-slp foo.deb bar.rpm baz.tgz  

En este caso creamos 9 paquetes nuevos. Cuando finaliza el proceso, foo.deb, bar.rpm y baz.tgz estarán disponibles en los 4 formatos de paquete: .deb, .rpm, .tgz y .slp.


Convertir e Instalar un Paquete propio de otra Distribución en nuestra Distribución

Para hacer esto podemos convertir primero el paquete al formato binario que deseemos y luego instalarlo con el gestor de paquetes binarios propios de nuestra distribución. En Ubuntu sería un paquete .deb que instalaríamos a través de terminal con dpkg o gráficamente con Gdebi.

Si por el contrario queremos convertir el paquete e instalarlo directamente, tendríamos que abrir una terminal y escribir:

alien -i package.rpm

Este comando convertirá a package.rpm a package.deb (en el caso de Ubuntu el propio alien ya detecta que se ha de hacer una conversión a .deb, por lo que no es preciso especificar la opción "--to-deb". En otra distribución haría la propio) e instalará el paquete generado directamete.

Clip.png
  • Nótese que cuando hacemos una conversión, en ningún caso se elimina el paquete original, si no que se crea un paquete nuevo en el formato que deseamos. A pesar de ello, si instalamos directamente (usamos la opción -install), el paquete generado sí es eliminado.
  • A pesar de que se pueden usar ambos sistemas para instalar paquetes binarios propios de otras distribuciones, es más recomedable emplear el primer método de hacer primero una conversión y luego instalar el paquete convertido a través de un gestor de paquetes binarios como Gdebi, ya que si surge cualquier problema, tendremos más control sobre lo que vaya ocurriendo. Siempre será mejor trabajar paso a paso.


Listado de Opciones de Alien

Las opciones son lo que dan funcionalidad y potencia al script. A pesar de ello, si no ponemos opciones, Alien convertirá de forma predeterminada cualquier paquete que le presentemos a formato .deb.

En caso de usar opciones, el formato de uso será:

alien [options] file [...]

Las opciones posibles son:

  • file [...]: Paquete o lista de archivos de paquetes para convertir. En realidad no es una opción, ya que se trata de los nombres de los paquetes a convertir sin más (como se ha visto en el apartado de Guía de Uso Rápido).


  • -d, --to-deb: Cualquiera de las dos formas vale. Esta opción crea un paquete .deb (Debian) a partir de otro tipo de paquete binario. Esta opción es la opción por defecto, asi que la podemos obviar si lo deseamos.


  • -r, --to-rpm: Cualquiera de las dos formas vale. Esta opción crea un paquete .rpm (RedHat) a partir de otro tipo de paquete binario.


  • -t, --to-tgz: Cualquiera de las dos formas vale. Esta opción crea un paquete .tgz (Slackware) a partir de otro tipo de paquete binario.


  • --to-slp: Esta opción crea un paquete .slp (Stampede) a partir de otro tipo de paquete binario.


  • -p, --to-pkg: Cualquiera de las dos formas vale. Esta opción crea un paquete .pkg (Solaris) a partir de otro tipo de paquete binario.


  • -i, --install: Automaticamente instalar cada paquete generado por la transformación y seguidamente eliminarlo una vez instalado.


  • -g, --generate: Crea un directorio temporal adecuado para ser empleado como base para construir un paquete binario, pero que se queda ahi y de hecho no crea dicho paquete. Esto es útil para usuarios avanzados que quieran quieres trabajar con los archivos, moverlos o adaptarlos antes de construir el paquete binario definitivo. Este paquete definitivo puede ser construido a partir del directorio temporal empleando:
  • "debian/rules binary": Para crear un paquete Debian (.deb)
  • "rpmbuild -bb <packagename>.spec": Para crear un paquete RedHat (.rpm)


  • -s, --single: Opción similar a "--generate", pero que no genera el directorio nombredepaquete.orig. Esto es útil sólo si nos encontramos con un problema de muy poco espacio en disco y que además estamos generando un paquete Debian.
      --patch=patch
          Specify the patch to be used instead of automatically looking the
          patch up in /var/lib/alien. This has no effect unless a debian
          package is being built.
      --anypatch
          Be less strict about which patch file is used, perhaps attempting
          to use a patch file for an older verson of the package. This is not
          guaranteed to always work; older patches may necessarily not work
          with newer packages.
      --nopatch
          Do not use any patch files.
      --description=desc
          Specifiy a description for the package. This only has an effect
          when converting from the tgz package format, which lacks descrip‐
          tions.
      --version=version
          Specifiy a version for the package. This only has an effect when
          converting from the tgz package format, which may lack version
          information.
          Note that without an argument, this displays the version of alien
          instead.
      -c, --scripts
          Try to convert the scripts that are meant to be run when the pack‐
          age is installed and removed. Use this with caution, becuase these
          scripts might be designed to work on a system unlike your own, and
          could cause problems. It is recommended that you examine the
          scripts by hand and check to see what they do before using this
          option.
          This is enabled by default when converting from lsb packages.
      -T, --test
          Test the generated packages. Currently this is only supported for
          debian packages, which, if lintian is installed, will be tested
          with lintian and lintian’s output displayed.
      -k, --keep-version
          By default, alien adds one to the minor version number of each
          package it converts. If this option is given, alien will not do
          this.
      --bump=number
          Instead of incrementing the version number of the converted package
          by 1, increment it by the given number.
      --fixperms
          Sanitize all file owners and permissions when building a deb. This
          may be useful if the original package is a mess. On the other hand,
          it may break some things to mess with their permissions and owners
          to the degree this does, so it defaults to off. This can only be
          used when converting to debian packages.
      -v, --verbose
          Be verbose: Display each command alien runs in the process of con‐
          verting a package.
      --veryverbose
          Be verbose as with --verbose, but also display the output of each
          command run. Some commands may generate a lot of output.
      -h, --help
          Display a short usage summary.
      -V, --version
          Display the version of alien.

EXAMPLES

      Here are some examples of the use of alien:
      alien --to-deb package.rpm
          Convert the package.rpm into a package.deb
      alien --to-rpm package.deb
          Convert the package.deb into a package.rpm
      alien -i package.rpm
          Convert the package.rpm into a package.deb (converting to a .deb
          package is default, so you need not specify --to-deb), and install
          the generated package.
      alien --to-deb --to-rpm --to-tgz --to-slp foo.deb bar.rpm baz.tgz
          Creates 9 new packages. When it is done, foo bar and baz are avail‐
          able in all 4 package formats.

ENVIRONMENT

      alien recognizes the following environemnt variables:
      RPMBUILDOPTS
          Options to pass to rpm when it is building a package.
      RPMINSTALLOPT
          Options to pass to rpm when it is installing a package.
      EMAIL
          If set, alien assumes this is your email address. Email addresses
          are included in generated debian packages.

NOTES

      When using alien to convert a tgz package, all files in /etc in are
      assumed to be configuration files.
      If alien is not run as root, the files in the generated package will
      have incorrect owners and permissions.

AUTHOR

      alien was written by Christoph Lameter, <clameter@debian.org>.
      deb to rpm conversion code was taken from the martian program by Ran‐
      dolph Chung, <tausq@debian.org>.
      The Solaris pkg code was written by Mark A. Hershberger <mah@everyâ€â€
      body.org>.
      alien has been extensively rewritten (3 times) and is now maintained by
      Joey Hess, <joeyh@debian.org>.

COPYRIGHT

      alien may be copied and modified under the terms of the GNU General
      Public License.


perl v5.8.8 2006-12-20 ALIEN(1p)


Fuentes

Herramientas personales