[Jderobot-dev] Crear paquetes debian
Luis Roberto Morales
lr.morales.iglesias en gmail.com
Jue Dic 20 00:58:44 CET 2012
Buenas noches,
no tengo experiencia en paquetes, pero leyendo la guía de creación de
paquetes de la wiki de ubuntu [1] y trucando el ejemplo de hello, he
conseguido que pida de dependencia un paquete de mi elección así que
supongo que esto puede servirte.
En control, debería haber un apartado denominado "Depends" que es el que
define todas las dependencias binarias; poniendo ahí los nombres de
paquetes - y si son necesarias, versiones; Ej: paquete (>= version) -
debería provocar una dependencia. Además hay variables de sustitución que
se pueden utilizar en este apartado, pero su funcionamiento no me lo he
leído.
También existen otros apartados posibles aparte de "Depends" sobre
relaciones con otros paquetes [2] como podría ser incompatibilidad,
sugerencia o mejora.
También es cierto que algunas aplicaciones como dpkg, al contrario que apt
o aptitude, no tratan de resolver las dependencias y solo informan de
dependencia insatisfecha (tuve que instalarme gdebi para que me preguntara
sobre el paquete que introduje).
Espero que te sirva de algo lo de arriba,
Roberto
[1] https://wiki.ubuntu.com/PackagingGuide/Complete
[2]
http://people.canonical.com/~cjwatson/ubuntu-policy/policy.html/ch-relationships.html#s-binarydeps
El 19 de diciembre de 2012 21:51, Mikel Gonzalez Baile <
m.gonzalezbai en gmail.com> escribió:
> 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
>>>
>>>
>>
>>
>
> _______________________________________________
> 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/20121220/05b94e6d/attachment-0001.htm
More information about the Jde-developers
mailing list