{"id":20,"date":"2017-10-17T11:59:15","date_gmt":"2017-10-17T16:59:15","guid":{"rendered":"http:\/\/blogs.gentoo.org\/chrisadr\/?p=20"},"modified":"2019-11-01T03:35:28","modified_gmt":"2019-11-01T08:35:28","slug":"gentoo-el-corazon-de-la-bestia","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/chrisadr\/2017\/10\/17\/gentoo-el-corazon-de-la-bestia\/","title":{"rendered":"Gentoo: El coraz\u00f3n de la bestia"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>Wow, veo\u00a0una\u00a0gran acogida\u00a0a mis\u00a0peque\u00f1os aportes y me motiva mucho m\u00e1s a poder seguir compartiendo con esta bella comunidad. Ya s\u00e9 que he prometido una gu\u00eda de menos de 20 pasos, pero tendr\u00e1n que comer ansias un poco todav\u00eda&#8230; Es que sencillamente no puedo empezar un tutorial de Gentoo sin detenerme a hablar de su coraz\u00f3n y la esencia misma de todo su poder\u00a0<em>Portage<\/em>, su gestor de paquetes. Adem\u00e1s, como fiel usuario de Gentoo creo yo que es mejor <em><strong>entender<\/strong><\/em>\u00a0antes que\u00a0<em><strong>repetir<\/strong><\/em>, y con esto solo quiero decir que antes de empezar una gu\u00eda sencilla como copiar un script (<em>repetir<\/em>), es mejor saber lo que hacemos para poder despu\u00e9s\u00a0<em>escribir<\/em> el script. Como el conocido refr\u00e1n:<\/p>\n<blockquote class=\"td_quote_box td_box_center\"><p>&#8220;Dale a un hombre un pez y le habr\u00e1s calmado el hambre por un d\u00eda, ens\u00e9\u00f1ale a pescar y lo habr\u00e1s salvado de por vida&#8221;.<\/p><\/blockquote>\n<p>Sin m\u00e1s que agregar, comencemos:<\/p>\n<h2>\u00bfQu\u00e9 es portage?<\/h2>\n<p><em>Portage<\/em>, es el gestor de paquetes de Gentoo Linux. Sus equivalentes en otras distribuciones son\u00a0<em>apt <\/em>(Debian y derivados) ,<em> yum <\/em>(Red Hat, SUSE y derivados)<em> , pacman <\/em>(Arch y derivados)<em>&#8230;\u00a0<\/em>Est\u00e1 inspirado en <em>Ports\u00a0<\/em>de FreeBSD, eso debido a que el fundador de Gentoo utiliz\u00f3 una temporada FreeBSD y de ah\u00ed la inspiraci\u00f3n y parecido en muchas de las maneras. Estuvo escrito en bash al principio y\u00a0<em>emerge<\/em> (el nombre del programa que se encarga de instalaciones en l\u00ednea de comando) a lo largo de su historia ha tenido una amplia base de bash y m\u00e1s actualmente Python para poder realizar sus funciones.<\/p>\n<h2>\u00bfPor qu\u00e9 es importante saber esto?<\/h2>\n<p>Bueno, como todo usuario Linux, el gestor de paquetes es tu herramienta principal para poder mantener tu sistema funcional y operativo, te permite instalar, actualizar, eliminar, y muchas otras cosas m\u00e1s.\u00a0<em>Portage<\/em> se subdivide en diversos comandos que se especializan en realizar una cosa, y hacerla bien (una conocida forma de trabajar en UNIX).<\/p>\n<h2>El coraz\u00f3n de Portage:<\/h2>\n<p>A diferencia de otros gestores de paquetes (al menos los que ya he mencionado antes),\u00a0<em>Portage<\/em> basa todo su poder en un archivo de configuraci\u00f3n. Este archivo se encuentra dentro de la ruta <strong>\/etc\/portage\/make.conf\u00a0<\/strong>. Por el momento es muy dif\u00edcil explicar el intrincado sistema que existe en Gentoo que permite entregar todo el poder de la distribuci\u00f3n a este archivo sin romper nada en otro lado, pero sigamos que eso lo dejar\u00e9 para otro post ;)<\/p>\n<h2>Un vistazo al coraz\u00f3n:<\/h2>\n<figure id=\"attachment_77127\" aria-describedby=\"caption-attachment-77127\" style=\"width: 948px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_010.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77127\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_010.bmp\" alt=\"\" width=\"948\" height=\"480\" \/><\/a><figcaption id=\"caption-attachment-77127\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>Como podr\u00e1n ver, no es algo fuera de este mundo, en realidad, tengo otros archivos que son mucho m\u00e1s espec\u00edficos, pero lo que est\u00e1 aqu\u00ed es m\u00e1s que suficiente para poder tener tu Gentoo operativo y funcional. Comencemos a revisar las l\u00edneas que siguen:<\/p>\n<h3>CFLAGS\/CXXFLAGS:<\/h3>\n<p>El primer paso por nuestra aventura en el coraz\u00f3n de Gentoo son los C Flags. Estos flags permiten compilar programas en C (los m\u00e1s b\u00e1sicos que necesita un sistema para funcionar) con distintos tipos de ventajas. Como pueden apreciar en mi configuraci\u00f3n, -march=broadweel me permite usar la generaci\u00f3n de mi procesador al momento de compilar mis programas. -O2 y -pipe vienen por defecto, y si me detengo a explicar cada una me va a tomar tal vez un libro completo.<\/p>\n<p>Sin embargo, aqu\u00ed les dejo unos cuantos tipos de -march explicados en la wiki de Gentoo.<\/p>\n<p><a href=\"https:\/\/wiki.gentoo.org\/wiki\/Safe_CFLAGS\">https:\/\/wiki.gentoo.org\/wiki\/Safe_CFLAGS<\/a><\/p>\n<h3>CHOST:<\/h3>\n<p>El CHOST se encarga de mostrar la ubicaci\u00f3ny tipo por defecto del compilador, esta variable es utilizada en equipos que cuenten con distintos tipos de compiladores, como los fan\u00e1ticos de Arduino. Para una configuraci\u00f3n b\u00e1sica no es necesario entrar en detalles.<\/p>\n<p><em>Nota del autor<\/em>: Gracias por tu aporte\u00a0<strong>njord<\/strong>, y por compartir tus conocimientos con el resto de la comunidad :)<\/p>\n<blockquote class=\"td_quote_box td_box_center\"><p>Esta variable del sistema no indica como tal la ubicaci\u00f3n del compilador, m\u00e1s bien le indica al compilador la arquitectura del procesador, y opcionalmente la plataforma de hardware, sistema operativo y libreria de C para los cuales se van compilar los paquetes y aunque esta variable se define de manera global dentro de make.conf (como todo lo dem\u00e1s que aparec\u00e9 ah\u00ed) nada impide que se puedan compilar paquetes para otras arquitecturas.<\/p><\/blockquote>\n<h3>USE:<\/h3>\n<p>El coraz\u00f3n de los programas, los USE flags de make.conf son universales. Con esto me refiero a que <em>cualquier\u00a0<\/em>programa que cuente con un USE de <strong>X<\/strong>, al momento de ser compilado, contar\u00e1 con el X activado. Esta opci\u00f3n es bastante \u00fatil para aquellos USE flags que vas a utilizar en muchos (si no son todos) de tus programas. Como pueden ver, <em>gnome\u00a0<\/em>y\u00a0<em>systemd<\/em> hacen que mi sistema compile soporte para estos tipos de programas en cualquier software que lo tenga como posibilidad.<\/p>\n<h3>MAKEOPTS:<\/h3>\n<p>Esta es una de las mejores ventajas de los procesadores r\u00e1pidos. <em>MAKEOPTS\u00a0<\/em>como su nombre lo implica, son opciones que se agregan a la sentencia\u00a0<em>make<\/em> que se corre al compilar cada programa. en este caso el\u00a0<em>-j9\u00a0<\/em>me permite compilar 9 programas al mismo tiempo, 1 por cada hilo en mi n\u00facleo del i7. Un n\u00famero m\u00e1s conservador es\u00a0<em>-j5<\/em>, pero incluso aqu\u00ed, el tiempo de compilaci\u00f3n se reduce bastante para cada instalaci\u00f3n.<\/p>\n<h3>CPU_FLAGS_X86:<\/h3>\n<p>Oh oh&#8230; ahora deben estar pensando&#8230; \u00bfqu\u00e9 son esos n\u00fameros? y \u00bfde d\u00f3nde o c\u00f3mo s\u00e9 yo qu\u00e9 poner aqu\u00ed? La respuesta es la pura esencia de Gentoo :) aprovecha a la comunidad ;) quienes ya crearon un programa que te da el resultado. Para mostrar esto solo hace falta instalar el siguiente programa y ejecutarlo:<\/p>\n<figure id=\"attachment_77128\" aria-describedby=\"caption-attachment-77128\" style=\"width: 948px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_011.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77128\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_011.bmp\" alt=\"\" width=\"948\" height=\"216\" \/><\/a><figcaption id=\"caption-attachment-77128\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>Como pueden ver, me muestra los FLAGS que mi procesador posee y los puedo copiar a mi archivo make.conf mediante redirects o escribiendo con nano, vim, o cualquier otro editor de texto :)\u00a0 (Ya ir\u00e1n viendo cu\u00e1n automatizado est\u00e1 todo en Gentoo ;) )<\/p>\n<h3>PORTDIR:<\/h3>\n<p>Simplemente el directorio donde comienza la ra\u00edz de los ebuilds. Estos son los scripts de Bash que permiten a portage instalar programas, pero eso lo dejaremos para otro post ;)<\/p>\n<h3>DISTDIR:<\/h3>\n<p>Como Gentoo instala todo desde su fuente, este directorio almacenar\u00e1 todo el c\u00f3digo fuente que vamos descargando, si desean pueden borrar su contenido cada cierto tiempo, pero hay muchos otros usos interesantes para estos programas, pero eso tambi\u00e9n para otro post ;)<\/p>\n<h3>VIDEO_CARDS:<\/h3>\n<p>Bueno, como su nombre lo indica, la marca de tu tarjeta de vide, esto evita que tengas que instalar drivers al momento de instalar cosas como X u Wayland.<\/p>\n<h3>LANG:<\/h3>\n<p>Un espacio bastante c\u00f3modo para poder agregar todos los idiomas que quieres que soporte tu sistema, en mi caso yo quiero tener en espa\u00f1ol de Per\u00fa, pero se pueden agregar m\u00e1s para poder cambiar en caso de ser necesario.<\/p>\n<h3>INPUT_DEVICES:<\/h3>\n<p>El formato o driver con el que funcionan tus perif\u00e9ricos, dado que uso GNOME, <em>libinput<\/em> se encarga de mi touchpad. Otra opci\u00f3n bastante conocida pero que est\u00e1 siendo reemplazada es\u00a0<em>synaptics<\/em>.<\/p>\n<h3>LINGUAS:<\/h3>\n<h3>L10N:<\/h3>\n<p>Los que saben de programaci\u00f3n sabr\u00e1n por qu\u00e9 no hay nada en el anterior, sino, miren c\u00f3mo funciona <em>which<\/em> en muchos lenguajes de programaci\u00f3n ;) .<\/p>\n<p>Estas variables permiten saber el lenguaje\u00a0 de los programas instalados, en mi caso tanto en ingl\u00e9s como en espa\u00f1ol est\u00e1 bien.<\/p>\n<h3>RUBY_TARGETS:<\/h3>\n<p>Los <em>TARGETS\u00a0<\/em>muestran otra funcionalidad bastante peculiar de Gentoo Linux. Es posible tener distintas versiones conviviendo dentro del mismo sistema. Esto quiere decir que yo podr\u00eda tener Ruby 21, 22 ,23 y 24\u00a0 al mismo tiempo y sin conflictos, lo mismo que Python, Apache, Tomcat, MariaDB, entre muchos otros. Esta funci\u00f3n se denomina SLOT en nuestra comunidad y es tema para un post completo, por lo que lo dejaremos para otra oportunidad ;)<\/p>\n<h3>GENTOO_MIRRORS:<\/h3>\n<p>Los lugares de donde vas a copiar tu colecci\u00f3n de ebuilds, sirve de manera especial para poder tener puntos de acceso al momento de sincronizar. Yo tengo estos dos de backup, puesto que mi lista de ebuilds la descargo directamente de Github, y solo es necesario hacer git pull para descargar (obviamente, Gentoo lo hace por mi de todas maneras cuando escribo\u00a0<em>emerge &#8211;sync)<\/em><\/p>\n<h3>MUCHO M\u00c1S:<\/h3>\n<p>Estas no son todas las opciones de\u00a0<em>make.conf<\/em>, existen muchas m\u00e1s, y probablemente algunas permitir\u00e1n mayores ventajas o configuraciones, pero con esas es m\u00e1s que suficiente para tener un sistema funcional :)<\/p>\n<h2>\/etc\/portage:<\/h2>\n<p>Les presento un poco de lo que existe dentro de esta carpeta, solo para que se puedan hacer una idea de lo que falta por conocer y que iremos viendo en estos d\u00edas y posts :)<\/p>\n<figure id=\"attachment_77129\" aria-describedby=\"caption-attachment-77129\" style=\"width: 745px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_012.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77129\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_012.bmp\" alt=\"\" width=\"745\" height=\"55\" \/><\/a><figcaption id=\"caption-attachment-77129\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<h2>Un poco m\u00e1s:<\/h2>\n<p>Como no puedo dejar de comentar un poco m\u00e1s, me adelantar\u00e9 un poco y les mostrar\u00e9 una parte especial de esta carpeta, el archivo <em>make.profile<\/em>. Los perfiles de Gentoo te permiten generar configuraciones especializadas para cada tipo de usuario, as\u00ed no es necesario que escribas o conozcas todos los USE, o muchas cosas m\u00e1s, simplemente puedes escoger un perfil y empezar sobre ese. Esta es la lista actual de perfiles que tenemos en Gentoo el d\u00eda de hoy.<\/p>\n<figure id=\"attachment_77130\" aria-describedby=\"caption-attachment-77130\" style=\"width: 516px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_013.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77130\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_013.bmp\" alt=\"\" width=\"516\" height=\"396\" \/><\/a><figcaption id=\"caption-attachment-77130\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>Como pueden ver, mi perfil est\u00e1 seleccionado con amd64, un desktop, con GNOME y usando systemd. Al seleccionar este perfil me aseguro que todos los USE flags y dem\u00e1s configuraciones sean los m\u00ednimos requeridos para tener mi sistema corriendo, y en base a eso yo hago los retoques. (Seguro alguno que otro cre\u00eda que tendr\u00eda que pensarlo todo desde cero&#8230; eso es mentira aqu\u00ed ;) )<\/p>\n<p>Como podemos ver, perfiles son muchos, y cada uno con sus beneficios propios.<\/p>\n<h2>Para terminar:<\/h2>\n<p>Bueno, otro post que se va de mis manos para sus ojos :) espero que las ansias de probar Gentoo ya los tenga bastante impacientes :D as\u00ed podr\u00e9 sentir una emoci\u00f3n mayor al momento de crear la gu\u00eda de instalaci\u00f3n. Saludos a todos,<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Wow, veo\u00a0una\u00a0gran acogida\u00a0a mis\u00a0peque\u00f1os aportes y me motiva mucho m\u00e1s a poder seguir compartiendo con esta bella comunidad. Ya s\u00e9 que he prometido una gu\u00eda de menos de 20 pasos, pero tendr\u00e1n que comer ansias un poco todav\u00eda&#8230; Es que sencillamente no puedo empezar un tutorial de Gentoo sin detenerme a hablar de su &hellip; <a href=\"https:\/\/blogs.gentoo.org\/chrisadr\/2017\/10\/17\/gentoo-el-corazon-de-la-bestia\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Gentoo: El coraz\u00f3n de la bestia<\/span><\/a><\/p>\n","protected":false},"author":169,"featured_media":37,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[3],"jetpack_featured_media_url":"https:\/\/blogs.gentoo.org\/chrisadr\/files\/2017\/10\/gentoo-heart.jpg","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts\/20"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":1,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"predecessor-version":[{"id":21,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts\/20\/revisions\/21"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/media\/37"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/tags?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}