[Jderobot-dev] Crear paquetes debian

Eduardo Perdices eperdices en gsyc.es
Mie Nov 28 00:55:16 CET 2012


Hola,

el usuario no debe instalar nada a mano, de los programas que 
generalmente compilamos nosotros a mano (gazebo, gearbox, etc) se 
hicieron paquetes aparte de cada uno. Luego se puso como dependencia 
estos paquetes más los paquetes de los repositorios que necesita (ice, 
opencv, etc).

El usuario debe hacer: "sudo aptitude install jderobot" y que con eso ya 
se instale todo lo necesario.

Saludos.

El 28/11/12 00:20, Mikel Gonzalez Baile escribió:
> Hola Edu,
>
> muchas gracias por ese recurso, ahora mismo muchas cosas no las 
> entiendo bien, pero conforme avance seguro que como guía de "pasos a 
> seguir" me viene genial.
>
> Hasta ahora he conseguido crear pequeños paquetes, y crear un paquete 
> de jderobot-5.1 con todas las fuentes (componentes, librerías, 
> interfaces, ...) que se encuentran en el directorio "trunk/" del 
> repositorio, claro, partiendo de un PC que ya tiene instalado todas 
> las dependencias necesarias (gearbox, ice, etc, etc) previamente. 
> Ahora me surge la duda sobre qué más debe contener un paquete, es 
> decir, si yo a alguien le digo que se instale todo lo necesario para 
> que JDErobot funcione y le paso mi paquete generado supongo que 
> debería funcionarle.
>
> Entonces, mi duda sería, qué debe contener el paquete jderobot?, por 
> ejemplo, en la versión que hiciste, si mal no recuerdo el simulador 
> Gazebo se instalaba con el propio paquete. Otras dependencias, como 
> son ICE, gearbox, etc, etc. también debo incluirlas en el paquete? o 
> esto debería instalarlo el usuario a mano antes de instalar el paquete?
>
> Un saludo y gracias!!!
>
> Mikel.
>
>
> 2012/11/27 Eduardo Perdices <eperdices en gsyc.es <mailto:eperdices en gsyc.es>>
>
>     Hola,
>
>     yo hice los paquetes de la 5.0 y tengo un archivo donde fui
>     apuntando todo lo que hice, te copio todo lo que tengo:
>
>
>     #Descargamos gearbox 9.11:
>     http://sourceforge.net/projects/gearbox/files/gearbox/9.11/gearbox-9.11.tar.gz/download
>
>
>
>     #Instalamos paquetes básicos:
>     sudo aptitude install build-essential file patch perl python
>     autoconf automake autotools-dev dh-make debhelper devscripts
>     fakeroot gnupg gfortran gpc xutils-dev lintian pbuilder patchutils
>     quilt git
>
>
>
>     Configuramos .bashrc:
>     #Debian
>     DEBEMAIL=xxx en gsyc.es <mailto:DEBEMAIL=xxx en gsyc.es>
>     DEBFULLNAME="Nombre Apellido"
>     export DEBEMAIL DEBFULLNAME
>
>
>
>     #Copiamos el código fuente en $HOME/paquete/paquete-version
>     mkdir ~/gearbox
>     cd ~/gearbox
>     cp  /../gearbox-9.11.tar.gz .
>     tar -zxvf gearbox-9.11.tar.gz
>
>
>
>     #Iniciamos creación del paquete
>     cd ~/gearbox/gearbox-9.11/
>     dh_make -f ../gearbox-9.11.tar.gz     #Seleccionamos single binary (s)
>     #Con esto se creará el directorio debian, si ya existiese antes
>     ejecutar dh_make con la opción --addmissing
>
>
>
>     #Archivos dentro de la carpeta debian
>     #Control
>     Modificamos Section (extra), Homepage, Description, y
>     Build-depends si es necesario.
>     También escribimos dos veces lo de Package, ..., Description para
>     tener un binario normal y un -dev
>     Si queremos saber las dependencias de un binario probar con:
>     objdump -p /usr/bin/nombre_paquete | grep NEEDED
>
>     #Copyright
>     Rellenamos los datos que falten (si queremos)
>
>     #Changelog
>     Para documentar los cambios realizados
>
>     #Rules
>     Script que sirve como Makefile, se puede dejar por defecto
>     O copiar el creado por defecto cambiando el configure
>
>     #Directorios
>     Directorios que se necesitan y se van a crear en debian/tmp
>     Necesitamos uno por cada paquete
>     touch gearbox.dirs
>     touch gearbox-dev.dirs
>     Si se crea un único archivo 'dirs' sólo se aplica al primer binario
>
>     #Archivos install
>     Archivos que hay que copiar al hacer el install, es como si
>     delante de la instrucción hiciesemos un cp
>     Uno para cada paquete
>     touch gearbox.install
>     touch gearbox-dev.install
>
>     #Postrm y posinst
>     Archivos que se ejecutan tras la instalación y el borrado
>     Usamos los de por defecto
>     Renombramos los archivos postrm.ex y posinst.ex
>     mv postrm.ex postrm
>     mv postinst.ex postinst
>
>
>
>     #Construcción del paquete
>     cd ~/gearbox/gearbox-9.11/
>     dpkg-buildpackage
>     Esto creará en ./.. los .deb y varios archivos más para recuperar
>     las fuentes
>
>
>
>
>     #Para recuperar todos el workspace a partir del paquete ya creado
>     Necesitamos los archivos paquete.orig.tar.gz paquete.diff.gz y
>     paquete.dsc
>     Lo recuperamos ejecutando:
>     dpkg-source -x gearbox_9.11-1.dsc
>
>
>
>     #Creación chroot
>     sudo aptitude install debootstrap schroot
>     #Creamos el archivo:
>     sudo editor /etc/schroot/chroot.d/lucid-i386
>     #Con el texto:
>     [lucid-i386]
>     description=Ubuntu 10.04 Lucid for i386
>     directory=/srv/chroot/lucid-i386
>     #personality=linux32
>     root-users=robotica
>     type=directory
>     users=robotica
>     #Descargamos sistema base
>     sudo mkdir -p /srv/chroot/lucid-i386
>     sudo debootstrap --variant=buildd --arch i386 lucid
>     /srv/chroot/lucid-i386/ http://archive.ubuntu.com/ubuntu/
>     #Comprobamos que ha funcionado
>     schroot -l #debería aparecer lucid-i386
>     sudo schroot -c lucid-i386 -u root
>
>
>
>     #Para saber la versión de un paquete del que dependa
>     aptitude show paquete
>
>
>
>     #Subirlos al servidor
>     Entramos en jderobot.org <http://jderobot.org> con usuario robotica
>
>     Los paquetes están en /var/www/apt/dists/lucid/jderobot/binary-i386
>     Las fuentes están en /var/www/apt/dists/source
>     #scp */*.deb robotica en jderobot.org:debs-lucid
>     <mailto:robotica en jderobot.org:debs-lucid>
>     #scp */*.gz */*.dsc */*.changes robotica en jderobot.org:src
>     <mailto:robotica en jderobot.org:src>
>     #sudo cp *.deb /var/www/apt/dists/lucid/jderobot/binary-i386/
>     #sudo cp *.gz *.dsc *.changes /var/www/apt/dists/source
>     Una vez copiados ejecutamos sudo /var/www/apt/actualiza_repo.sh
>
>
>
>
>     #Para cambiar la versión, modificar en debian/changelog el nombre
>     del paquete
>
>     Saludos.
>
>     El 27/11/12 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.
>>
>>     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í.
>>
>>     Un saludo y gracias.
>>
>>     Mikel.
>>
>>     On Tuesday, 27 November 2012, Oscar Garcia wrote:
>>
>>         El 27/11/12 17:46, Mikel Gonzalez Baile escribió:
>>         > este mensaje va dirigido para Rober y Edu ya que me ha
>>         comentado José
>>         > María que fueron los que crearon los paquetes de JDErobot
>>         4.3, pero si
>>         > alguien más controla del tema y puede echarme un cable,
>>         genial :-).La
>>         > ayuda que solicito es básicamente si disponéis de los recursos
>>         > (manuales, tutoriales, ...) que utilizasteis, algún tipo de
>>         consejo o
>>         > apunte que os sirvió en su día para facilitar la tarea, o
>>         algo similar.
>>
>>
>>         Buenas tardes.
>>
>>         Yo hasta ahora he creado mis paquetes deb con checkinstall y
>>         posteriormente, con dpkg, los he desempaquetado (-x),
>>         retocado y vuelto
>>         a empaquetar (-b). Por ahora no he creado nunca un
>>         post-script ni nada
>>         similar, pero serían muy útiles, por ejemplo, para crear los
>>         enlaces
>>         simbólicos de python-mt-2.x, agregar LD_LIBRARY_PATH en
>>         /etc/environment, etc...
>>
>>         Espero que te sea de utilidad.
>>
>>         PD: No sé si guardo aún algunos paquetes generados para x86
>>         (32 bits),
>>         pero tengo algunos generados recientemente para ARM (armv7)
>>         que podrían
>>         ser útiles para móviles android o raspberries, sólo quedaría
>>         retocarlos
>>         y volverlos a empaquetar. Avísame cuando tengas los tuyos
>>         creados y
>>         trato de modificar los manifiestos para que sean iguales que
>>         los tuyos.
>>         _______________________________________________
>>         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  <mailto: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 <mailto: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/20121128/3c80947f/attachment-0001.htm 


More information about the Jde-developers mailing list