sábado, 17 de noviembre de 2012

LMDE: Saber si se puede reinstalar una aplicación o paquete


Si se elimina X paquete ¿luego se puede volver a reinstalar con normalidad?.

Este artículo viene a colación tras la consulta semanas atrás por parte de un usuario que eliminó una aplicación y luego no tenía forma de instalarla de nuevo ya que no aparecía en los gestores de paquetes como cabía esperar y él desde luego esperaba volver a encontrar.

Muchos os habréis encontrado en el caso de que por cualquier cuestión se elimina una aplicación o paquete y luego a la hora de querer volverla a recuperar ...ooohh sorpresa, ¡no está!.
Esto es algo bastante común y no carente de toda lógica aunque a priori  pueda parecer lo contrario...

¿Por qué no puedes volver a instalar algo que ya instaste con anterioridad en el sistema?
¿Por qué sucede con unas aplicaciones y con otras no?

¿No te lo has preguntado nunca?
Si es así, te diré que la razón es muy simple. Pongamos un pequeño ejemplo...
Supongamos que necesitamos una aplicación en concreto. Pongamos para hacerlo más cercano y real, que queremos instalar el gestor de torrent Tixati. Para ello no hay otra que descargar en nuestro sistema el paquete DEB que suministra su desarrollador e instalarlo. Si más adelante eliminamos esa aplicación no habrá forma de volverla a instalar salvo que lógicamente descarguemos nuevamente ese paquete.

El sistema está lleno de paquetes de este tipo, sea esto por haberlo instalado manualmente como el ejemplo anterior, o por haberlo hecho desde cualquier repositorio que ya no se utilice. El hecho de haberlo instalado vía repositorio no difiere nada de lo anteriormente explicado si éste ya no existe. El caso es el mismo, cualquier aplicación que instalemos desde el Gestor de Aplicaciones, desde el Synaptic o desde el Terminal con apt-get se hace con soporte vía repositorio. Cualquier aplicación instalada así en un momento anterior, no significa que en este momento o más adelante  podamos volverla a instalar desde el Gestor de Aplicaciones, o Synaptic, ya que nuestros repositorios han podido variar sustancialmente desde la ultima vez que instalemos ese paquete.
Esto no es por accidente, ya que somos muy proclives tanto al añadir repositorios como a eliminarlos.  Incluso puede suceder que un repositorio dado deje de dar soporte a X paquete, con lo cual si eliminamos ese paquete, difícil lo tendremos para recuperarlo.
Todo esto también es debido (como no podía ser de otra forma) a que lógicamente no es necesario y menos aún imprescindible mantener el repositorio que nos proporcionó la instalación de esa X aplicación para tenerla en el sistema.

¿Pero cómo averiguar que paquetes son reinstalable y cuales no?
Lo primero que hay que saber (como ya se deja entrever anteriormente) es que cualquier paquete que se pueda reinstalar es debido a que hay un repositorios que le da soporte.
Si abrimos el Synatic veremos todos los paquete instalados, así como los no instalados.
Los no instalados lo vemos naturalmente por que hay un repositorio que los sostiene, de lo contrario no se mostrarían.
En el caso de los instalados los hay de dos tipos. Los que tienen un soporte vía repositorios sostenibles y los que carecen de él. Por lo tanto los que carecen de este soporte jamás serán paquetes reinstalables y lo máximo que nos permitirá el sistema hacer con ellos es dejarlos tal cual o a los sumo eliminarlos.
Normalmente estos paquetes que carecen de soporte vía repositorio los podemos ver todos desde el Synaptic en la sección Estado --/ Instalados (locales u obsoletos) estos son los también llamados huérfanos.



Todo esto puede parecer algo trivial y sin mucha importancia, pero no lo es. En el caso de eliminar una aplicación o paquete (por el motivo que sea) que realmente necesitamos pensando que luego podemos volverla a instalar cuando terminemos lo que hallamos estado haciendo, puede hacernos pasar unos días bastante estresadillos buscando las mil y una formas de volver a tener dicha aplicación o paquete instalada en nuestro sistema.

