Jotahacker: Programando un gestor de paquetes universal

By pragmart
nhopkg

El siguiente artículo sobre Jotahacker y su proyecto, un gestor de paquetes universal para GNU/Linux (cuando menos), escrito por mí mismo con la colaboración del hacker, aparece publicado en el número 52 de la revista Linux+, que al menos en España podéis adquirir en los quioscos (no en todos), para todos aquellos que no podáis acceder a la revista porque en vuestro país no se publica o vuestras economías no lo permiten, pragmart, Pillateunlinux e Internet resuelven el problema para que nadie se quede con las ganas.

Ojalá este proyecto signifique el comienzo de una nueva era de unificación y universalización del Software Libre en su sistema operativo más funcional y emblemático a día de hoy, nuestro querido GNU/Linux.

Dedicado al hacker, una y mil veces, y a todos los que nos leéis. Un saludo.

Uno de los proyectos más ambiciosos que se me podrían haber ocurrido si me lo hubiese preguntado alguien hubiese sido el de un instalador universal para GNU/Linux. Lo hubiera elegido precisamente porque tanto para las personas que usan habitualmente este sistema operativo como, con más razón, para los recién llegados, la instalación de programas en GNU parece, a día de hoy, una de las cuestiones pendientes más importantes para estandarizar el sistema en los escritorios de todo el mundo.

Dentro de los gestores/instaladores de paquetes “synaptic” es para algunos el rey y “emerge” es dios para otros. Yum, urpmi, pacman, hay muchos, manejables desde terminal o a través de un interfaz gráfico que, aunque permita menos control, ayude a los menos “geeks”. Por fin también se puede compilar directamente desde el código fuente del programa empaquetado para optimizar la instalación. Todo dependerá, en definitiva y salvo en caso de la compilación, de la distribución del sistema que estemos utilizando. Por formas de instalar un programa en GNU/Linux no será, hay casi para todos los gustos. Para todos menos para uno, el de aquellos que preferirían que en GNU/Linux se pudiese instalar el mismo programa de la misma forma en cualquiera de sus distribuciones. El problema para muchos, sobre todo gente que no se ha destetado en este sistema y entre los que me incluyo, que provenimos de otros sistemas como Windows o Mac OS, como es mi caso, es que el único sistema “universal” que existe, el de la compilación, plantea la dificultad de la resolución de las dependencias, es decir, qué paquetes auxiliares y en qué orden instalar para que el programa elegido se ejecute sin ningún problema.

Pues resulta que existe un proyecto español que tiene mucho que ver con todo lo dicho hasta ahora y que parece destinado a convertirse en el instalador estándar usado por todos, la inmensa mayoría en cualquier caso, en no demasiado tiempo, que puede significar un gran avance hacia la unificación de todo este mundillo “disperso” del GNU y que puede contribuir a auparlo hasta el primer puesto de los sistemas operativos de escritorio y empresariales, comerciales o no, más usados del mundo. Se llama Nhopkg.

Ahora un poco de historia, primero sobre el “hacker” a cargo de la tarea: Jotahacker.

Jotahacker es el “nick” de un chico nacido el 24 de Septiembre de 1991, normal y corriente (o no tanto), de Guadalajara (España) que se llama Jaime Gil de Sagredo Luna, según sus propias palabras “seguidor y defensor del Software Libre”, aficionado a la informática y a casi todo lo que esté relacionado con las nuevas tecnologías. Estudia en uno de los institutos públicos de esta localidad 2º de Bachillerato por la rama de Ciencias de la Naturaleza y de la Salud y, como premio a su esfuerzo y valía, obtiene unas respetables buenas notas y tiene previsto estudiar Ingeniería Informática Superior.

Quizá estemos hablando, sin saberlo con certeza a día de hoy, de una de esas personas llamadas a cambiar radicalmente el panorama tecnológico, y eso significaría la vida, de todos nosotros a no mucho tardar. Tiempo al tiempo, que se dice en estos casos.

Es decir, estamos hablando de que es un brillante joven de 17 añazos el que ha emprendido un proyecto como éste con la modestia, sinceridad, claridad de ideas y, por qué no, locura que sólo manifiestan aquellos llamados a llevar a cabo grandes empresas, demasiado gravosas y complicadas para el común de los mortales. Suena como es.

