Domingo, Diciembre 17, 2017

Crea paquetes rpm y deb desde cualquier distribución Linux!

Crea paquetes rpm y deb desde cualquier distribución Linux!

 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.

Pero que mas claro que ver la presentación sobre que es realmente http://goo.gl/sWs3Z

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 rpm2cpio

Fedora

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

Manjaro/Arch Linux

sudo pacman -S ruby 
 
sudo yaourt -S ruby-fpm

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)

ar 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)

Data provided by Pastebin.com - Download Raw - See Original

fpm -s dir -t deb -p appinventor-VERSION_ARCH.deb -n appinventor -v 1.1 -m "Juan Camaney <juancamaney at gmail dot com>" --vendor "unknown" --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/

Creamos nuestro rpm (caso querramos un rpm)

Data provided by Pastebin.com - Download Raw - See Original

fpm -s dir -t rpm -p appinventor-VERSION_ARCH.rpm -n appinventor -v 1.1 -m "Juan Camaney &lt;juancamaney at gmail dot com&gt;" --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'

Algo mas claro?, nada del otro mundo veamos el wiki  cada opción de las lineas anteriores tienen su función descrita en el wiki y opciones mas avanzadas.

 

Referencias: github...jordansissel

Fuente: kuboosoft

Compártelo. ¡Gracias!

 
Grupo Digital de Ayuda! Laboratorio Linux! - Linux para todos.

¿Quién está en línea?

Hay 110 invitados y ningún miembro en línea

Contador de Visitas

9076062
Hoy Hoy 810
Ayer Ayer 995
Esta semana Esta semana 5901
Este mes Este mes 14829
Total de Visitas Total de Visitas 9076062

Día con más
visitantes

11-11-2017 : 2493

Gracias por su visita