Dependencias y Meta-paquetes en Canaima 3.x

Para muchos es conocido el error de Canaima 3.0 que se presenta cuando intentamos desinstalar algún paquete que forme parte del sistema básico o que sea una dependencia del mismo, dicho error provoca que desinstalar una aplicación sencilla, nos elimine una cantidad grande de aplicaciones, en ocasiones hasta el servidor gráfico, incluso si la aplicación que estamos desinstalando no tiene nada que ver con estos paquetes que se remueven del sistema sin necesidad. La causa este comportamiento es debido a un problema de “Dependencias Cruzadas”, como hemos optado por llamarlo. Definamos un poco antes de entrar en detalles.

Paquete:

Un paquete es un archivo instalable el cual contiene tanto la aplicación que queremos instalar como los valores de configuración necesarios para que la misma funcione en nuestro sistema. También encontraremos paquetes que sólo realizan tareas de configuración y paquetes que simplemente cumplen la función de llamar a otros paquetes.

Dependencia:

Las dependencias son todos aquellos paquetes que son necesarios para que una aplicación funcione correctamente. La resolución de las dependencias en Canaima la realiza la Advanced Packaging Tool (APT) de Debian, esta herramienta se encarga de instalar los paquetes necesarios para que una aplicación funcione y de desinstalar las aplicaciones cuyas dependencias no sean satisfechas (y por aquí comienza el problema de las Dependencias Cruzadas de Canaima 3.0).

Meta-paquete:

Es un paquete cuya funcionalidad es simplemente ‘depender’ de otros paquetes para conformar así un conjunto completo de aplicaciones instalable de manera sencilla. Un ejemplo de meta-paquete en Canaima 3.0 es el paquete ‘canaima-web’, este meta-paquete depende de varias aplicaciones que conforman las aplicaciones web de Canaima, entre ellas se encuentran por ejemplo:

  • Turpial
  • Cunaguaro
  • Guacharo

Es decir, si instalamos el paquete ‘canaima-web’, el mismo nos hará el llamado automático a los paquetes necesarios para que estas aplicaciones se instalen en nuestro sistema. Del mismo modo, si desinstalamos una aplicación de las mencionadas anteriormente, la resolución automática de paquetes de APT nos indicaría que se debe desinstalar el meta-paquete ‘canaima-web’ y eso es correcto, la desinstalación de un meta-paquete es segura ya que el mismo no arrastrará a todas sus dependencias para que sean desinstaladas sino que se desinstalará él sólo.

Funcionamiento correcto de los Meta-Paquetes:

Como mencionaba anteriormente el funcionamiento correcto de los meta-paquetes es:

Al instalar un meta-paquete se instalará él, más sus dependencias. En el ejemplo siguiente instalaremos el meta-paquete ‘escritorio-canaima’ el cual se instalará con todas sus dependencias como muestra el árbol a continuación (OJO: se trata de un ejemplo ficticio con fines explicativos):

[escritorio-canaima]
|
+-(el-chat)
|
+-(la-bienvenida)
|
+-[estilo-visual]
  |
  +-(los-iconos)
  |
  +-(animacion-inicial)

Siguiendo el mismo ejemplo, si quisiéramos desinstalar ahora el meta-paquete ‘escritorio-canaima’, simplemente se desinstalaría él sólo, sin arrastrar las otras dependencias que ya se instalaron con él. Quedando el árbol de la siguiente manera:

(el-chat)

(la-bienvenida)

[estilo-visual]
|
+-(os-iconos)
|
+-(animacion-inicial)

Como se puede observar, ha desaparecido el meta-paquete ‘escritorio-canaima’ pero sus dependencias siguen correctamente instaladas en el sistema.

Ahora bien, si en vez de haber desinstalado el meta-paquete ‘escritorio-canaima’, hubiésemos decidido desinstalar sólo el paquete ‘los-iconos’, simplemente porque no nos gustaron los iconos y queremos deshacernos de ellos para ahorrar espacio en nuestro disco, el árbol de dependencias reaccionaria de esta manera:

Árbol Original (al instalar):

[escritorio-canaima]
|
+-(el-chat)
|
+-(la-bienvenida)
|
+-[estilo-visual]
  |
  +-(los-iconos)
  |
  +-(animacion-inicial)

Árbol al remover ‘los-iconos’:

(el-chat)

(la-bienvenida)

(animacion-inicial)