Jotahacker es autodidacta y sus conocimientos informáticos sobre ordenadores, sistemas operativos y programación los aprendió, los aprende cada día, delante de un ordenador en su casa, en su habitación.

El “gusanillo” de la programación le picó hará como tres o cuatro años, antes de que supiera siquiera que existía un sistema llamado GNU. Empezó programando en VB.NET y Visual Basic. Hacía sus pinitos en estos dos lenguajes de programación “porque era lo que tenía más a mano”. Más tarde, ya con GNU/Linux, fue aprendiendo algo de PHP, SQL, y varios lenguajes más aunque de forma no muy estricta. El último lenguaje que aprendió fue Bash, el shell scripting, y es con éste con el que más ha trabajado porque, aunque sencillo y quizá mucho menos avanzado que otros, siempre ha servido bien a sus necesidades. Nhopkg, por ejemplo y para no ir más lejos, está programado en Bash.

Empezó a usar sistemas operativos GNU/Linux en sus ordenadores hará unos dos años más o menos. La razón fue que durante el verano se quedó sin su ordenador y no podía esperar a conseguir otro, por lo que se decidió a devolver a la vida su viejo PC (Intel Celeron 300 Mhz y 64 Mb de RAM) intentando instalar en esta máquina una distribución de GNU/Linux. Conocía algo sobre que existían distribuciones ligeras de este sistema para PCs con pocos recursos, de modo que se hizo con varias y fue probando. Al final todo funcionó a la perfección, incluida la tarjeta WIFI, que fue lo que más le costó. A partir de entonces, cuando por fin consiguió su ordenador nuevo, siempre ha usado GNU/Linux en todas sus computadoras. Empezó con Ubuntu y actualmente usa Fedora.

El primer proyecto que abordó y del que derivan todos los demás fue la creación de una distribución de GNU/Linux. Una cosa tenía clara por aquel entonces, no estaría basada en ninguna de las existentes (Debian, Ubuntu, Fedora…) sino que partiría de cero para crear algo “nuevo y diferente”. Con esa premisa inicial se decantó por crear una distribución LFS (Linux From Scratch), ayudado por la gran cantidad de información que facilitan. Tanto ímpetu no era recompensado por aquel entonces con resultados visibles y los problemas y dificultades se multiplicaban mientras “Jotahacker” buscaba una versión definitiva para lanzar su distro. Según sus propias palabras “al ser un proyecto tan poco pensado y meditado (al contrario de como debería haber sido) siempre había errores muy básicos que le impedían llegar a liberar la versión definitiva”. Uno de los problemas con los que se encontraba era la falta de un gestor de paquetes que facilitase la instalación y desinstalación de software para reemplazar fácilmente aquellos paquetes que resultaran problemáticos o poder probar diferentes versiones de un mismo paquete. Así surgió “Nhopkg”.

Nhopkg nació como un pequeño script en Bash destinado a instalar y desinstalar paquetes binarios para su proyecto de distribución LFS con el fin de facilitar en la medida de lo posible la gestión de software a los usuarios finales, empezando por él mismo. Su primera versión, la 0.1, fue liberada bajo la licencia GNU GPL v2 a través de Sourceforge.net que aprobaron el proyecto y contaba con apenas 122 líneas de código (la 0.4 tiene ya 737 líneas de código) enteramente escrito por Jotahacker. De momento no ha utilizado en su programa líneas de código escritas por otros, como pudiera haber hecho aprovechando la licencia GPL y la libertad que ésta concede en este aspecto, con el fin de simplificar y acelerar la creación de software de calidad y salvando, rescatando en otros casos, el código de los taimados secretismos y de las apropiaciones perpetradas por las multinacionales del software privativo.

Nhopkg toma su nombre de dos fuentes. La primera es el proyecto en el que iba a ser incluido, que se iba a llamar “nhoax”, la segunda es el característico “pkg” que hace alusión a los paquetes de software. De la primera se toma el “Nho”, de la segunda el “pkg” y ¡listo!, un nombre con todo el sabor de Unix, sí señor.

