{"id":191,"date":"2011-02-02T15:22:01","date_gmt":"2011-02-02T13:22:01","guid":{"rendered":"http:\/\/blog.mageia.org\/es\/?p=191"},"modified":"2011-03-25T09:49:00","modified_gmt":"2011-03-25T07:49:00","slug":"%c2%bfbootstrap-%c2%bfcual-bootstrap-%c2%a1quiero-mi-iso-de-mageia","status":"publish","type":"post","link":"https:\/\/blog.mageia.org\/es\/2011\/02\/02\/%c2%bfbootstrap-%c2%bfcual-bootstrap-%c2%a1quiero-mi-iso-de-mageia\/","title":{"rendered":"\u00bfBootstrap? \u00bfCu\u00e1l bootstrap? \u00a1Quiero mi ISO de Mageia!"},"content":{"rendered":"<p>Hab\u00edamos anunciado que nuestra primera imagen ISO alfa estar\u00eda disponible para finales de enero&#8230;y a\u00fan no hay nada. Rayos! que est\u00e1 pasando? D\u00e9jenme explicarles.<\/p>\n<p><strong>Erase una vez un bootstrap&#8230;<\/strong><\/p>\n<p>Como se manifest\u00f3 en entradas previas, nuestro sistema de construcci\u00f3n de paquetes ha estado en activo desde las ultimas semanas y <a href=\"http:\/\/pkgsubmit.mageia.org\/\">mas de 4.000 paquetes han sido construidos<\/a>. Este conjunto de paquetes es lo que llamamos un bootstrap.<\/p>\n<p>En <a href=\"http:\/\/es.wikipedia.org\/wiki\/Bootstrapping_(inform%C3%A1tica)\">Wikipedia<\/a>, ustedes podr\u00e1n ver que un bootstrap es un peque\u00f1o cargador de arranque que carga un sistema mas grande. En el caso de Mageia: el bootstrap es el paso donde el sistema base y las dependencias mayores se est\u00e1n construyendo para que las aplicaciones puedan construirse tambi\u00e9n usando las herramientas y paquetes propios de Mageia. Todas las distribuciones de Linux usan sus propios paquetes para construir los paquetes disponibles en sus repositorios.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/White_chicken_egg_square-300x300.jpg\" alt=\"Huevo blanco cuadrado\" \/><\/p>\n<p>Entonces viene la pieza mas dif\u00edcil de la historia, algo como el dilema del huevo o la gallina. Algunos paquetes de bajo nivel, generalmente llamados \u00abtoolchains\u00bb, se necesitan as\u00ed mismos para compilarse: gcc, glibc, entre otros. Estos paquetes ya existen en muchas distribuciones. Entonces el proceso de creaci\u00f3n del bootstrap simplemente empieza desde una de esas distribuciones.<\/p>\n<p>En el lado de Mageia, se decidi\u00f3 que se usar\u00edan los paquetes de Mandriva ya que el primer release est\u00e1 basado en cooker. Para poder usarlos, primero debemos limpiarlos con tareas como:<\/p>\n<ul>\n<li>Remover bits espec\u00edficos de Mandriva y otros elementos (macros de RPM, elementos con derechos de autor tales como im\u00e1genes, iconos, y cosas obsoletos, entre otros)<\/li>\n<li>Remover condiciones innecesarias en las definiciones de requerimientos de construcci\u00f3n.<\/li>\n<li>Enviar parches a los autores (upstream) as\u00ed no tenemos que mantenerlos lo que, a la vez, puede ser mejor para todos si los autores los aceptan.<\/li>\n<li>Deshabilitar temporalmente algunas dependencias de alto nivel como Java o Mono, pues a\u00fan no est\u00e1n listas ni disponibles para Mageia.<\/li>\n<\/ul>\n<p>Cuando todo est\u00e9 listo, cada paquete est\u00e1 listo para ser reconstruido en el sistema de construcci\u00f3n de Mageia. Una vez que el paquete est\u00e1 construido como un paquete de Mageia, el empaquetador verificar\u00e1 y agregar\u00e1, si es necesario, dependencias de construcci\u00f3n tan pronto como est\u00e9n disponibles.<\/p>\n<p><strong>Vamos a tomar un ejemplo<\/strong><\/p>\n<p>gcc es un compilador de C, una pieza fundamental del sistema base, pues es necesaria por muchas aplicaciones para que sean compiladas desde su c\u00f3digo fuente.<\/p>\n<p>Mageia necesita su propio paquete gcc para generar todas las aplicaciones usando el lenguaje C (tambi\u00e9n llamado dogfooding). Esto es una operaci\u00f3n crucial para Mageia pues al hacerlo correctamente aseguramos que todo funcione bien, y al mismo tiempo listar problemas potenciales y corregirlos. Entonces el gcc de Mageia es generado.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/bootstrap_bs.png\" alt=\"Bootstrap build system\" width=\"637\" height=\"310\" \/><\/p>\n<p>Una vez que el \u00abtoolchain\u00bb es construido podemos reconstruir el kernel de Mageia, controladores para X, servidor X, y aplicaciones de nivel superior. Un sistema \u00abbootstrapped\u00bb no ofrece tantos paquetes m\u00e1s que algunas librer\u00edas y el compilador. En ese momento ser\u00e1n requeridos paquetes adicionales del n\u00facleo del sistema antes de poder permitir al equipo de empaquetadores empezar realmente su labor. Muchos paquetes requieren dependencias de construcci\u00f3n, y estas a su vez requieren otras dependencias de construcci\u00f3n.<\/p>\n<p>Finalmente se necesitan miles de paquetes para construir componentes mayores que ser\u00e1n necesarios para aplicaciones de alto nivel.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/deps_bootstrap.png\" alt=\"Cascada de dependencias\" \/><\/p>\n<p>Por supuesto esta es solo una simple historia, sin todas las cosas divertidas que pueden suceder durante el proceso de reconstrucci\u00f3n. Pero eso es la idea general.<\/p>\n<p><strong>\u00bfPorque es tan importante bootstrap?<\/strong><\/p>\n<p>Como se describi\u00f3 previamente, bootstrap es un paso donde los empaquetadores y los especialistas del sistema base usan para verificar consistencia de las partes de bajo nivel de la distribuci\u00f3n, limpiar requerimientos y hacer que quede acorde a las pol\u00edticas de la distribuci\u00f3n. As\u00ed que el bootstrap no solamente est\u00e1 dedicado a gente interesada en productos derivados (forks) \ud83d\ude42<\/p>\n<p>Por cierto, mejorando y escribiendo la documentaci\u00f3n adecuada en el bootstrap ser\u00e1 de mucha ayuda cuando se soporten nuevas arquitecturas. Esto necesitar\u00e1 un toolchain adecuado, sistema base&#8230; la misma historia.<\/p>\n<p><strong>\u00a1ISOs!<\/strong><\/p>\n<p>Volviendo a nuestra primera pregunta, \u00bfcuando esperaremos ver la primera imagen ISO de prueba? El proceso de creaci\u00f3n del bootstrap inici\u00f3 hace un mes y deber\u00e1 finalizar para ma\u00f1ana. Tom\u00f3 alrededor de 1.500 horas construir los paquetes disponibles tomando en consideraci\u00f3n construcciones satisfactorias pero tambi\u00e9n fallas, reconstrucciones, y decisiones t\u00e9cnicas que debieron tomarse en cuenta, problemas inesperados y discusiones&#8230;<\/p>\n<p>As\u00ed que estamos aqu\u00ed \ud83d\ude42 El repositorio est\u00e1 listo para las primeras pruebas de construcci\u00f3n, nuestra m\u00e1quina para para construir ISOs est\u00e1 propiamente configurada y la versi\u00f3n Alpha1 est\u00e1 planeada para el 15 de febrero; est\u00e9n pendientes, \u00a1pronto habr\u00e1 m\u00e1s noticias sobre la hoja de ruta!<\/p>\n<p>(Traducci\u00f3n de <a href=\"http:\/\/blog.mageia.org\/?p=422\">este art\u00edculo<\/a> publicado por ennael.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hab\u00edamos anunciado que nuestra primera imagen ISO alfa estar\u00eda disponible para finales de enero&#8230;y a\u00fan no hay nada. Rayos! que est\u00e1 pasando? D\u00e9jenme explicarles. Erase una vez un bootstrap&#8230; Como se manifest\u00f3 en entradas previas, nuestro sistema de construcci\u00f3n de &hellip; <a href=\"https:\/\/blog.mageia.org\/es\/2011\/02\/02\/%c2%bfbootstrap-%c2%bfcual-bootstrap-%c2%a1quiero-mi-iso-de-mageia\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[36,37,38,41,39,40,3],"class_list":["post-191","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","tag-bootstrap","tag-contruccion","tag-distribucion","tag-empaquetado","tag-iso","tag-linux","tag-mageia"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p15llx-35","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts\/191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/comments?post=191"}],"version-history":[{"count":11,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts\/191\/revisions"}],"predecessor-version":[{"id":294,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts\/191\/revisions\/294"}],"wp:attachment":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/media?parent=191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/categories?post=191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/tags?post=191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}