Como ven, se han removido tanto ‘los-iconos’ como los meta-paquetes ‘estilo-visual’ y ‘escritorio-canaima’. Esto se debe a que al desinstalar ‘los-iconos’ el meta-paquete ‘estilo-visual’ no cumple todas sus dependencias por lo tanto se remueve. Luego, al faltar el ‘estilo-visual’ las dependencias de ‘escritorio-canaima’ no están completas por lo que este meta-paquete también se remueve.

Sin embargo, es de notar que, aunque los meta-paquetes ‘estilo-visual’ y ‘escritorio-canaima’ han sido removidos con ‘los-iconos’, todas las demás dependencias permanecen satisfactoriamente instaladas y pueden seguir siendo disfrutadas por el usuario. En este punto es importante recordar que un meta-paquete simplemente ‘depende’ de otros paquetes, por lo tanto el haberlos desinstalado no nos afectará las demás aplicaciones que permanecen instaladas.

En otras palabras, luego de instalar nuestro ‘escritorio-canaima’ podemos desinstalar sin problemas ‘los-iconos’ sin que esto nos impida en el futuro seguir disfrutando de ‘el-chat’, ‘la-bienvenida’ y la ‘animación-inicial’.

El Problema de las “Dependencias Cruzadas”:

En los ejemplos anteriores conocimos el funcionamiento correcto de los meta-paquetes, por lo que ahora nos dedicaremos a conocer las causas del problema que ocasiona que, en la versión 3.0 de Canaima GNU/Linux, al desinstalar una simple aplicación resulte en la remoción de otras aplicaciones adicionales que nada tienen que ver una con la otra.

¿Quieres ver el ejemplo?, pues si tienes Canaima 3.0 intentemos desinstalar ‘bash-completion’ el cual es sólo una aplicación que permite que cuando usemos la consola podamos completar palabras usando la tecla TAB (tabulador). La desinstalación de este paquete sólo debería resultar en la remoción de él mismo más ‘canaima-base’ que es el meta paquete que lo instala originalmente en nuestro sistema. Sin embargo, encontraremos una lista larga de paquetes y meta-paquetes que desaparecen innecesariamente, aquí mencionamos algunos:

* canaima-acerca: Es un dialogo en el menú de Gnome con los créditos de Canaima GNU/Linux.
* canaima-plymouth: Es la animación que se muestra mientras arranca el sistema.
* canaima-bienvenido: Es una pantalla de bienvenida que se muestra al iniciar Gnome.
* canaima-chat: Es un paquete de configuración que permite al usuario acceder al chat de Canaima con un click.

Como verán, estas aplicaciones nada tienen que ver con la consola y mucho menos con completar palabras que es básicamente el único uso de ‘bash-completion’. Entonces, ¿por qué se desinstalan?.

Es aquí donde las Dependencias Cruzadas hacen su juego maquiavélico. Volvamos al ejemplo inicial donde mostrábamos el funcionamiento de los meta-paquetes y sus dependencias:

[escritorio-canaima]
|
+-(el-chat)
|
+-(la-bienvenida)
|
+-[estilo-visual]
  |
  +-(los-iconos)
  |
  +-(animacion-inicial)

En dicho ejemplo todas las dependencias iban de arriba hacia abajo, es decir, ‘escritorio-canaima’ depende de ‘el-chat’, ‘la-bienvenida’ y el ‘estilo-visual’. De esa manera está todo correcto pero ¿qué sucede si aparte de esas dependencias descendentes colocamos dependencias de abajo hacia arriba?. En este caso es que se produce lo que denominamos las Dependencias Cruzadas. Ejemplo:

[Paquete A] >>-- depende de ---> [Paquete B]
[Paquete B] >>-- depende de ---> [Paquete A]

Quiere decir que si desinstalamos ‘A’ se borra ‘B’ y viceversa. Siendo así, veamos el ejemplo anterior desinstalando nuevamente sólo 'los-iconos' pero suponiendo que 'el-chat' y 'la bienvenida' tienen dependencias cruzadas con 'escritorio-canaima', obtendremos un resultado final como este:

(animación-inicial)

Como vemos el único paquete que nos ha quedado instalado es ‘animación-inicial’, debido a que éste no tenía dependencias cruzadas con su meta-paquete. Si hiciéramos una corrida en frío de lo sucedido, sería algo como esto:

  • Inicia el proceso
  • Desinstalar ‘los-iconos’
  • Desinstalar ‘estilo-visual’ porque depende de ‘los-iconos’
  • Desinstalar ‘escritorio-canaima’ porque depende de ‘estilo-visual’
  • Desinstalar ‘el-chat’ porque depende de ‘escritorio-canaima’ (por dependencia cruzada)
  • Desinstalar ‘la-bienvenida’ porque depende de ‘escritorio-canaima’ (por dependencia cruzada)
  • Fin del proceso

