Quiero comenzar aclarando que este sencillo artículo no es una guía de como crear una distribución GNU/Linux. Mi intención, al menos por esta vez, es dejar claro que Linux no es tan complicado como parece, al extremo que tú, si tu mismo que me lees, podrías ser capaz de crear tu propia distro GNU/Linux con un poco de paciencia, tiempo y curiosidad. También se necesita sentido común, ingrediente que no puede faltar y que en ocasiones al leer las dudas de muchos usuarios parecería que es algo que está en falta o que es tan escaso como la carne de… de tiranosaurio 🙂 .
Por otro lado, los puntos que a continuación les dejo no se basan en artículos o metodologías diseñadas por otros, sino sencillamente en la experiencia personal de un usuario casi aficionado que cada día demuestra que GNU/Linux (en lo adelante Linux, aunque doy por sentado que sabes que lo correcto es escribirlo completo) no es tan difícil. Los más avanzados (y de seguro cualquiera de los que están leyendo ahora mismo es más avanzado que yo), pueden discrepar y de hecho se que lo harán (ojalá lo hagan saber en los comentarios).
¿Puedes crear tu propia distribución Linux?
Si te sientes necesitado de hacerlo y no tienes miedo, seguro que podrás. Pero, si existe ya una distribución que puedas instalar y colma tus expectativas, entonces ¿Para que aventurarte a crear algo nuevo?
Esta última pregunta no seré yo quien la responda, te toca a ti saber si necesitas o no crear algo nuevo. Si tu respuesta es positiva entonces surge otra pregunta: ¿Lo nuevo que puedas crear podrá considerarse una “distribución Linux”?
Bueno, los conceptos son los conceptos, así que veamos la definición de “distribución Linux” que más a mano tenemos. Según la Wikipedia:
Una distribución Linux (coloquialmente llamada distro) es una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios. Además del núcleo Linux, las distribuciones incluyen habitualmente las bibliotecas y herramientas del proyecto GNU y el sistema de ventanas X Window System. Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye también otro tipo de software como procesadores de texto, hoja de cálculo, reproductores multimedia, herramientas administrativas, etc. En el caso de incluir herramientas del proyecto GNU, se denomina distribución GNU/Linux.
Creo que cualquier engendro por malo que salga, hecho por ti desde cero o a partir de algo pre existente, si se acopla a la anterior definición entonces podrás llamarla distro linux, incluso en el caso extremo que necesites satisfacer las necesidades de un grupo específico de usuarios conformado exclusivamente por ti (créeme, se lo que es eso).
Necesaria aclaración
Ahora que he logrado que tu mente se crea el cuento de que puedes crear tu propia Distribución Linux llegó el momento de trazar una delgada línea que separa dos cosas bien diferentes.
En ocasiones algunos usuarios llaman distros linux creadas por ellos a un sistema operativo GNU/Linux conocido por todos (sea Ubuntu, Fedora, ArchLinux, OpenSUSE o cualquier otro) con un wallpaper diferente, un tema de íconos de su gusto y un panel movido de lugar. jejejeje, sin ánimos de burla, eso es una distro, claro que si, pero no deja de ser la distro original. Usted lo único que ha hecho es tunear su distro, algo similar a lo que hacías anteriormente (y quizás sigas haciéndolo en el silencio de la noche) en la versión de Windows de turno. Aclarado esto: no confundamos tuneo con lo que quiero comenzar a hacerte entender a parir de ahora.
Sigamos con la creación de una distro
Para crear algo que se pueda llamar distro hay que generar novedad, algo que se diferencie de lo ya existente y que satisfaga las necesidades de quien sea pero de un modo peculiar. Desde mi punto de vista ignorantoide, me atrevo a subdividir los diferentes resultados productos del intento de crear una nueva distro en varios niveles según la complejidad:
- Remasterizado: Es lo más sencillo y compartible que podrías crear y se parece al tuneo pero tal vez con un poco más de avance y complejidad técnica. Se caracteriza porque todo el trabajo lo hacemos modificando un sistema GNU/Linux instalado en nuestra PC física o virtual. Además de cambiar el artwork, eres capaz de generar un ISO instalable para poder compartir el resultado con otros. Generalmente no te sales de lo instalable a través del sistema de paquetería de la distro madre utilizada y mucho menos urgas en el sistema de archivos sea por vagancia o porque desconoces la jerarquía de este. Si bien algunos llaman “distribución” al resultado obtenido y otros incluso la bautizan con nombre propio, yo prefiero llamarla simplemente “remasterización”. Puedes y creo que debes comenzar por esta etapa. Aplicaciones de remasterizado hay muchas, no te voy a recomendar ninguna, búscalas por ti mismo revisando Foros y más foros al respecto.
- Distro hija: Esto creo que es lo más común (DistroWatch no me dejará mentir). Lleva un poco más de conocimiento y tiene como objetivo generalmente llevar una distribución determinada a otro nivel muy específico partiendo del trabajo aportado por su distribución origen. A partir de los repositorios originales de una distribución respetada y con amplio soporte, los que optan por este nivel ahorran tiempo pero aportan muchas cosas tales como: nuevo artwork incluido un trabajo a nivel de entornos de escritorios, nuevos instaladores del sistema operativo resultante, mejora en el manejo del sistema de paquetería (sin salirse de la línea de su predecesor) y no puede faltar la inclusión de numerosos scripts que mejoran a nivel funcional el producto final. En este nivel si metemos las garras en el sistema de archivo ya que ahí radica la magia de toda distribución Linux, por ejemplo, si dominas todo el contenido de /etc y sabes que tocar podrías obtener un resultado bastante a tu medida, si logras conocer a plenitud todo el contenido de /usr y sabes donde tocar entonces me quito el sombrero ante ti. Ya en este nivel, muchos de tus aportes a la causa vienen gracias a que te atreves a compilar tus propios paquetes, no todos pero si aquellos que tu progenitor no incluye o que los incluye con configuraciones que tal vez no necesites o no aceptes o no se adapten a tus necesidades o la de tu grupo de usuarios elegidos como target del proyecto. Ejemplos avanzados de productos a este nivel lo tenemos en Ubuntu basado en Debian con más de 10 años de existencia pero aún con total dependencia del trabajo del equipo Debian. Linux Mint, con mayor dependencia de Ubuntu. NOVA con dependencia ya ni sabe de quien y llamado a veces por muchos como el “remasterizado cubano de Ubuntu” (ojo, yo no comparto esto último ¿o si?). Manjaro poniendo a su progenitor ArchLinux al alcance de todos y un largo etc.de ejemplos. El caso de CentOS podría estar entre este nivel pero en un grado bastante profundo.
- Distro hija bastarda: La verdad que no sabía como llamar este tercer grupo. Son las distribuciones creadas a partir de un progenitor pero con componentes e incluso filosofías de otras totalmente diferentes. Unos dicen que KaOS es “From Scratch” (grupo que veremos a continuación) pero yo prefiero ubicarla en este grupo. Mandriva en su época ¿Donde la pondrías?
- From Scratch: Ya eso incluye un máximo nivel. Crear tu propio Linux From Scratch (LFS) es como elevar tus skills al infinito y más allá. Como su nombre indica es la creación desde cero de un sistema GNU/Linux. Las grandes distribuciones que sobreviven aún a nuestros días fueron hechas desde cero: Red Hat, Slackware, Debian, ArchLinux y algún que otro etcétera 🙂 . Si tienes suficientes habilidades y una conectividad a Internet como Dios manda tal vez quieras aventurarte por este camino
Leer, tarea que los novatos nunca quieren hacer
Muchos usuarios noveles tratan de encontrar las respuestas a sus dudas de manera masticada en los diversos Foros de soporte. Muchas veces se sienten frustrados al recibir respuestas que los remiten a tal o mas cual documentación. En ocasiones olvidamos que los usuarios avanzados, gracias a sus grandes habilidades adquiridas y abundante conocimiento, son los que menos tiempo tienen para masticarte las respuestas, aún así tienen la delicadeza de mostrarte el mejor camino, un camino labrado tramo a tramo por ti mismo: Leer cuanta documentación tengas a mano, probar cuantas soluciones aparezcan, ir labrando tu propio camino y creando tu propio librito porque algún día tu también serás maestro.
Por algo se empieza
Distribuciones de calidad sobran en el ecosistema GNU/Linux y no soy de los que abogan por sofreir y volver a sofreir distribuciones pero, si al menos en el intento de crear algo propio adquirimos más conocimiento, entonces, si tenemos la necesidad ¿Por qué no intentarlo?
Devuan sería una distro Linux bastarda 😀
Debian-Hurd transmutado en un Ubuntu-Hurd, eso si sería novedoso.
Una vez remasterizé Linux Puppy 528… le quité cierta cantidad de paquetes que no necesito y le instalé otros cuantos más del repo de ubuntu, le cambié el boot splash y hasta el día de hoy lo uso de vez en cuando para arrancar cuánta máquina vieja (o nueva) se me ponga delante.
Interesante la idea que planteas Maikel. Esa es una de las ventajas fuerte que tiene el software libre, de tocar las cosas con la mano y adaptarla a mis necesidades. Me gustaría ver las caras que pondrían en mi empresa si hiciera algo así como un DVD de instalación para mi empresa donde queden solo los programas establecidos, configurada las plantillas de correo y de office y wallpaper con el logotipo corporativo, todo automatizado. Que solo entre el nombre del usuario, el numero IP y puerta de enlace durante la instalación. Terminando con la red configurada y programas, seleccionando los tipos de impresoras que va a usar la pc y queden configuradas. Y no hacerlo para llevarme la gloria sino para mostrarle lo potente, robusto y flexible que es Linux y los beneficios que puede brindarnos para nuestra sociedad. Lastima que sea un principiante.
Créeme, no hay que ser tan avanzado para hacer eso que necesitas en tu empresa, te lo digo en serio. Solo es cuestión de proponértelo firmemente, visualizarlo como algo realizable y estudiar un poco…
Lo estoy viendo como un reto. No le tengo miedo a estudiar. Podrías hacer un manual con lo básico para poder realizarlo? si tuvieras información relacionada con el tema a compartir te lo agradeceré.
Muy buen articulo, muchas gracias, pero si yo quisiera compilar la distribución de Kubuntu por ejemplo, desde agregarle cosas al wizard de instalacion hasta poner paquetes pode defecto, como hacer un fork de kubuntu. Porque en realidad lo que me hace falta es agregarle una serie de programas por defecto pero que se puedan seleccionar si los quieres instalados o no, a parte de las configuraciones generales como el source.list y de los programas instalados.
He buscado información en la red pero no se que camino tomar. Si alguien me ilumina se lo agradecería.