¿Cómo desarrollar para Canaima GNU/Linux?

  • 5,680 views
Uploaded on

Presentación que contiene fundamentos básicos del desarrollo en Canaima GNU/Linux

Presentación que contiene fundamentos básicos del desarrollo en Canaima GNU/Linux

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,680
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
53
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ¿Cómo desarrollar para Canaima GNU/Linux? Luis Alejandro Martínez Faneyth Desarrollador Canaima
  • 2.
    • ¿Como se construye Canaima?
    • 3. Diagrama estructural de Canaima
    • 4. Fundamentos de apt-pinning
    • 5. ¿Qué es un paquete?
    • 6. Tipos de paquetes
        • Paquete binario
        • 7. Paquete fuente
    • Mundo del Desarrollador + Mundo del Mantenedor
    • 8. Los archivos Makefile y debian/rules
    • 9. Proceso de construcción de un paquete
    • 10. Herramientas para construir paquetes
    • 11. Versionamiento git en la construcción de paquetes
    • 12. dpkg-diverts y update-alternatives
    • 13. Automatización del empaquetamiento con Canaima Desarrollador
    • 14. Creación de parches con quilt
    • 15. Creación de un repositorio local de paquetes binarios
    • 16. ¿Qué es un sabor Canaima?
    • 17. Estructura de un sabor
    • 18. Construyendo sabores con Canaima Semilla
    AGENDA
  • 19. ¿Cómo se construye? Canaima es una Meta-distribución GNU/Linux basada en Debian. Está compuesta por paquetes que proporcionan los elementos esenciales para construir un sistema operativo, además de un gran número de librerías y aplicaciones de usuario. Permite la creación de distribuciones derivadas o sabores, manteniendo una base común entre los mismos.
  • 20.  
  • 21.  
  • 22.  
  • 23. Fundamentos de apt-pinning Permite establecer prioridades entre un grupo de paquetes y otro. En el caso específico de Canaima Popular, permite la coexistencia de la capa Debian y la capa Canaima sin reemplazos o “actualizaciones rotas”. Se fundamenta en la edición del archivo /etc/apt/preferences.
  • 24. Ejemplo de apt-pinning cat /etc/apt/preferences Package: * Pin: release o=Canaima Pin-Priority: 900 Package: * Pin: release o=Debian Pin-Priority: 100
  • 25. ¿Qué es un paquete? Un paquete es una pieza de software diseñada para instalar y/o desinstalar otra pieza (o conjunto de piezas) contenidas dentro de el. Posee una estructura definida por la distribución GNU/Linux que los distribuye, además de herramientas e instrucciones para su construcción.
  • 26. Tipos de Paquetes Los paquetes que terminan instalados en las computadoras de los usuarios son los llamados “Paquetes Binarios”, los cuales son construidos a partir de otros paquetes que contienen el código fuente, los llamados “Paquetes Fuente”.
  • 27. Paquete Fuente / Binario Ejemplo: canaima-base
  • 28.  
  • 29. Proceso de Construcción
  • 30.  
  • 31. ¿Qué es un sabor?
      Distribución GNU/Linux basada en otra distribución. Comparte un número establecido de paquetes (base). Se identifica filosóficamente con su distribución padre.
  • 32. ¿Por qué hacer un sabor?
  • 36. Ejemplos de Sabores
  • 44. Estructura de un sabor
    • Ejemplo: Canaima Popular
      • Basada en Debian Squeeze.
      • 45. Utiliza el escritorio Gnome.
      • 46. Suite ofimática Libreoffice.
      • 47. Navegador Cunaguaro, Cliente Correo Guácharo.
      • 48. Gestor de Arranque BURG.
      • 49. Consta de 263 paquetes propios (instalados).
      • 50. Reutiliza 1213 paquetes de debian.
  • 51.  
  • 52. ¿Y cómo consigo los paquetes?
    • Definir cuáles van a ser las aplicaciones a incluir en el sabor.
    • 53. Determinar los repositorios externos necesarios.
    • 54. Determinar si es necesario empaquetar aplicaciones.
    • 55. Determinar los metapaquetes que se utilizarán para organizar temáticamente las aplicaciones.
  • 56. Canaima Desarrollador
    • Asistente de empaquetamiento que permite:
      • Crear paquetes fuente.
      • 57. Debianizar paquetes.
      • 58. Descargar fuentes de versionamiento git.
      • 59. Subir cambios a repositorio git.
      • 60. Empaquetar.
      • 61. Empaquetar, descargar, subir, registrar paquetes en masa.
  • 62. Canaima Desarrollador
    • Ejemplo de uso: Creación de Metapaquete
      • c-d crear-proyecto --nombre="proyecto" --version="X.Y+Z" --destino="canaima" --licencia="gpl"
      • 63. Modificar dependencias y descripción en debian/control.
      • 64. c-d empaquetar --directorio="nombre-X.Y+Z" --mensaje="cambios" --procesadores="N"
  • 65. Documentación para c-d
    • man canaima-desarrollador
    • 66. c-d --ayuda
    • 67. c-d [AYUDANTE] --ayuda
    • 68. Aplicaciones > Programación > Manual del Desarrollador
    • 69. wiki.canaima.softwarelibre.gob.ve
    • 70. huntingbears.com.ve
  • 71. Ya tengo mis paquetes
    • Súbelos a un repositorio público.
      • repositorio.canaima.softwarelibre.gob.ve
      • 72. forja.softwarelibre.gob.ve
      • 73. Otros
    • Prueba instalándolos en tu Distribución Padre.
    • 74. Pídele a otros que te ayuden a probarlos instalándolos en sus casas.
  • 75. ¿Y cómo distribuyo mi sabor?
    • A través de una imagen ISO, descargable desde un lugar público como descargas.canaima.softwarelibre.gob.ve
    • 76. A través de una configuración de tasksel que permita instalar los paquetes que saborizan la distribución padre.
    • 77. A través de una receta.
  • 78. Canaima Semilla
    • Asistente de construcción de imágenes ISO a partir de perfiles.
    • 79. Basado en el proyecto Debian Live (live-build, antes llamado live-helper).
    • 80. Permite establecer sabores “oficiales” de Canaima.
    • 81. Fácil de configurar, Fácil de usar, éxito asegurado.
  • 82. Canaima Semilla
    • Perfiles
      • /usr/share/canaima-semilla/perfiles/
    • Semillero
      • /usr/share/canaima-semilla/semillero/
    • Variables
      • /usr/share/canaima-semilla/variables.conf
    • Scripts
      • /usr/share/canaima-semilla/scripts/
  • 83. Perfiles de Canaima Semilla
    • Acerca de los perfiles.
    • Cada carpeta es el nombre del sabor.
    • 84. Pueden existir N sabores.
    • 85. Crear un sabor es tan fácil como ctrl+c ejemplo, ctrl+v y renombrarlo apropiadamente.
  • 86. Definición del Perfil
    • sabor.conf
    PUBLICADO_POR ="Canaima GNU/Linux" SABOR_DIST ="squeeze" APLICACION ="Canaima GNU/Linux" MIRROR_DEBIAN ="http://universo.canaima.softwarelibre.gob.ve/" COMP_MIRROR_DEBIAN ="main contrib non-free" SABOR_PAQUETES ="canaima-x canaima-y" SABOR_PAQUETES_ISOPOOL ="X Y Z"
  • 87. Definición del Perfil
    • banner-instalador.png
      • Banner del Debian Installer
      • 88. Debe tener un tamaño de 800x75 pixeles.
  • 89. Definición del Perfil
    • syslinux.png
  • 90. Definición del Perfil
    • canaima.binary, canaima.binary.gpg, canaima.chroot y canaima.chroot.gpg
      • Repositorios adicionales al de Debian, necesarios para instalar los paquetes y acompañados de sus firmas GPG.
    deb http://repositorio.canaima.softwarelibre.gob.ve/ roraima usuarios deb http://seguridad.canaima.softwarelibre.gob.ve/ seguridad usuarios
  • 91. Definición del Perfil
    • Carpeta “inclusiones-iso”
  • 92. Definición del Perfil
    • gtkrc-instalador
    • 93. preseed-instalador.cfg
  • 94. El Semillero
    • Lugar de almacenamiento para las configuraciones y las ISO's construidas hasta el momento
  • 95. ¿Y cómo creamos la ISO?
    • c-s construir --medio="iso" --arquitectura="amd64" --sabor="popular"
    • 96. Consejos:
      • Utilizar un mirror local
      • 97. Verificar que se tiene suficiente espacio ( ~ 4 veces el peso de todos los paquetes del sabor).
  • 98. Documentación para c-s
    • man canaima-semilla
    • 99. c-s --ayuda
    • 100. Aplicaciones > Programación > Manual de Canaima Semilla
    • 101. wiki.canaima.softwarelibre.gob.ve
    • 102. huntingbears.com.ve
  • 103. ¡Gracias por su atención! Luis Alejandro Martínez Faneyth Ingeniero de Telecomunicaciones Twitter: @LuisAlejandro Blog: http://www.huntingbears.com.ve Correo: lmartinez@cnti.gob.ve