28 octubre 2014

Terminal: Instalar, eliminar y otras tareas con los paquetes

Introducción

  Hemos visto como instalar un paquete desde las herramientas gráficas que nos proporciona nuestro sistema: Gestor de software y Synaptic. En esta entrada veremos como instalar y desinstalar un paquete desde el Terminal.
  Antes de instalar un paquete es recomendable actualizar nuestra base de paquetes, utilizaremos:

   $ sudo apt-get update   

  A continuación, actualizaremos nuestros paquetes (los instalados) con el comando:

   $ sudo apt-get upgrade  

  Esta opción de APT, upgrade, permite actualizar los paquetes de nuestra distribución. Se recomienda actualizar regularmente nuestro sistema, de esta forma dispondremos de las últimas actualizaciones de seguridad.
  Al ejecutar este comando (apt-get upgrade), busca entre los paquetes instalados aquellos que pueden ser actualizados, sin eliminar paquetes. Esta cuestión es importante y tenemos que recordarla ya que esta forma de actualizar, sin realizar ninguna desinstalación, propicia que en nuestro sistema queden archivos o paquetes obsoletos, sin uso, ocupando espacio en nuestro disco sin ninguna utilidad. Más adelante, en esta misma entrada, veremos las soluciones que dispone nuestro sistema para realizar limpieza.


Instalar un paquete

  Conocido el nombre del paquete que queremos instalar podemos utilizar el comando: apt-get install. Sabemos que instalar un paquete es un tarea administrativa, hemos de ejecutar esta instrucción anteponiendo el comando sudo al comando de instalación.
  Imaginemos que queremos instalar el paquete brasero, abriremos nuestro terminal y escribiremos:

   $ sudo apt-get install brasero  

  APT buscará la última versión de este paquete en los repositorios, resolverá las dependencias e instalará los paquetes necesarios para que brasero se instale correctamente. APT incluye en la instalación las librerías compartidas si las necesita, en algunas instalaciones veremos que al ejecutar el proceso, el sistema nos informará de la necesidad de instalar estos paquetes/librerías y nos preguntará si queremos o no continuar con la instalación.

  En la imagen siguiente vemos la instalación del paquete Nautilus (Gestor de archivos por defecto de Ubuntu).
  Además de nautilus, APT informa de la necesidad e instalar tres paquetes:
  • bonobo
  • libmedusa0
  • libnautilus0
   La última línea solicita la autorización para continuar con la instalación.

 Eliminar un paquete

  Si decidimos que nos necesitamos un determinado paquete lo podemos eliminar con el comando apt-get remove, seguido del nombre del paquete a eliminar. Sigamos con el ejemplo de brasero, lo eliminaríamos escribiendo en el terminal:

   $ sudo apt-get remove brasero   

  Al igual que ocurre con la instalación, APT se encarga de eliminar los paquetes que dependen del paquete eliminado.
  Sin embargo los archivos de configuración, si existen, no se eliminan. Se deseamos una eliminación completa del paquete, es decir, eliminar: el paquete, sus dependencias y los archivos que lo configuran, tendremos que utilizar el comando de la siguiente forma:

   $ sudo apt-get --purge remove brasero  

  Ahora serán eliminados los archivos de configuración del paquete.

Reinstalar un paquete

  Es posible que un paquete que hayamos instalado esté dañado o, simplemente, queremos disponer de un versión más actual. En ambos casos podemos reinstalar el paquete con la opción --reinstal.
  Si decidimos reinstalar el programa brasero, bien porque creemos que está dañado, bien porque queremos actualizarlo, ejecutaremos el comando:

   $ sudo apt-get --reinstall brasero  

  El paquete, se volverá a instalar con la última actualización existente en los repositorios.

Actualizando paquetes

  APT puede conseguir la actualización de todos nuestros paquetes a golpe de un comando: apt-get upgrade.
  Para entender la forma de actualizar, en una entrada anterior: Teoría: los repositorios desde Terminal, en el apartado apt-get update, se explicaba la forma de actuar de este comando en lo que se refiere a la forma de actualizar. Conviene ver esa entrada anterior para entender que determinados paquetes pueden "no actualizarse". No obstante voy a resumir lo que allí se comentaba.
  Actualizar significaría poner las versiones más recientes de lo existente en nuestro sistema. Si la versión más reciente, dispone alguna dependencia que antes no existía, no se podrá actualizar. No puede actualizar lo que no existe, y como upgrade, trata de ser lo menos intrusiva posible, no descarga las nuevas dependencias de la actualización, simplemente no actualiza ese paquete.
  El comado se ejecuta en el terminal:

   $ sudo apt-get upgrade  

  Al comenzar a ejecutarse el comando veremos en nuestro terminal algo parecido a esto:

 El administrado a ejecutado la instrucción, pero vemos que en la cuarta línea el sistema informa:
Los siguientes paquetes se han retenido

  Esto significa que estos paquetes no se van a actualizar. Como podéis comprobar estos paquetes son:
  • mozilla-plugin-vlc
  • vlc
  • vlc-nox
  • vlc-plugin-notify
  • vlsc-plugin-pulse
   Esto supone que hay versiones nuevas para estos paquetes pero no van a ser actualizados. Esto suele suceder por faltar alguna dependencia o porque las nuevas actualizaciones vienen con nuevas dependencias.
   Para solucionar el problema tenemos dos buenas alternativas.
A) Tomar nota de estos paquetes e instalarlos o reinstalarlos. APT resolverá las dependencias y (si anteriormente hemos ejecutado apt-get update), instalará las versiones más recientes.

B) El comando con la opción dist: apt-get dist-upgrade. Este comando si resuelve la relación de dependencias, fuerza a actualizar el paquete instalando las dependencias requeridas. Escribimos:

   $ sudo apt-get dist-upgrade   

  El comando realizará la actualización de toda nuestra distribución resolviendo los problemas de dependencias. Al menos lo intentará, pues pueden existir errores más serios en algún/os paquete/s que impidan su actualización.
  Cuando esto ocurre, durante la ejecución del comando nos volverá a aparecer el mensaje: Los siguientes paquetes se han retenido y a continuación nos mostrará los nombres de estos paquetes.
  La solución pasa por instalar/reinstalar de nuevo esos paquetes, seguramente existe un conflicto y en la instalación/reinstalación algún paquete será removido.

  Para no tener que instalar/reinstalar los paquetes uno a uno, APT nos proporciona en install, la opción -f. Con esta opción APT intenta resolver las dependencias rotas de los paquetes de nuestro sistema. Para ejecutar este comando tan sólo tenemos que escribir:

   $ sudo apt-get -f install  

  Este comando resolverá las dependencias rotas y los paquetes quedarán configurados.

Un poco de limpieza

  La instalación, actualización y eliminación de paquetes puede producir que algunos paquetes o archivos queden obsoletos, sin que se utilicen pero ocupando espacio en nuestro sistema. Recordemos que al eliminar un paquete sin la opción purge, los archivos de configuración continuaban en nuestros sistema.

  Para ello podemos utilizar la opción autoclean, el comando completo sería:

   $ sudo apt-get autoclean  

  Los archivos obsoletos que se encuentren en /var/cache/apt/archives y /var/cache/apt/archives/partial se eliminarán. Recordar que al ser paquetes obsoletos ya no se encuentran en nuestros repositorios, de modo que este comando no tiene ninguna consecuencia perjudicial para nuestro sistema.
 
   Existe una utilidad que nos permite eliminar librerías huérfanas y archivos de configuración obsoletos, se llama deborphan, (algo como huerfanos deb). Este programa debemos de instalarlo. Para ello ejecutaremos el consabido comando:

   $ sudo apt-get install deborphan   

  Una vez instalado lo ejecutaremos escribiendo su nombre:

   $ deborphan  

  Esta es el listado que se genera en mi terminal:

  Para eliminarlos puedo utilizar el comando apt-get --purge remove <paquete>, y también, más comodo, abrir el programa Synaptic y marcar estos archvos para su eliminación. Tan sólo tenéis que copiar el nombre del archivo (no se debe de copiar la parte :all o :amd64, sólo el nombre y lo mismo se aplica cuando utilizamos el terminal.

  Por último la opción autoremove, desinstalará aquellos paquetes que se instalaron automáticamente para satisfacer las dependencias del paquete que instalamos y que no son necesarias. Autoremove eliminará esta despendencias. El comando se ejecuta:

   $ sudo apt-get autoremove  

  Con este comando finalizo esta entrada. Creo que con esta información más la explicada en parte referente a las utilidades gráficas podemos instalar/eliminar y gestionar los paquetes sin excesiva dificultad.
  
  Como siempre os animo a plantear las dudas que os puedan surgir, trataré de solucionarlas.

  Gracias por vuestra atención.


No hay comentarios:

Publicar un comentario