Crea paquetes rpm y deb desde cualquier distro

  • Categoría: Linux
  • Publicado hace más de 1 año


La creación de paquetes o empaquetado puede ser fácil y divertido...

Una de las desventajas  de usar alguna distribución es la carencia de paquetes, en estos casos lo mediato es que nos pongamos a compilar el codigo fuente del programa en question, algo no practico y sencillo para alguien que inicia en Linux, y otros factores que imposibiliten su compilación en la distribución destino.  Para solventar estas carencias tenemos fpm Gestión de paquetes Effing!  quien construye paquetes para múltiples plataformas (deb, rpm, etc) con gran facilidad y cordura.

2 ejemplos donde usted podría usar fpm

Ejemplo 1

Yo tenia un paquete que cree en rpm en Fedora, y quería instalarselo a una amiga en su Ubuntu, muchos dirían "usa alien" Alien no siempre hará las cosas bien, en Alien usted no puede crear un paquete digamos si tiene un pc de 64 bits (x86_64)  a  32 bits (i386), aunque lo force. 

Ejemplo 2

Encontré un programa que no existe en mi distribucion, y no se absolutamente nada sobre empaquetamiento o simplemente no tengo el tiempo para crear el paquete de forma normal.
 

Si usted se indentifica con cualquiera de los dos ejemplos, la solucion es muy sencilla.

¿Cómo instalo fpm?


Instalamos dependencias

Ubuntu

sudo apt-get -y install ruby-dev rpm rpm2cpio

Fedora

su -c 'yum -y install ruby-devel binutils dpkg-devel'

Manjaro/Arch Linux 
sudo pacman -S ruby
sudo yaourt -S ruby-fpm rpm2cpio rpm-org


Instalamos fpm

gem install fpm

USO

Tengo un rpm o deb 

Desde una terminal

mkdir /tmp/installdir

cd  /tmp/installdir

Extraemos nuestro rpm (caso sea .rpm) 

Formato 

rpm2cpio /path/to/file.rpm | cpio -i --make-directories
Suponiendo que tengo un rpm de App Inventor, appinventor-1.1-1.fc20.x86_64.rpm en mi directorio personal (HOME)

rpm2cpio $HOME/appinventor-1.1-1.fc20.x86_64.rpm | cpio -i --make-directories  
Extraemos nuestro deb (caso sea .deb) 
tar vx $HOME/appinventor-1.1_amd64.deb 

tar -xzvf data.tar.gz && rm -f control.tar.gz data.tar.gz debian-binary


Creamos nuestro deb (caso querramos un deb)

fpm -s dir -t rpm -p appinventor-VERSION_ARCH.rpm -n appinventor -v 1.1 -m "Juan Camaney <juancamaney at gmail dot com>" --license "MIT" --url http://appinventor.mit.edu --description "App Inventor for Android is an open-source web application originally provided by Google, and now maintained by the Massachusetts Institute of Technology (MIT)." -d 'java >= 6' -C /tmp/installdir usr/google/appinventor/

Explicación
Simplemente usted deberá cambiar los datos anteriores dependiendo su nombre, email, nombre del programa, versión, descripción del programa, etc. siempre respetando todas las comillas,  y guiones. 

La ruta al final "usr/google/appinventor/" debe ser cambiada dependiendo la estructura del paquete extraida  en la ruta /tmp/installdir; si se observa el "usr" no inicia con "/" todas las rutas finales que incluyas deberán ir de esa manera.

Podemos crear también nuestro rpm o deb con las lineas de fpm anteriores,  compilando código fuente siempre y cuando, creando como ruta de instalacion en "/tmp/installdir"  no olvidando incluir toda dependencia para que corra el programa que por lo general seria la opcion -d

Ejemplos
-d 'java'

-d 'java >= 6'

-d 'java = 6'
Crea paquetes rpm y deb desde cualquier distro
15 Puntos Score: 5/10
Visitas: 522 Favoritos: 2
Ver los usuarios que votaron...
2 Comentarios Crea paquetes rpm y deb desde cualquier distro
Cita char4n: Mostrar
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!