En cortas y simples palabras: Perdimos casi todo nuestro escritorio sólo porque no queríamos seguir usando ‘los-iconos’. Una cuestión que obviamente resulta ilógica y que gracias al aprendizaje que el equipo de desarrollo Canaima GNU/Linux ha ido obteniendo con cada experiencia, nos permitió solucionar todos estos casos para la versión 3.1.

Ahora nos queda un caso para resolver, que aunque algunas veces lo he planteado, pocas veces me he sentado a presentar bien y con detalles. Se trata del problema siguiente:

Los Meta-Paquetes y Configuraciones:

Como mencionaba anteriormente en la definición de Paquete, estos contienen dentro tanto la aplicación cómo las configuraciones necesarias para que la misma funcione y se adapte a nuestro sistema. En ese sentido, y contando con que los paquetes de Canaima 3.1 no tienen ya dependencias cruzadas, ¿que sucedería si los meta-paquetes hicieran configuraciones al sistema?, la respuesta es que dichas configuraciones desaparecerían al remover el meta-paquete que las instala.

Esta situación se presenta actualmente en Canaima 3.1 en meta-paquetes como por ejemplo ‘canaima-escritorio-gnome’ que hacen en sus procesos de post-instalación configuraciones de optimización al sistema. Para no hacer una publicación mucho más larga explicaré los inconvenientes de los meta-paquetes con configuraciones y las alternativas que se me ocurren para evitarlos, pero para una siguiente publicación.

Dependencias y Meta-paquetes en Canaima 3.x

5 comentarios en “Dependencias y Meta-paquetes en Canaima 3.x

  1. miguel dijo:

    saludos instale en una vit el canaima 3.0 y me da un problemita : en la parte del teclado donde estan los numeros que se activan con la tecla fn , esta funcionado al contrario, es decir tengo que presionar fn para escribir as letras, ayudam q es un favor. new usuario de software libre

  2. Aníbal dijo:

    Hola
    me presento, mi nombre es Aníbal
    tengo una Vit M2421 con canaima 3.0

    Ya que desde mi SO Canaima 3.0 no pude actualizar a la versión 3.1 según los pasos que encontré en los sitios oficiales.
    quise descargar e instalar el 3.1 (http://descargas.canaima.softwarelibre.gob.ve/canaima-popular-3.1~estable_i386.iso) y se me presentaron inconvenientes.
    Por ejemplo no me reconoce “wifi” ni internet por cable; la resolución de la pantalla no es la ideal.

    Opté por instalar los drivers que me vinieron con mi VIT M2421, luego de instalar el primer archivo (install1.sh) me crea algo así como un SO paralelo para elegir también con la opción de “consola”. Donde en esta nueva opción la resolución está mejorada pero no reconoce ninguna fuente de internet.
    Al instalar el segundo (install2.sh) se reinicia y se cuelga, detiene, en la pantalla de “Canaima Meta distribución (…o algo así)”

    Intenté descargar desde otra PC paquetes .deb que he visto que han sugerido y nada.

    Cómo puedo resolver esta situación?
    Existen Controladores de VIT M2421 para Canaima 3.1??

    Gracias!!

    1. erickcion dijo:

      Aníbal,

      Disculpa mi sinceridad pero este no es el sitio para solicitar este tipo de soporte técnico.

      Sólo te puedo adelantar que VIT añade algunas cosas a Canaima para que se adapte a sus equipos y le funcione todo. La instalación de los componentes que te faltan deberías poder hacerla manualmente averiguando que dispositivos posee tu equipo e instalando sus controladores.

      Saludos y éxito.

  3. SALUDOS ERICK, TENGO PROBLEMAS PRECISAMENTE CON LAS DEPENDENCIAS Y LOS METAPAQUETES EN CANAIMA 3.1, EL EQUIPO ES UNA PORTATIL VIT M2421 Y DEBIDO A ESTE PROBLEMA NO ME PERMITE INSTALAR LA TARJETA WIFI NI EL BLUETOOTH, NI LOS CONTROLADORES PRIVATIVOS…TE AGRADESCO LO QUE PUEDAS HACER POR MI…GRACIAS…EXCELENTE TU EXPLICACION SOBRE LO QUE ES UNA DEPENDENCIA y un metapaquete..MI EMAIL ES: edgardo777@gmail.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s