Paquetes

De CURE - Informática
Ir a la navegación Ir a la búsqueda

Introducción a la gestión de paquetes

Antes, muchos de los programas Linux se distribuían como código fuente que los usuarios luego transformaban en el programa o en el conjunto de programas requeridos, junto con las paginas man, los archivos de configuración y todo lo demás que resultaba necesario. Hoy en día Linux usan programas o conjuntos de programas prefabricados denominados paquetes, estos paquetes se envían listos para ser instalados en dicha distribución. En esta pagina le iremos a brindar conocimientos sobre herramientas de gestión de paquetes (ej:instalar, borrar, actualizar). Hay que mencionar que en este articulo nos vamos a basar mas en el uso de Advanced Packagin Tool (apt), este es usado por Debian como también por sus distribuciones que derivan de este. También para brindar un conocimiento general de esto, iremos a dar información de herramientas de gestión de otras distribuciones de Linux como Red Hat, este usa paquetes de tipo RPM, y su gestor de paquetes es yum.

Desde la perspectiva de los usuarios, la función básica de la gestión de paquetes es por medio de comandos, esto hizo que las distribuciones desarrollaran herramientas muy fácil de usar por este. Como mencionamos anteriormente nos vamos a centrar en .deb y .rpm, pero también hablaremos de herramientas el cual el alumno podrá investigar mas adelante.

Sistema de gestión de paquetes

Un sistema de gestión de paquetes, también conocido como gestor de paquetes,es un conjunto de herramientas que sirven para la instalación, actualización, configuración y eliminación de paquetes de software. El software se distribuye en formas de paquetes, encapsulado en un solo fichero. Estos paquetes ademas de tener el software, también pueden incluir la descripción de su funcionalidad, datos sobre la versión, información sobre quien lo distribuye, suma de verificación y también alguna lista de paquetes requeridos para poder hacerlo funcionar correctamente.


Principales Funciones de Sistemas de Gestión de Paquetes

Estos tienen la tarea de organizar todos los paquetes instalados en el sistema y se encargan de mantener su usabilidad, todo esto se hace combinando esto:

  • Comprueba suma de verificación para evitar que haya diferencias entre la versión local de un paquete y la versión oficial.
  • Comprobar legitimidad de software.
  • Instalación, actualización y eliminación simple de paquetes.
  • Resolución de dependencias para ciertos software, esto se verifica para que el software funcione correctamente.
  • Búsqueda de actualizaciones para proveer la ultima versión de un paquete.
  • Agrupamiento de los paquetes según la función que tenga, esto lo hace para evitar confusión al instalarlos o mantenerlos.

Paquetes

Un paquete de software es un archivo comprimido con una estructura determinada para ser usado por herramientas de gestión,los paquetes son el elemento básico para tratar las tareas de instalación, actualización del existente o eliminación del no utilizado. El uso de paquetes facilita añadir o quitar software al considerarlo una unidad y no tener que trabajar con los ficheros individuales.

Categoría de paquetes:

  • Base: paquetes indispensables para el funcionamiento del sistema (útiles, programas de inicio, bibliotecas de sistema).
  • Sistema: útiles de administración, comandos de utilidad.
  • Desarrollo (developement): útiles de programación: editores, compiladores, depuradores.
  • Gráficos: controladores e interfaces gráficas, escritorios, gestores de ventanas.
  • Otras categorías.

Objetivos

  • Instalar, reinstalar y actualizar paquetes.
  • Buscar paquetes que contengan archivos o bibliotecas especificas, incluso si el paquete instalado no esta instalado.
  • Obtener información de los paquetes instalados(versión,contenido, dependencias,estado de instalación), incluso si el paquete no esta instalado.

Software

  • Synaptic: Es un programa informático que es una interfaz gráfica GTK+ de APT, para el sistema de gestión de paquetes de debian GNU/Linux. Generalmente se utiliza en sistemas basados en paquetes .deb pero también puede ser usado en sistemas basados en paquetes RPM.Synaptic utiliza repositorios Debian, y permite su gestión mediante un menú interactivo.Mediante un click, es posible actualizar la lista de paquetes disponibles o marcar automáticamente todas las actualizaciones de los paquetes ya instalados. Dispone de un avanzado filtro de búsqueda, es capaz de reparar las dependencias rotas de paquetes y permite deshacer y rehacer las últimas selecciones de paquetes. Normalmente se realiza una actualización de la lista de paquetes de los servidores del fichero sources.list.


  • Adept: Es un gestor de paquetes gráfico desarrollado para KDE, este también funciona bien en gnome, es muy fácil de usar y al igual que Synaptic, funciona en base a repositorios de donde extrae información sobre paquetes disponibles para instalar o actualizar.

Conceptos, comandos, archivos

Existen muchos tipos de herramientas para el trabajo con los paquetes obtenidos desde los repositorios, estas herramientas varían según la distribución de Linux que estemos usando. Ahora iremos a mencionar algunas de esas herramientas, estas pueden ser usadas tanto en un entorno gráfico como en una terminal:

