{"id":323,"date":"2011-02-03T21:05:11","date_gmt":"2011-02-03T21:05:11","guid":{"rendered":"http:\/\/blog.mageia.org\/pt-br\/?p=323"},"modified":"2011-02-08T18:44:11","modified_gmt":"2011-02-08T18:44:11","slug":"bootstrap-que-bootstrap-eu-quero-a-iso-da-mageia","status":"publish","type":"post","link":"https:\/\/blog.mageia.org\/pt\/2011\/02\/03\/bootstrap-que-bootstrap-eu-quero-a-iso-da-mageia\/","title":{"rendered":"Bootstrap? Que bootstrap? Eu quero a ISO da Mageia!"},"content":{"rendered":"<p style=\"text-align: justify;\">N\u00f3s\u00a0anunciamos que a primeira ISO\u00a0alpha estar\u00e1 dispon\u00edvel\u00a0at\u00e9 o final\u00a0de\u00a0janeiro&#8230; e ainda\u00a0n\u00e3o est\u00e1.\u00a0Malditos!\u00a0O que est\u00e1 acontecendo?\u00a0Deixe-me\u00a0explicar.<\/p>\n<h2>Era uma vez uma inicializa\u00e7\u00e3o&#8230;<\/h2>\n<p style=\"text-align: justify;\">Como dito\u00a0em posts\u00a0anteriores do blog,\u00a0o nosso\u00a0sistema de compila\u00e7\u00e3o est\u00e1 em opera\u00e7\u00e3o ativa nas \u00faltimas semanas e <a href=\"http:\/\/pkgsubmit.mageia.org\/\" target=\"_blank\">mais\u00a0de 4.000\u00a0pacotes j\u00e1 foram compilados<\/a>. Este conjunto\u00a0de\u00a0pacotes\u00a0\u00e9\u00a0o\u00a0que\u00a0chamamos de\u00a0bootstrap.<\/p>\n<p style=\"text-align: justify;\">Olhando para\u00a0a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Bootstrapping\" target=\"_blank\">Wikip\u00e9dia<\/a>,\u00a0voc\u00ea vai ver\u00a0que um bootstrap \u00e9\u00a0um\u00a0pequeno sistema de inicia\u00e7\u00e3o usado para\u00a0inicializar\u00a0um\u00a0sistema maior.\u00a0No caso\u00a0da Mageia:\u00a0bootstrap\u00a0\u00e9\u00a0a\u00a0etapa atual, onde\u00a0o sistema\u00a0b\u00e1sico e a maioria das depend\u00eancias\u00a0est\u00e3o sendo compiladas para\u00a0que todas as aplica\u00e7\u00f5es possam tamb\u00e9m ser compiladas utilizando ferramentas e pacotes pr\u00f3prios da Mageia.\u00a0Todas as\u00a0distribui\u00e7\u00f5es\u00a0Linux\u00a0usam\u00a0seus pr\u00f3prios pacotes\u00a0para\u00a0compilar todos os pacotes\u00a0dispon\u00edveis\u00a0em seus\u00a0reposit\u00f3rios.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/White_chicken_egg_square.jpg\" alt=\"\" width=\"263\" height=\"262\" \/><\/p>\n<p style=\"text-align: center;\">\n<p style=\"text-align: justify;\">Em seguida,\u00a0vem a parte mais dif\u00edcil da\u00a0hist\u00f3ria, uma esp\u00e9cie\u00a0de\u00a0dilema\u00a0do ovo e\u00a0da galinha.\u00a0Alguns\u00a0pacotes\u00a0de baixo n\u00edvel, geralmente\u00a0chamado\u00a0toolchain, s\u00e3o necess\u00e1rios para compilar:\u00a0gcc,\u00a0glibc&#8230;\u00a0Estes\u00a0pacotes\u00a0j\u00e1\u00a0existem\u00a0em\u00a0um\u00a0monte de\u00a0distribui\u00e7\u00f5es. Assim, o\u00a0processo de bootstraping\u00a0simplesmente\u00a0come\u00e7a a partir de uma dessas\u00a0distribui\u00e7\u00f5es.<\/p>\n<p style=\"text-align: justify;\">Na Mageia, como a primeira vers\u00e3o \u00e9 baseada no Cooker, decidimos\u00a0usar os pacotes\u00a0da Mandriva.\u00a0A fim\u00a0de\u00a0us\u00e1-los, \u00e9 preciso\u00a0t\u00ea-los\u00a0limpos:<\/p>\n<p style=\"text-align: justify;\">\n<ul>\n<li style=\"text-align: justify;\">removendo\u00a0bits e pe\u00e7as espec\u00edficas da Mandriva (macros\u00a0RPM,\u00a0itens\u00a0protegidos por direitos autorais, como\u00a0imagens, \u00edcones, material\u00a0obsoleto&#8230;)<\/li>\n<li style=\"text-align: justify;\">eliminando as condi\u00e7\u00f5es\u00a0desnecess\u00e1rios nas defini\u00e7\u00f5es de compila\u00e7\u00e3o requeridas<\/li>\n<li style=\"text-align: justify;\">desativando\u00a0temporariamente algumas\u00a0depend\u00eancias\u00a0de alto n\u00edvel j\u00e1 que elas\u00a0ainda n\u00e3o\u00a0est\u00e3o compiladas e\u00a0dispon\u00edveis\u00a0para Mageia\u00a0(Java,\u00a0Mono).<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Quando tudo isso\u00a0for\u00a0feito,\u00a0cada pacote\u00a0est\u00e1\u00a0pronto\u00a0para ser\u00a0recompilado no sistema de compila\u00e7\u00e3o da Mageia.\u00a0Uma vez que\u00a0o\u00a0pacote\u00a0\u00e9\u00a0recompilado como\u00a0um pacote Mageia,\u00a0o embalador\u00a0ir\u00e1\u00a0verificar\u00a0e\u00a0re-adicionar,\u00a0se necess\u00e1rio, depend\u00eancias de compila\u00e7\u00e3o adicionais t\u00e3o logo estiverem dispon\u00edveis.<\/p>\n<h2>Vamos dar um exemplo<\/h2>\n<p style=\"text-align: justify;\">gcc\u00a0\u00e9 um\u00a0compilador\u00a0C,\u00a0uma parte\u00a0importante da\u00a0base do sistema que \u00e9 necess\u00e1rio para que v\u00e1rias aplica\u00e7\u00f5es sejam compiladas a partir da fonte.<\/p>\n<p style=\"text-align: justify;\">A Mageia\u00a0necessita de seu pr\u00f3prio pacote\u00a0do gcc para\u00a0gerar\u00a0todas\u00a0as aplica\u00e7\u00f5es que usam a linguagem\u00a0C\u00a0(tamb\u00e9m\u00a0chamado\u00a0<em>dogfooding<\/em>).\u00a0Esta \u00e9 uma\u00a0opera\u00e7\u00e3o fundamental\u00a0para Mageia, faz\u00ea-la corretamente\u00a0vai\u00a0garantir que\u00a0tudo\u00a0est\u00e1 funcionando bem\u00a0e, ao mesmo tempo, listar eventuais problemas e\u00a0corrigi-los. O gcc da Mageia\u00a0\u00e9 ent\u00e3o gerado.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Bootstrap build system\" src=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/bootstrap_bs.png\" alt=\"\" width=\"1011\" height=\"492\" \/><\/p>\n<p style=\"text-align: justify;\">Quando\u00a0o conjunto de ferramentas est\u00e1 pronto, ent\u00e3o\u00a0podemos\u00a0recompilar o kernel da Mageia,\u00a0drivers do X, o servidor\u00a0X,\u00a0etc e as aplica\u00e7\u00f5es\u00a0do n\u00edvel superior.\u00a0Um\u00a0sistema inicializado (bootstrapped)\u00a0n\u00e3o\u00a0oferece aos empacotadores\u00a0muito\u00a0mais do que\u00a0algumas bibliotecas e um\u00a0compilador.\u00a0Ser\u00e1, ent\u00e3o, preciso de pacotes\u00a0adicionais do n\u00facleo do sistema antes\u00a0de ser\u00a0capaz de\u00a0deixar\u00a0a\u00a0equipe de empacotadores\u00a0realmente come\u00e7ar a trabalhar\u00a0a s\u00e9rio. Muitos pacotes\u00a0n\u00e3o\u00a0requerem\u00a0algumas\u00a0depend\u00eancias de compila\u00e7\u00e3o, que\u00a0por sua vez, exigem\u00a0algumas outras\u00a0depend\u00eancias.<\/p>\n<p style=\"text-align: justify;\">Finalmente\u00a0milhares\u00a0de\u00a0pacotes s\u00e3o\u00a0necess\u00e1rios\u00a0para\u00a0construir\u00a0os principais componentes\u00a0que ser\u00e3o\u00a0necess\u00e1rios\u00a0para\u00a0aplica\u00e7\u00f5es\u00a0de alto n\u00edvel.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"\u00c1rvore de depend\u00eancias\" src=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/deps_bootstrap.png\" alt=\"\" width=\"642\" height=\"266\" \/><\/p>\n<p style=\"text-align: justify;\">\u00c9 claro que\u00a0esta\u00a0\u00e9 a\u00a0hist\u00f3ria\u00a0simples,\u00a0sem\u00a0todas as coisas\u00a0divertidas\u00a0que podem acontecer durante\u00a0processo de recompila\u00e7\u00e3o.\u00a0Mas esse \u00e9\u00a0o\u00a0retrato grande.<\/p>\n<h2>Por que bootstrap \u00e9 t\u00e3o importante?<\/h2>\n<p style=\"text-align: justify;\">Como dito anteriormente, essa \u00e9 a etapa onde os empacotadores\u00a0e especialistas do sistema\u00a0b\u00e1sico podem levar algum tempo\u00a0para\u00a0verificar a\u00a0consist\u00eancia\u00a0das partes de baixo\u00a0n\u00edvel\u00a0da distribui\u00e7\u00e3o, limpar os requisitos e\u00a0torn\u00e1-los aptos com\u00a0a\u00a0pol\u00edtica da distribui\u00e7\u00e3o.\u00a0Ent\u00e3o\u00a0bootstrap\u00a0n\u00e3o\u00a0\u00e9\u00a0dedicado\u00a0apenas\u00a0\u00e0s pessoas interessadas em <em>forks \ud83d\ude42<\/em>.<\/p>\n<p style=\"text-align: justify;\">Pelo caminho, melhoria e\u00a0cria\u00e7\u00e3o de documenta\u00e7\u00e3o\u00a0adequada\u00a0sobre\u00a0bootstrap\u00a0tamb\u00e9m ir\u00e1\u00a0ajudar\u00a0muito\u00a0quando\u00a0novas arquiteturas\u00a0est\u00e3o sendo\u00a0adicionados\u00a0e suportadas. Isso ir\u00e1 precisar de um\u00a0bom\u00a0conjunto de ferramentas,\u00a0sistema b\u00e1sico\u00a0&#8230;\u00a0a mesma hist\u00f3ria.<\/p>\n<h2>ISOs!<\/h2>\n<p style=\"text-align: justify;\">Ent\u00e3o,\u00a0de volta\u00a0\u00e0 nossa primeira pergunta:\u00a0quando podemos esperar a primeira ISO de teste?\u00a0A\u00a0etapa\u00a0de inicializa\u00e7\u00e3o\u00a0come\u00e7ou\u00a0h\u00e1 um m\u00eas\u00a0e devem\u00a0ser\u00a0conclu\u00eddas at\u00e9 amanh\u00e3.\u00a0Demorou\u00a0cerca de\u00a01.500 horas\u00a0para\u00a0compilar os pacotes dispon\u00edveis, levando em\u00a0conta as compila\u00e7\u00f5es bem sucedidas, mas\u00a0tamb\u00e9m\u00a0falhas,\u00a0recompila\u00e7\u00e3o,\u00a0as decis\u00f5es t\u00e9cnicas\u00a0a\u00a0serem\u00a0tomadas,\u00a0problemas\u00a0inesperados, as discuss\u00f5es&#8230;<\/p>\n<p style=\"text-align: justify;\">Agora,\u00a0aqui\u00a0estamos n\u00f3s :). O Reposit\u00f3rio\u00a0est\u00e1 pronto\u00a0para os primeiros\u00a0testes de compila\u00e7\u00e3o,\u00a0a nossa\u00a0m\u00e1quina de compila\u00e7\u00e3o de ISOs\u00a0est\u00e1 configurado corretamente e\u00a0a Alpha1\u00a0\u00e9\u00a0esperada em\u00a015 de fevereiro; fique\u00a0atento,\u00a0mais novidades\u00a0sobre o roteiro futuro est\u00e1 chegando!<\/p>\n<p style=\"text-align: justify;\">(<em>texto escrito em\u00a0<a href=\"http:\/\/blog.mageia.org\/?p=422\" target=\"_blank\">ingl\u00eas por ennael<\/a> e traduzido por ajunior)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00f3s\u00a0anunciamos que a primeira ISO\u00a0alpha estar\u00e1 dispon\u00edvel\u00a0at\u00e9 o final\u00a0de\u00a0janeiro&#8230; e ainda\u00a0n\u00e3o est\u00e1.\u00a0Malditos!\u00a0O que est\u00e1 acontecendo?\u00a0Deixe-me\u00a0explicar. Era uma vez uma inicializa\u00e7\u00e3o&#8230; Como dito\u00a0em posts\u00a0anteriores do blog,\u00a0o nosso\u00a0sistema de compila\u00e7\u00e3o est\u00e1 em opera\u00e7\u00e3o ativa nas \u00faltimas semanas e mais\u00a0de 4.000\u00a0pacotes j\u00e1 foram &hellip; <a href=\"https:\/\/blog.mageia.org\/pt\/2011\/02\/03\/bootstrap-que-bootstrap-eu-quero-a-iso-da-mageia\/\">Continuar a ler <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":8,"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":[],"class_list":["post-323","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1R7Hh-5d","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/posts\/323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/comments?post=323"}],"version-history":[{"count":32,"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/posts\/323\/revisions"}],"predecessor-version":[{"id":356,"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/posts\/323\/revisions\/356"}],"wp:attachment":[{"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/media?parent=323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/categories?post=323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mageia.org\/pt\/wp-json\/wp\/v2\/tags?post=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}