Las necesidades fueron surgiendo, había que añadir a Nhopkg la funcionalidad de crear paquetes binarios a partir del código fuente de los programas. Jotahacker empezó a trabajar en ello desde la versión 0.2 sin que ésta aún incluyese la mejora. En la versión 0.3 decidió que los binarios se crearían a partir de paquetes “fuente” específicos para Nhopkg. Esta versión contó con ciertas mejoras y corrección de errores pero no sería hasta la versión 0.4, la actual versión estable, cuando se añadió por fin esta posibilidad. También se añadió un asistente para la creación, a partir de un paquete de “fuentes” convencional (.tar.bz2 o .tar.gz) un paquete de fuentes para Nhopkg (-src.nho). Sin lugar a dudas fue esta versión, la 0.4, la que mayor número de nuevas funcionalidades y mejoras ha sufrido a la espera, eso sí, de la 0.5 prevista para Febrero de 2009 y fue a partir de este momento, el lanzamiento de la versión 0.4, cuando el proyecto alcanzó la madurez suficiente para que Jotahacker se diese cuenta que podía aspirar a ciertas metas que en un comienzo ni se le hubiese ocurrido plantearse, como es transformar su pequeño y modesto script en bash en un gestor de paquetes universal para ser usado fácilmente por todo el mundo y en cualquier distribución, no sólo por él y en la suya propia.

Con la versión 0.4 de Nhopkg su primer proyecto, la creación de una distribución LFS, despertó de nuevo al poder construir de forma completa un sistema LFS básico sin ningún problema, no siendo el único que lo ha hecho hasta la fecha, pues a pesar de la corta vida del programa ya hay un proyecto libre, también basado en LFS, al que Nhopkg se adapta muy bien, que lo utiliza como gestor de paquetes por defecto. Se trata de la distribución venezolana Vegnux.

La versión 0.4 también ha significado un enorme salto mediático para Jotahacker y su Nhopkg, pues en webs y blogs se han multiplicado los artículos hablando de él y de su notorio gestor de paquetes (así nos conocimos). Propuestas para participar, e incluso unirse, en otros proyectos o la aparición de voluntarios para traducir el programa a otros idiomas han sido sólo algunos de los “efectos colaterales” de este miniestallido mediático en Internet.

Actualmente Jotahacker está trabajando en la versión 0.5 e incluso por primera vez ha anunciado una fecha de lanzamiento, el 1 de Febrero de 2009. Muy al estilo Debian este lugar en el calendario es tan sólo una referencia y se puede posponer el lanzamiento de la última versión del gestor de paquetes, puesto que prima la corrección de errores y el dejar el programa lo más hilvanado posible frente a la exactitud en el plazo de entrega. Lo importante es que contenga el mínimo número de errores posible.

En esta versión se saldará una cuenta pendiente que aún no se había saldado en anteriores versiones, la gestión de las dependencias, algo que facilita muy mucho a cualquier usuario la transición al sistema GNU desde otros sistemas operativos donde no existe el concepto de “dependencia”. La 0.5 cuenta con un gestor de dependencias que nada tiene que envidiar a otros más conocidos y comúnmente utilizados en las principales distribuciones de GNU/Linux sobre el planeta que indagará en nuestro sistema buscando si cumple todos los requisitos para la perfecta instalación y ejecución de cualquier programa que deseemos instalar y, caso de no encontrarlo todo en orden, nos ayudará a solventar sencilla y muy rápidamente la situación. No olvidemos que al ser universal Nhopkg hará todo este trabajo por nosotros sobre cualquier distribución.

