|
|
GoboLinux FAQTraducido por: Carlos Rica ¿Qué demonios es GoboLinux?GoboLinux es una distribución de Linux que posee una nueva organización del sistema de archivos, que difiere de la organización tradicional heredada de Unix que tienen los sistemas Linux. Básicamente, esto significa que no está basada en directorios como /usr y /etc. La idea principal de esta jerarquía alternativa es almacenar todos los archivos pertenecientes a una aplicación en su propio subárbol independiente; De este modo, tenemos directorios como /Programs/FooPlayer/1.0/lib. Para permitir al sistema encontrar estos archivos, éstos se agrupan lógicamente en directorios como /System/Links/Executables, el cual, como habrás adivinado, contiene enlaces simbólicos a todos los archivos ejecutables de la jerarquía Programs. Para mantener compatibilidad hacia atrás con las aplicaciones tradicionales de Unix/Linux, existen enlaces simbólicos que imitan el árbol Unix, como "/usr/bin -> /System/links/Executables", y "/sbin -> /System/Links/Executables" (este ejemplo muestra que también se ha eliminado cualquier distinción arbitraria entre archivos de la misma categoría).
No. De hecho, fue motivado para satisfacer las necesidades de usuarios
que prefieren instalar aplicaciones a partir de los paquetes fuente
originales en lugar de dejar que lo haga la distribución. Esta es la
razón principal por la cual cada aplicación tiene su propio directorio:
De este modo, puedes instalarla a partir del fuente y después borrarla
con un "rm -rf". Así que, como se puede ver, GoboLinux ha sido diseñada
para el usuario con experiencia a quien no le gusta que las cosas sean
"automágicas". Nuestros scripts simplemente automatizan procesos, pero
no "toman decisiones", y si alguna vez tienen que hacerlo, entonces
preguntan primero.
La colección de paquetes binarios fue creada como una manera de evitar
duplicación de esfuerzos entre los usuarios. El proyecto Compile fue
creado para almacenar las "reglas de compilación" de los paquetes fuente
originales de las aplicaciones, dado que no hay ningún estándar único
sobre cómo compilar las aplicaciones en Linux. No deseamos introducir
ningún "estándar de paquetes" como por ejemplo RPM. Pensamos que no
hay ninguna necesidad de "paquetes" si el .tar.gz original está hecho
apropiadamente. Por ejemplo, cuando una aplicación utiliza las GNU
AutoTools (autoconf, automake...), compilar para GoboLinux es trivial;
para casos no triviales, el proyecto Compile se encarga de acumular el
conocimiento necesario sobre cómo se compilan las cosas.
De todas formas, al tener un árbol de directorios más lógico, GoboLinux
es considerada con frecuencia una distribución conceptualmente más
amigable, en tanto que su estructura es más lógica y menos oscurecida por
limitaciones históricas. Pero no lo hacemos pensando en los principiantes
como objetivo específico (al menos no a corto o medio plazo).
Sí, está lista en el sentido de que puedes, hoy, tener un sistema
operativo completo corriendo 100% con GoboLinux, como ya están haciendo
muchas otras personas de todo el mundo.
Esta pregunta puede dividirse en dos, una sobre el estado de las
herramientas de GoboLinux y otra sobre la disponibilidad de paquetes.
GoboLinux depende de una serie de herramientas que automatizan varias
tareas, como la generación, instalación y borrado de paquetes, y lo que
es más importante, el mantenimiento de los enlaces simbólicos que hacen
que el sistema siga consistente. Estas herramientas son ciertamente
estables, puesto que tienen ya varios años en la actualidad.
Otro asunto importante cuando se utiliza una distribución es la
disponibilidad de paquetes, es decir, software que puedes descargar en
su forma binaria e instalarlo directamente sin complicaciones. En este
aspecto, GoboLinux sigue detrás de otras distribuciones establecidas,
puesto que no tenemos una gran comunidad de desarrolladores y no estamos
basados en ninguna otra distribución como sí ocurre con otras distros,
así que no tenemos ningún otro conjunto de paquetes para basarnos en
ellos. Tenemos, sin embargo, todos los paquetes que se necesitan para
tener un sistema corriendo (todos los paquetes que son parte de los
proyectos "Linux From Scratch" y "Beyond Linux From Scratch, por ejemplo),
más muchos otros, como KDE y todos sus paquetes relacionados, y la lista no hace más que crecer.
Además, tenemos un conjunto incluso más amplio
de recetas de compilación (compilation recipes) para su uso con la
herramienta GoboLinux Compile, que permite crear paquetes a partir
del fuente. El concepto fue creado por Hisham Muhammad. La primera versión de
GoboLinux fue creada por Hisham y André Detsch. GoboLinux ha madurado en un período de dos años. Inicialmente empezó
como un método para instalar programas limpiamente dentro de una cuenta
de usuario normal en la Universidad (como no teníamos disponible el
verdadero árbol de Linux de todas maneras, fue una oportunidad para
rediseñar este árbol). Un día, después de la "Gran Caída del Sistema de Archivos" en la
computadora de Hisham, él tuvo que reinstalar el sistema entero. Eso
fue cuando vino la idea de utilizar, en el nuevo sistema, sólo el árbol
alternativo (el cual, en el sistema previo a la caída, ya contenía
cerca del 80% de todo el software instalado). André estuvo también
considerando reinstalar su sistema Linux, así que él se pasó un fin
de semana en su casa, y ejecutó el procedimiento entero de Linux From
Scratch, cambiándolo para utilizar el árbol de directorios alternativo. El
resultado fue humorísticamente llamado GoboLinux, y, como suele ocurrir
en estos casos, al final se quedó con el nombre. Desde su concepción (explicada en la respuesta anterior), empezamos a
tener más y más usuarios, muchos de los cuales, siguiendo el verdadero
espíritu del Software Libre, también acabaron contribuyendo en el
proyecto. Como en todo proyecto, la gente va y viene, por lo que es
imposible listar todos los nombres aquí, aunque se puede echar un vistazo
a la página del equipo de desarrollo. Nuestro objetivo principal es tener un sistema que disfrutemos usándolo,
y que no sea destruido por un software de mantenimiento de paquetes
que intenta administrar nuestra máquina por nosotros. La mayoría de
las distribuciones de Linux intentan hacer la vida más fácil para el
usuario novato, pero de esta manera están haciendo la vida mucho más
difícil para el usuario más experimentado. No sostenemos que GoboLinux
sea más fácil, solamente que "tiene más sentido". De todas formas, la
gente que lo usa dice que es realmente más fácil de administrar, puesto
que permite entender tu sistema mejor (si es que deseas entenderlo). Como ellos dicen, "la dominación del mundo es sólo un objetivo
secudario". :)
Respuesta corta: Teóricamente sí, pero no, porque nunca lo hemos detectado
(para saber porqué "teóricamente", léase "la respuesta larga"). Respuesta larga: El impacto real del uso de enlaces simbólicos es
posiblemente menor del que piensas. En una distribución de Linux común,
se accede ya a las bibliotecas a través de enlaces simbólicos. En
GoboLinux, nuestros enlaces apuntan directamente al fichero real, así
que hay únicamente un nivel de indirección para alcanzar una biblioteca. Por ejemplo, consideremos libc.so.6. Este está en /lib, el cual es un
enlace simbólico a /System/Links/Libraries, pero el fichero real está en
/Programs/Glibc/Current, donde Current es un enlace a 2.2.3, y dentro del
directorio lib de Glibc tenemos que ese libc.so.6 es de hecho un enlace a
libc-2.2.3.so. Son muchos enlaces, ¿verdad? Sin embargo, las bibliotecas
son accedidas de este modo: el directorio /System/Links/Libraries
(que no es un enlace) es el único que se almacena en la configuración
de ldconfig (y LD_LIBRARY_PATH). Allí libc.so.6 apunta directamente a
/Programs/Glibc/2.2.3/lib/libc-2.2.3.so (y no hay ningún enlace en toda
esa ruta). De este modo, tenemos exactamente un nivel de indirección,
igual que en una distribución de Linux común. Puede que se *vean* muchos
enlaces, pero están principalmente para facilitar el mantenimiento
del sistema. Las aplicaciones también están compiladas asignando a --prefix sus
directorios "home" en /Programs/App/version, por lo que cuando un programa
busca un archivo de datos nunca recorre enlaces. Alcanzar los ejecutables
implica recorrer un enlace, pero, a diferencia de las distribuciones
habituales de Linux, esta no tiene que buscar a través de los elementos
del PATH (y en cualquier sistema moderno la representación en forma
de árbol de un directorio está probablemente más optimizada que el
recorrido de la shell a través de los elementos del $PATH. Desde luego,
siempre está el hash de la shell, pero también, siempre está el caché
del sistema de archivos). Nosotros les persuadimos para que traten con el árbol de GoboLinux a
través de las opciones de compilación siempre que sea posible. Sin
embargo, hay muchos programas que no pueden hacerlo completamente,
teniendo rutas absolutas escritas directamente en el código fuente y
quién sabe cuántas cosas más. Al final, cualquier software libre puede
ser parcheado para adaptarse, pero no tenemos suficiente mano de obra
para hacer esa tarea y mantenerla después. Esto sería, como poco, un
engorro enorme, por lo que generalmente nos gusta reducir los parches
aplicados al mínimo. Al menos /bin, /lib y /sbin son críticos. Hemos
hecho tests en un entorno con "chroot" y es divertido ver todas las
cosas extrañas que ocurren cuando faltan estos directorios.
/Depot es un "área libre" para almacenar tus documentos, como archivos
multimedia, material descargado, etc. Puedes pensar en ello como un "área
comunitaria", un "home para todos los usuarios" (algunos sistemas UNIX
tienen un directorio /pub para este propósito). GoboLinux como sistema
ignora los contenidos de /Depot. Sólo existe para animar a los usuarios
a almacenar sus ficheros temporales en un único lugar y mantener limpio
el resto del sistema de ficheros.
/Files, por otro lado, es un directorio estándar de GoboLinux. Dentro
de él, hay directorios como Fonts y Plugins, donde son almacenados los
ficheros compartidos que requieren las aplicaciones, pero que no son
necesariamente parte de ellas. Exceptuando a Fibo, su leal servidor, nadie que lo haya visto sobrevivió
para contarnos la historia. Aparte de eso, nunca nos hemos arriesgado
a investigar más profundamente en el tema. No preguntes.
Por supuesto que no. :-) Puedes no hacer caso de las dos preguntas
anteriores -- son solamente una de las muchas bromas internas del mundo
GoboLinux. Gobo no exis-- eh, ¿qué es eso? AAAAAHHHH!!!! |