Herramientas interactivas

  • tasksel: permiten escoger unos subconjuntos de paquetes agrupados por tipo de tareas.
  • dselect: permite navegar por toda la lista de paquetes disponibles, y escoger aquellos que queramos instalar o desinstalar.

Paquetes Debian

A nivel de linea de comando:

  • dpkg:comando de más bajo nivel, para gestionar directamente los paquetes DEB de software, típicamente dpkg -i paquete.deb para realizar la instalación. Pueden realizarse todo tipo de tareas, de información, instalación, borrado o cambios internos a los paquetes de software.
  • apt (Advanced Packaging Tool): es un sistema de gestion de paquetes creado por Debian, esta herramienta es de mucha ayuda ya que facilita mucho a la hora de realizar cambios en el sitema, como instalar o eliminar programas de la maquina. Existe también un front-end a apt-get, llamado aptitude, cuya interfaz de opciones es prácticamente igual; ; como ventaja aporta una mejor gestión de dependencias de los paquetes y permite una interfaz interactiva.
  • aptitude: Este es es una interfaz para apt. Este muestra una lista de paquetes de software y permite al usuario elegir en modo iteractivo cuales paquetes desea instalar y eliminar.Este dispone de un sistema muy poderoso de busqueda.



A nivel de línea de comando:


La herramienta apt-cache dispone de comandos que nos permiten buscar información sobre los paquetes, como por ejemplo:

  • Buscar paquetes sobre la base de un nombre incompleto: apt-cache search nombre
  • Mostrar la descripción del paquete: apt-cache show paquete
  • De qué paquetes depende: apt-cache depends paquete

Actualizar fuentes

Para la actualizactualizacionacion de las fuentes el comando que se usa es:

apt-get update

Instalar un Programa

Se puede instalar un paquete con el comando:

apt-get install [nombre del paquete]

Desinstalar un programa

Se puede desinstalar un paquete con el comando:

apt-get remove [nombre del paquete]

Borrar paquetes descargados

Para borrar totalmente el repositorio local que contiene los ficheros de los paquetes descargados se usa el comando:

apt-get clean

Borra todo excepto el fichero de bloqueo de los directorios /var/cache/apt/archives/ y /var/cache/apt/archives/partial/.

Actualización de la distribución

apt-get update --> Actualiza la base de datos de los programas disponibles.
apt-get upgrade --> Actualiza todo el sistema, con las nuevas versiones de los programas.
apt-get dist-upgrade --> Cambia de una versión a otra.


Otros comandos interesantes

  • apt-get source --> Descarga los paquetes fuente, este los guarda en el directorio /var/cache/apt/archives/.
  • apt-get -s install nombre_paquete --> Simula instalación.
  • apt-get purge [nombre de paquete] --> Borra paquetes instalados incluyendo los archivos de configuración.
  • apt-get -f install --> Acaba instalaciones anteriores.
  • apt-get --compile source nombre_paquete --> Se baja las fuentes del paquete, lo compila y crea un deb recompilado obtimizado para tu máquina.
  • apt-cache show nombre_paquete --> Información del programa.
  • apt-cache search [nombre de comando] --> Busca paquetes sobre la base de un nombre incompleto.

Paquetes Red Hat

  • rpm: es un poderoso gestor de paquetes para extensiones .rpm, el cual es usado para instalar, verificar, actualizar y borrar paquetes individuales. Este es bueno pero es debajo nivel como para gestionar facilmente todos los paquetes del sistema.
  • yum: es una herramienta libre de gestión de paquetes para sistemas linux basados en RPM. A pesar de que es para ser usado a nivel de comandos, existen otras herramientas que le brindan interfaz gráfica. Este comando usa la informacion de la base de datos RPM, para ver las dependencias para que todo ande bn

Instalar un Programa

El comando para instalar es:

Borrar un Programa

El comando para borrar un programa es:

Actualizar un Programa

El comando para actualizar es:

Procedimiento

Lo que haremos ahora es describir el típico flujo de información en el sistema de gestión de paquetes, desde que el usuario hace un requerimiento de instalación de software hasta que finalmente lo puede utilizar.

  1. Usuario solicita instalación de paquetes.
  2. El sistema de gestión de paquetes encuentra los paquetes necesarios.
  3. El sistema de gestión de paquetes descarga los paquetes necesarios desde el repositorio.
  4. El sistema de gestión de paquetes configura y hace recomendaciones.
  5. Usuario usa el software.

Repositorio

El software normalmente se pone a disposicion de los usuarios en los repositorios, con el fin de proporcionar a los usuarios de un sencillo control sobre los diferentes tipos de software que van a instalar en el sitema. El archivo que maneja los repositorios en linux es /etc/sources.list.

Verificación

Notas adicionales

  • Comando alien, del paquete alien: instala paquetes con otros formatos de empaquetamiento, e.g. rpm de RedHat. OJO, puede haber dependencias y no funcionar o romper algo; conviene usar sólo si es imprescindible, y para paquetes "stand-alone", que pueden funcionar por sí solos. Como siempre, "unless you know what you are doing".

Referencias

Adminitración Avanzada de GNU/Linux

http://doc.ubuntu-es.org/Formatos_de_paquetes#Paquetes_Deb