Otra mejora es la significativa reducción del tiempo que Nhopkg tarda en crear los paquetes binarios. A partir de esta versión no habrá que esperar demasiado incluso con los paquetes más pesados. También tendremos, a partir de ahora, información sobre el paquete que estemos instalando, como puede ser descripción sobre el paquete, licencia usada, arquitectura del procesador, fecha de instalación, etc. Habrá un cambio de licencia, de la versión 2 de la GPL con que están licenciadas las versiones anteriores a la versión 3 de dicha licencia. Habrá muchas pequeñas mejoras que apenas se notarán “desde fuera” pero que aumentarán el rendimiento y la eficacia del programa. Por ejemplo, aunque todavía no está decidido si entrará en esta última versión (0.5), Jotahacker está trabajando en una opción (en realidad serán varias) para que desde el mismo Nhopkg se puedan transformar paquetes .deb, .rpm y .tgz (usados por otros gestores de paquetes) a los paquetes .nho sin necesidad de tener instalado ni dpkg, ni rpm, ni, en definitiva, sus correspondientes gestores de paquetes. Esto ya lo hace “alien” pero para ello necesita que estén instalados “rpm” y “dpkg”, detalle que nos revela la importancia y novedad de esta “pequeña mejora”.

Los proyectos de futuro de este excepcional estudiante de Bachillerato están liderados, y supeditados, al desarrollo y evolución de Nhopkg. De él depende el futuro lanzamiento de su distribución, que será 100% libre, y el desarrollo de un “gran proyecto” que se apoya en los dos anteriores y del cual de momento no desvelaremos nada, por lo imprevisible de su desarrollo, salvo que estará ligado a la divulgación del Software Libre.

Poco queda ya por contar sobre uno de los proyectos más interesantes y cercanos que un joven y brillante hacker nos brinda con esa fuerza que dan el genio y la juventud a partes iguales. Cualquier persona que esté interesada en colaborar con Jotahacker o simplemente obtener más información o que esta sea de primera mano, revelada por el propio autor del proyecto, que no dude en pasar por la web del proyecto (http://Jotahacker.es/) y ponerse en contacto con él.

Jotahacker es consciente de que por delante hay mucho más trabajo que lo ya hecho, muchas dificultades, más de las imaginables, tanto técnicas como humanas que sembrarán el desarrollo de algo tan sonoro y con tanta proyección como este gestor de paquetes. Preguntas como si reaccionarán bien los usuarios a su propuesta o si intereses ajenos al desarrollo de software intentarán impedir la implantación de Nhopkg en las grandes distribuciones sólo pueden contestarse día a día, con el paso del tiempo. Qué duda cabe que la suerte, esa manera tan humana de intentar poner de nuestro lado el complejo sistema de impredecibles acontecimientos futuros, es quizá el factor más determinante de todos a la hora de sacar adelante un proyecto tan brillante y ambicioso. Si es suerte lo que necesita suerte le deseo, porque no me cabe duda que con todo lo demás sabrá lidiar.

Para terminar, mi más sincero agradecimiento a la persona, Jaime Gil de Sagredo Luna, que ha sido desde el primer momento en que los bits comenzaron a fluir entre él y yo una persona amable y cercana que no ha dudado en ofrecerme toda la información que le haya podido solicitar para la redacción de este artículo, facilitándome con ello la tarea enormemente.

A veces, por fortuna, son excepcionales el genio y la persona; es entonces cuando el mundo comienza a brillar.

Etiquetas: , , , ,

5 comentarios para “Jotahacker: Programando un gestor de paquetes universal”

  1. luzbelito92 Dice:

    Sería, la verdad, EL paso que daría GNU/Linux…

  2. Augus.to Dice:

    el proyecto realmente es bueno y admirable.
    lo único que tengo para decir es que el nombre… tiene 5 consonantes y solo una vocal, es decir, muy poco pegadizo. tal vez un nombre más sencillo le daría una imagen mucho mejor (no olvidemos lo que pasa con GNU/Linux)

  3. uke Dice:

    Sencillamente brillante. Este es el espiritu de la comunidad, y una de las cosas por las que uso software libre.

  4. kiefer Dice:

    Estoy totalmente convencido como tu pragmart, a nhopkg y a jotahacker solo les depara el éxito. Hecho que por transitividad, también repercutirá positivamente en nosotros

  5. jotahacker Dice:

    Gracias por los comentarios ;)

    @Augus.to la verdad que tienes razón, no es un nombre muy fácil de aprender, habrá que dar clases para pronunciarlo :D Además el tema del nombre es algo que se está planteando, así que no se sabe si al final tendrá otro nombre…

    Un saludo!

Escribe un comentario