Empaquetando en Ubuntu o como ser un MOTU. Parte 1: Comenzando

No soy desarrollador de Ubuntu, con suerte puedo compilar mis aplicaciones (rara vez, ya que prefiero los binarios). Pero el tema de empaquetamiento siempre me ha resultado interesante.

¿Cuántas veces nos hemos encontrado con una aplicación que no está en los repositorios de Ubuntu y sólo disponemos del código fuente?

Siempre pienso lo útil que sería que pudiera transformarlo en un .deb para instalarlo fácilmente. Ahí es donde entra los MOTU, personas que se encargan de mantener distintos paquetes de los repositorios Universe y Multiverse para que siempre dispongamos de sus últimas actualizaciones :).

Como me gusta aprender, estoy comenzando a leer sobre el empaquetamiento para Ubuntu y me estoy guiando por unos videos disponibles en Youtube. Hay 4 en inglés y sólo uno en español así que a medida que los vaya viendo voy a hacer una traducción libre y las iré posteando acá. Es bastante más fácil poder leer que adelantar y retroceder para leer los comandos.

La primera parte (Learning MOTU: Getting Started) está en español e inglés, así que puedo que esta primera parte no sea del todo útil. Bueno, basta de hablar y pongámonos manos a la obra…

Introducción

Primero hablaremos sobre el empaquetamiento, esto es el proceso de transformar el código fuente, sin importar el lenguage en el que esté escrito aplicando sólo una construcción y transformarlo en un paquete binario.

Lo primero que haremos será configurar nuestro entorno de desarrollo, para ello instalaremos algunos paquetes, crearemos nuestra llave GPG e instalaremos pbuilder, una herramienta para empaquetar.

Instalando paquetes

Instalaremos:

  • devscripts
  • build-essential
  • gnupg
  • pbuilder
  • dh-make

~$ sudo apt-get install debscripts build-essential gpg pbuilder dh_make fakeroot debhelper gnupg dh-make

Configurando entorno

Ahora configuraremos un par de variables que utilizaremos todo el tiempo, el nombre y dirección de correo. Para ello editaremos el fichero .bashrc de tu directorio home con cualquier editor y al final agregamos:


export DEBFULLNAME="nombre"
export DEBEMAIL="nombre@isp.com"

Guardado el archivo, cargamos el fichero para que acepte las variables:

~$ source .bashrc

La llave GPG

La idea de esto, es que podamos probar que es efectivamente nuestro trabajo y nadie lo ha alterado en el camino. Puedes leer un poco más aquí, pero en general basta con ejecutar el siguiente comando y aceptar las opciones por defecto:

~$ gpg --gen-key

Luego de preguntar por algunos datos como nombre, correo electrónico y password necesitará un poco de entropía, es decir, que tu equipo tenga actividad por lo que mientras termina configuraremos pbuilder. Un dato importante, para que tu llave sirva (y puedas utilizarla en otras cosas más adelante) es necesario que guardes

Pbuilder

La idea de esta aplicación es que cuando le digamos que vamos a compilar el código fuente se encargará de utilizar un pequeño entorno que imitará los equipos e instalará las dependencias. Las dependencias son los paquetes que son necesarios para que el paquete en cuestión pueda ser construido exitosamente. Lo primero que haremos será decirle a pbuilder para que secciones de los repositorios de Ubuntu se utilizará (en resumen, todos). Para ello con cualquier editor de texto creamos un fichero llamado .pbuilderrc con el siguiente contenido:

COMPONENTS="main restricted universe multiverse"

… y lo guardamos en nuestra carpeta home.

Ahora lo echamos a andar:

~$ sudo pbuilder create

Tomará un poco de tiempo y cuando termine estaremos listos para comenzar…

Aclaro nuevamente que no sólo estoy transcribiendo el tutorial original, no me manejo mucho en el tema y no soy para nada un MOTU.

Anuncios

6 respuestas a “Empaquetando en Ubuntu o como ser un MOTU. Parte 1: Comenzando

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s