Tenemos dos forma muy simples de averiguar (si una aplicación o paquete que queramos eventualmente eliminar), si luego tenemos la posibilidad de volverla a instalar
Supongamos que quiero eliminar el reproductor de audio y vídeo VLC.
Abrimos Synaptic y en la ventana de búsqueda ponemos vlc.
Clicamos con el botón derecho del ratón en el paquete vlc, y se nos mostrará un menú emergente donde debemos fijarnos si está activa la opción Marcar para reinstalar.


Siendo así, si esta activa, lógicamente quiere decir que para esta aplicación en concreto sí hay un repositorio que la sostiene, con lo cual podemos eliminarla y volverla a instalar las veces que queramos.

Para mostrar el lado contrario, pongamos por ejemplo que quiero eliminar Compiz del sistema.


Como se puede ver en la captura en mi sistema el paquete compiz no tiene opción para reinstalar. Con lo cual si lo elimino y quiero volver a ponerlo, no me quedará otra que buscar un repositorio que lo contenga o a lo sumo los paquetes DEBs que de él se puedan suministrar o por último, una compilación de la fuente si las dos opciones anteriores no han sido posibles.

Averiguar si un paquete es reinstalables vía Terminal tambien es sumente secillo.
Para el caso de VLC ponemos:
  •  sudo apt-get -s --reinstall install vlc
Esto nos indicará rápidamente si ese paquete es reinstalable, como se muestra en la captura:

 
Nota: el parámetro -s en el comando anterior y siguiente es para que se realice una simulación y no una reinstalación real.

Para contrastar expongo la salida en el caso de Compiz:
  •  sudo apt-get -s --reinstall install compiz
Con lo que podemos ver rápidamente que no es un paquete que pueda descargar para volverlo a instalar.


Todo lo anteriormente expuesto nos puede ser de utilidad sobre todo en los caso en los que para instalar X aplicación por incompatibilidades es necesario eliminar X paquetes y estos X paquetes puede ser de X aplicación que utilizamos. En estos casos lo normal es seguir adelante para probar lo que estemos haciendo, pensando que luego si queremos volver a dejar el sistema como estaba ya volveremos a instalar los paquetes afectados.
Esto nos evitará llevarnos la desagradable sorpresa de que llegado al caso, vallamos a tardar más de lo esperado en instalar esos paquetes.

Otra cosa interesante que se debería saber es que hay una carpeta (cache apt) donde se guardan todos los paquetes instalados vía repositorios. Esta se encuentra en dicha ubicación:  /var/cache/apt/archives/
En esta ubicación encontraras una ingente cantidad de paquetes DEBs (que puedes eliminar si quieres para ganar espacio), que en el caso de no encontrarse en tus repositorios un paquete que instalaste y eliminaste, aún podrías (si no limpiaste esta carpeta) tener suerte y encontrarlo allí.

Pues bueno ya está, si pretendes eliminar cualquier paquete o aplicación que puedas volver a necesitar, asegúrate antes de tener  los repositorios de esta en el sistema.

4 comentarios:

  1. Excelente explicacion. !!!!
    Claro, conciso y sobre todo muy util !!!!
    Beso. Romi

    ResponderEliminar
  2. Saludos Frannoe, solo quiero comentar que ese usuario mano suelta, loco y desquiciado fui yo jajaja, con el Compiz!! Pero bueno, con esta tremenda explicación ya no me pasarán más estas cosas, que ciertamente aunque parezcan nulas, se cometen esos errores, por no decir horrores.

    Gracias por tu paciencia y dedicación al enseñarnos todos estos pequeños detalles, que repito, no son insignificantes cuando de aprender se trata.

    Que tengas excelente semana amigo.

    ResponderEliminar