Llermanieses : Cosas que me interesan

  Archivos
Feb 08 [1]
Oct 06 [5]
Sep 06 [2]
Ago 06 [1]
Jul 06 [1]
Jun 06 [6]
Mayo 06 [8]
Abr 06 [5]
Ago 05 [3]


Sindicación
Artículos
Comentarios


Enlaces
Linux...y otras cosas
Llermania
Llermania-gratis
Ubuntu-es
Xperimenta
ZoomBlog

 
Inicio | Mi Perfil | Suscríbete al blog
3 de Junio, 2006

 

CÓMO crear paquetes *.deb a partir de código fuente

Enlace permanente 3 de Junio, 2006, 13:36

Artículo publicado en ubuntu-es

0. Introducción

Una situación bastante común que se encuentran muchos usuarios es necesitar un programa que no esta empaquetado para su distribución favorita. Por suerte para todos, teniendo disponible el código fuente cualquiera puede compilar por si mismo los programas, aunque esto genera varios inconvenientes. Es fácil hacer un "make install" pero no todos los programas soportan "make uninstall", de modo que eliminar el paquete cuando deje de ser necesario o directamente estorbe puede ser bastante complicado.

La solución mas cómoda y eficaz en estos casos es crear paquetes deb a partir del código fuente, y utilizar la administración de paquetes para instalarlos/actualizarlos/eliminarlos cuando sea necesario. Esto suena bonito pero casi siempre parece mas complicado de lo que es, sobretodo cuando se es novato. Ahí es donde entra en juego esta pagina. Voy a explicar de forma más o menos simple, el proceso para crear paquetes de forma sencilla. Este proceso no se puede seguir al pie de la letra, tiene que ser adaptado para cada paquete en particular, pero sirve como plantilla general para la mayoría de programas, especialmente aquellos que se podrían compilar siguiendo el clásico proceso "./configure && make && make install".
Programas necesarios

1. Herramientas

Para crear nuestros paquetes, vamos a utilizar unos cuantos "ayudantes" que nos hagan el trabajo sucio, así que necesitaremos los siguientes paquetes:

* dh-make
* devscripts
* fakeroot
* build-essential

2. Debianizando

Lo primero que necesitamos es un directorio de trabajo. En este directorio acabaremos teniendo varias cosas así que es recomendable que sea un directorio vacío. Si vamos a preparar varios paquetes yo recomendaría usar un directorio para cada uno.

Una vez dentro del directorio de trabajo, descomprimimos las fuentes del programa a empaquetar, así nos quedara (casi siempre) un subdirectorio con el nombre del programa. Tenemos que comprobar que el nombre sea del tipo "nombre-versión", por ejemplo "agenda-0.0.1". Si el nombre no corresponde lo modificaremos para que no de problemas y entraremos en ese subdirectorio.

Ahora pasamos a lo importante, vamos a "debianizar" el árbol de fuentes ejecutando "dh_make -e email@proveedor". Nos preguntara que tipo de paquete queremos crear, generalmente sera "s" para programas o "l" para librerías (hay mas opciones pero esto es una guia básica, consulta los manuales para mas detalles). Se pueden añadir las opciones "-s" o "-l" detrás del email para responder directamente a esta pregunta.

Con esto, a menos que falle algo, tenemos hecha la debianización básica a falta de algunos detalles y personalizaciones y ya seria posible empaquetar el programa.

Es importante tener en cuenta que en el directorio "exterior" a las fuentes (el que esta justo por encima) se van a crear varias cosas durante el proceso que se usaran en la creación del paquete, ¡no las eliminéis!

3. Configurando

Ahora toca configurar el paquete. La configuración se hace editando varios archivos que se crearon al debianizar las fuentes. Todos esos archivos están dentro del directorio "debian".

Empezaremos por modificar la información del paquete, que se encuentra en el archivo "debian/control". Como podéis ver tiene varias partes con un formato predefinido (¡cuidado de no alterarlo!). Concretamente modificaremos las lineas "Section:" para definir la sección a la que pertenece el paquete (por ejemplo "main/x11" o "universe/web"), "Package:" si necesitamos cambiarle el nombre al paquete por algún motivo y por ultimo "Description:". La parte "Description:" tiene un formato un poco distinto, en la misma linea se puede poner una descripción corta (60 caracteres si no recuerdo mal) y debe empezar con minúsculas después de los dos puntos, la segunda parte va a continuación en una nueva linea. Esta linea y las siguientes que forman parte de la descripción deben empezar con un espacio en blanco y si queremos dejar una linea en blanco debemos poner un solo punto después del espacio obligatorio.

El siguiente archivo que modificaremos es uno de los mas importantes, porque define la forma en que se compilara y empaquetara nuestro programa. Es el archivo "debian/rules" y tiene formato de makefile. No entraremos en muchos detalles (consultar el manual para más información), pero si en lo mas practico. En la línea que comienza CFLAGS="$(CFLAGS)" ./configure .... podemos añadir todas las opciones que normalmente añadiríamos al ./configure de un programa, opciones de compilación, optimizaciones, etcetera.

