[Jderobot-dev] Crear paquetes debian

Mikel Gonzalez Baile m.gonzalezbai en gmail.com
Mie Dic 19 21:51:19 CET 2012


Buenas gente,

ya he conseguido crear los paquetes para gearbox, opencv y jderobot-5.1
para un sistema Ubuntu 12.04. Sin embargo, tengo una duda acerca de cómo
gestionar las dependencias externas de cada uno de ellos. Pongo un ejemplo
absurdo, para tratar de explicar la duda:

imaginemos que mi paquete gearbox necesita que el paquete
"build-essentials" esté instalado en el sistema. Tal y como comentó Edu el
usuario no debería instalar estas dependencias manualmente, por lo tanto
entiendo que la instalación del paquete gearbox debería, de forma
automática, instalar aquellos paquetes de los que depende si éstos no están
ya instalados en el sistema.

Echando un ojo al directorio "debian" que se genera tras lanzar "dh_make
--createorig" existe un fichero llamado "control" donde se pueden definir
las dependencias que ese paquete necesita para poder instalarse, sin
embargo, o algo estoy haciendo mal o me parece que definiendo ahí esas
dependencias externas, éstas no se instalan de forma autómatica, sino que
informan al usuario de si alguna de ellas no está satisfecha.

Mi pregunta por lo tanto es, ¿dónde o cómo se define la instalación previa
de estas dependencias externas al paquete que queremos instalar?. Me
imagino que existe la posibilidad de realizar esto, puesto que cuando
instalo algún paquete en ocasiones salta un mensaje que dice algo así
como... "las siguientes dependencias se instalarán junto con el paquete,
¿desea continuar?.

Un saludo!!!

Maikel.


2012/11/29 Eduardo Perdices <eperdices en gsyc.es>

>  Sí, pero no hace falta subirlos antes, los puedes subir a la vez que
> subas el de jderobot.
>
> Saludos.
>
> El 29/11/12 19:38, Mikel Gonzalez Baile escribió:
>
> Buenas Edu,
>
>  tengo una pequeña duda acerca del fichero que me comentaste en el
> anterior mensaje (http://svn.jderobot.org/jderobot/trunk/debian/control).
>
>  En las dependencias, se encuentran los siguientes paquetes:
>
>  libode-jderobot-dev, gearbox-jderobot-dev, gazebo-jderobot-dev,
> player-jderobot-dev, stage-jderobot-dev
>
>  los cuales, por el nombre, me da la sensación de que son paquetes
> también creados por ti, verdad? o bueno, que no son los que uno se descarga
> desde el repositorio oficial de gearbox, gazebo, ode, etc, etc.
>
>  Entiendo que por lo tanto sería necesario crear éstos previamente,
> subirlos al repositorio de jderobot donde se almacenan los paquetes, y
> luego ya añadirlos como dependencias al propio paquete de JDErobot, no?
>
>  Un saludo y gracias.
>
>  Mikel.
>
>
> 2012/11/28 Eduardo Perdices <eperdices en gsyc.es>
>
>>  Hola,
>>
>> tenéis el ejemplo completo en la carpeta debian dentro del svn de
>> jderobot. Concretamente lo de las dependencias se puede ver aquí:
>>
>> http://svn.jderobot.org/jderobot/trunk/debian/control
>>
>> Saludos.
>>
>> El 28/11/12 09:12, Oscar Garcia escribió:
>>
>> El 27/11/2012 22:16, Mikel Gonzalez Baile escribió:
>>
>>  Hola Óscar, estoy empezando a crear mis primeros paquetes con dpkg,
>> había leído sobre checkinstall pero creo que dpkg es más completo
>> (corrígeme si me equivoco), y de momento estoy probando con cosas
>> sencillas, agregando poco a poco más complejidad (cabeceras,
>> librerías, dependencias...) y adaptándolo al CMake, que es la
>> herramienta que utiliza JDErobot.
>>
>>  Siento haberte confundido. En ningún momento se puede comparar
>> checkinstall con dpkg.
>>
>> Checkinstall realiza la misma función que debhelper, por lo que no se
>> puede comparar ni dpkg con checkinstall ni dpkg con debhelper, pero sí
>> que se pueden comparar debhelper con checkinstall y debhelper es la
>> solución más elegante (e integrada con cmake, según me ha parecido leer
>> por encima en la documentación).
>>
>> Gracias Eduardo, hasta ahora había checkinstall por su sencillez de uso
>> (creación de un deb en un único comando). Gracias a tu guía rápida estoy
>> tratando de reconstruir los paquetes que ya he creado con anterioridad
>> con dh_make, incluyendo algunos parámetros adicionales como la licencia
>> (con -c gpl o -c lgpl, etc).
>>
>>
>>
>>  Lo que sí tengo dudas, es en cómo hacer que si por ejemplo tu paquete
>> necesita de otros para su instalación, instalar todos éstos
>> previamente de forma automática, pero bueno, iré investigando y
>> comentando por aquí.
>>
>>  Según me ha parecido ver en la plantilla generada por dh_make
>> posteriormente se usará dh_makeshlibs para generar la sustitución de
>> ${shlibs:Depends} obteniendo las librerías compartidas que requieren los
>> archivos generados. No sé cómo se agregarán manualmente dependencias (si
>> hay algún archivo/plantilla para agregarlo sin tener que hacerlo a mano
>> en control), pero yo cuando usaba checkinstall lo que hacía era poner el
>> nombre del paquete (o paquetes separados por comas) y, si es necesario,
>> la versión mínima entre paréntesis.
>>
>> Te pongo en una única línea dos ejemplos:
>>
>> Depends: apache2, libc6 (>= 2.1)
>>
>> Depende de tener instalado un paquete llamado "apache2" y una versión
>> superior a 2.1 de libc6.
>>
>> Para más información: man deb-control
>>
>> Un saludo.
>> _______________________________________________
>> Jde-developers mailing listJde-developers en gsyc.eshttp://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>
>>
>>
>> _______________________________________________
>> Jde-developers mailing list
>> Jde-developers en gsyc.es
>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>
>>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20121219/df819549/attachment.htm 


More information about the Jde-developers mailing list