A veces, nos llega un fichero de paquetes en un formato, pero deseamos utilizar otro. Esto es especialmente habitual cuando se utiliza una distribución de tipo Debian y sólo se encuentran
tarball
o ficheros RPM de un paquete. Cuando le ocurra esto, puede seguir buscando un fichero de paquetes en el formato apropiado, instalar las herramientas para el formato extraño, crear un paquete a partir de un tarball
fuente utilizando las herramientas estándar de RPM o Debian o pasar de un formato de paquete a otro mediante una utilidad como alien
.
Esta sección se centra en esta última opción. El programa alien
viene con Debian y algunas otras distribuciones, pero puede que no esté instalado por defecto. Si no está instalado en su sistema, instálelo escribiendo apt-get install alien
en un sistema que utilice APT o utilice RPM Find o el sitio web de paquetes Debian para localizarlo. Este programa puede cambiar de un formato a otro paquetes RPM, paquetes Debian, paquetes Stampede (los empleados por Stamjpede Linux) y tarball
.
Debe tener presente ciertas peculiaridades. Lo primero: alien
requiere que tenga instalado el software apropiado de administración de paquetes (por ejemplo tanto RPM como Debian para poder convertir entre ambos formatos). La utilidad alien
no siempre convierte toda la información de las dependencias de manera totalmente correcta. Cuando convierte desde un tarball
, alien
copia los ficheros directamente tal como estaban en el tarball
, por lo que alien
sólo trabajará si el tarball original tiene ficheros que se deben instalar fuera del directorio raíz (/
) del sistema.
NOTA: Aunque alien requiere que esten instalados los sistemas de paquetes tanto de RPM como de Debian para convertir de uno a otro de estos formatos, alien no utiliza las características de la base de datos de estos paquetes a menos que se emplee la opción --install . La presencia de un administrador de paquetes extraño no es un problema mientras que no lo emplee para instalar software que podría duplicar o entrar en conflicto con el software instalado por su administrador de paquetes primario. |
La sintaxis básica de alien es la siguiente:
alien [opciones] fichero[...]
Las opciones más importantes son --to-deb
, --to-rpm
, --to-slp
y --to-tgz
, que convierten a los formatos Debian, RPM, Stanpede y tarball, respectivamente (si omite el formato de destino, alien
asume que desea un paquete Debian). La opción --install
instala el paquete convertido y elimina el fichero convertido. encontrará opciones adicionales en la página man
de alien
.
Por ejemplo, supongamos que dispone de un paquete Debian llamado someprogram-1-2-3-4_i386.deb
y desea crear un RPM para dicho paquete. Puede ejecutar el siguiente formato para crear un RPM llamado someprogram-1.2.3-5.i386.rpm
:
# alien --to-rpm someprogram-1.2.3-4_i386.deb
Si utiliza un sistema de tipo Debian y desea instalar un tarball pero mantener un registro de los ficheros que contiene en su base de datos de paquetes Debian, lo puede hacer con el siguiente comando:
# alien --install binary-tarball.tar.gz
Es importante que recuerde que, al convertir un tarball
, convierte los ficheros de la estructura de directorios del tarball
original utilizando como base de directorio raíz del sistema. Por tanto, puede que necesite desempaquetar el tarball
, hacer algunos malabarismos con los ficheros y volver a empaquetarlos para obtener los resultados deseados antes de instalar el tarball
con alien
. Por ejemplo, supongamos que tiene un tarball
binario que crea un directorio llamado program-files, que contiene directorios bin
, man
y lib
. La idea podría ser desempaquetar el tarball
en /usr
o usr/local
y crear enlaces para los ficheros críticos. Para convertir este tarball
en un RPM, puede ejecutar los siguientes comandos:
# tar xvfz program.tar.gz
# mv program-files usr
# tar cvfz program.tgz usr
# rm -r usr
# alien --to-rpm program.tgz
Al renombrar el directorio program-files
como usr
y crear un nuevo tarball
, ha creado un tarball
que, al pasar al formato RPM, tendrá los ficheros en las ubicaciones que desea (usr/bin
, usr/man
y /usr/lib
). Puede que necesite realizar modificaciones más amplias, dependiendo del contenido del tarball original.