Para terminar con la configuración básica nos falta modificar el archivo "debian/changelog". Podemos hacerlo a mano pero es mejor hacerlo con un programa ayudante llamado "dch" (incluido en devscripts). Es recomendable hacerlo así porque con solo ejecutarlo estando en el directorio de fuentes (no un subdirectorio) nos abrirá el changelog para modificar y nos creara una linea nueva, pero mas aun, si lo ejecutamos con el parámetro "-i" nos incrementa el numero de versión del paquete, crea una entrada nueva en el changelog y nos permite editarla. Una de las utilidades de este archivo es controlar que cambios hay de una versión a otra, pero también la propia versión del paquete. Por ejemplo, al debianizar amule-2.0.3 en el changelog nos pondrá la versión "2.0.3-1" indicando que es la primera versión del paquete, al hacer "dhc -i" pasaría a ser la "2.0.3-2". Más aun, si queremos identificar el paquete aun mejor podemos introducir algo entre el guión y el numero, por ejemplo el nombre de la distribución a la que se dirige ("2.0.3-breezy1"). Justo detrás de la versión nos encontramos con la distribución, donde podemos poner a que distribución pertenece, por ejemplo "stable", "unstable", "unreleased", ... y para finalizar la prioridad. Esta prioridad indica la importancia de las diferencias entre este paquete y la versión anterior. Así por ejemplo si el nuevo paquete solo añade alguna funcionalidad poco importante puede ser "low" (baja) mientras que si arregla algún fallo importante puede ser "high" (alta).

4. Compilando y empaquetando

Estamos terminando chicos, solo nos falta empaquetar. Para ello nos colocamos en el directorio de fuentes y ejecutamos "dpkg-buildpackage -rfakeroot" y nos sentamos a esperar con los dedos cruzados para que no falle nada. Si todo va bien debería quedarnos fuera del directorio de fuentes un lindo paquete deb listo para usar.

También nos habrán quedado varios archivos auxiliares pero la utilidad de esos archivos es otra historia algooooo

5. Agradecer a Gatoloko el curre con éste COMO, ya que él es el autor de esta ayuda que yo me he limitado a recopilar para que esté accesible para toda la comunidad de Ubuntu-es.org

--
JID: versvs@jabberes.org
http://versvs.funpic.de

~ Comentar | Referencias (0)


 

Ubuntu 6.06 listo para descargar

Enlace permanente 3 de Junio, 2006, 10:59

Ha llegado el día, hoy es posible descargar la versión final de esta distro de Linux, hace unos días solamente era posible pedir los discos y esperar tranquilo en tu domicilio entre 6 a 8 semanas hasta que llegasen, pero si eres de los que no pueden esperar (como yo, jeje) en el siguiente link puedes descargar el sabor de Ubuntu que más te guste:

Ubuntu.jpg

Actualizacion: ayer instalé esta nueva versión de Ubuntu, la instalación fue muy simple, el disco arranca como si de un LiveCD se tratase, dejandote experimentar antes de instalarlo cómo sería utilizar este sistema operativo, y con un acceso directo que tiene en el escritorio nos permitirá instalarlo, todo esto integramente en el entorno gráfico, tardó en instalarse aproximadamente 40 minutos en mi P4 2.8Ghz, 512Mb de Ram y una partición de 10Gb que tengo en el segundo disco duro (formateando, queria una instalación limpia), el sistema descargó de internet los archivos de idioma para el OpenOffice y parese ser que tambien para el sistema base.

Una vez instalado mi sistema bajé de los repositorios la versión para 686 del kernel, Blender 2.41 y el Xmms, lo cual no tomo más de 10minutos (mi conección es de 1Mb/s), y listo!, despues de un reinicio, editar un poco la configuración del Grub y cambiar la apariencia inicial del escritorio me sentía muy cómodo con mi nuevo Ubuntu, más rapido, bonito y habrá que probar la estabilidad más delante.

Algo que me dejó impresionado es que no tuve que instalar ningún controlador, ni configurar nada de hardware, me detectó la tarjeta de sonido (Sound Blaster Audigy), la aceleración 3D trabajando correctamente (Ati 9200), las particiones NTFS del WinXP montadas automáticamente… todo práctico y listo para los usuarios que no nos gusta complicarnos mucho la vida (ironicamente en windows para todo mi hardware necesite descargar los controladores más recientes para que funcionaran adecuadamente… ¿donde quedó el plug-and-play?).

Te invito a que le eches un ojo, es más rapido de windows, más estable, sin poner en riesgo tu información por virus o gusanos, fácil de usar, libre y gratuito.



Vía
~ Comentar | Referencias (0)



Blog alojado en ZoomBlog.com

 

 

<<   Junio 2006  >>
LMMiJVSD
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   

Categorías
General [6] Sindicar categoría
Curiosos [3] Sindicar categoría
Libros [2] Sindicar categoría
Linux [9] Sindicar categoría
Música [1] Sindicar categoría
Sistema [3] Sindicar categoría
Software [4] Sindicar categoría
Utilidades [4] Sindicar categoría