Verificar si un paquete o programa esta instalado en GNU/Linux

Después de una pausa larga en nuestro blog, retomamos las entradas con conceptos básicos que nos pueden ayudar en el día a día, esta vez como asegurarnos que un paquete o programa esta instalado en nuestro sistema.

Lo primero que debemos tener en cuenta es tener claro que un paquete y un programa no son lo mismo.

Un paquete, es un conjunto de binarios, archivos de configuración y scripts, los cuales alimentan la base de datos del gestor de paquetes del sistema y estos mismos se copian al sistema de archivos.

Un programa, es un binario (o un script) que ejecuta instrucciones dentro del sistema, es posible encontrarlo dentro del sistema como un archivo con permisos de ejecución (los veremos al detalle en una entrada posterior).

Una vez teniendo claras las diferencias entre los dos veamos el primer caso:

1. Verificar si un paquete esta instalado dentro del sistema:

Es importante delimitar en este caso que solo nos vamos a referir a rpm y deb, no vamos a tener en cuenta otros gestores.

1.1 Basados en Red Hat

En Red Hat se cuenta con el sistema “rpm” (RPM Package Manager, anteriormente Red Hat Package Manager) , el cual controla la base de datos de los paquetes dentro del sistema, su ejecución se logra con el comando “rpm“.

Para verificar si un paquete existe podemos realizar una combinación de dos comandos rpm y el indispensable grep:

rpm -qa | grep kernel

Como lo podemos ver en la imagen nos muestra el paquete instalado con su versión instalada, en caso de no estar instalado el paquete en el sistema no nos mostraría nada.

los dos opciones que usamos con rpm son:

-q para hacer una consulta, combinado con

-a todos los paquetes instalados

Posteriormente pasamos ese resultado por una tubería a grep en donde especificaremos cual es el paquete que buscamos, en este caso “kernel“, obteniendo así el resultado de la consulta.

1.2 Basados en Debian

En debian contamos con el gestor “dpkg” (acronimo de Debian Package) el cual nos administra la base de datos de paquetes.

Para verificar la existencia de un paquete tendremos que ejecutar lo siguiente:

dpkg -l | grep kernel

Lo cual nos arroja la siguiente:

las dos primeros caracteres “ii” nos quiere decir el estado deseado y el estado real del paquete, sin profundizar en este momento, si el paquete esta instalado correctamente debería de estar “ii“.

En la siguiente columna tenemos el nombre del paquete

El siguiente sería la versión instalada.

La arquitectura para la cual esta generado el paquete.

Y por ultimo una breve descripción del paquete.

Antes de finalizar esta sección y si algún lector a llegado hasta este puntoy este perdiendo la cabeza porque no mencionamos a yum, dnf , apt o aptitude, esos son frontends para los gestores base, los cuales analizaremos por separado ya que merecen una entrada cada uno de ellos.

2. Verificar si un programa esta instalado dentro del sistema:

Cuando hablamos de un programa automaticamente tendremos que pensar en buscar un fichero y para ello vamos a hacer una pequeña introducción a find.

find es una herramenta altamente eficiente a la hora de hacer busquedas de todo tipo dento del sistema instalado.

Al usar find debemos tener en cuenta que buscaremos los nombres u otras caracteristicas del fichero y que se hará un recorrido por el sistema de archivos para verificar su existencia.

Un ejemplo rapido si queremos buscar la existencia del programa llamado “man”.

El parametro “/” quiere decir en que ruta buscaremos el archivo, en este caso estamos buscandolo en todo el sistema.

La opción “name” nos indica que estaremos buscando la palabra “man”

La opción “executable” nos buscara todos los ficheros que tengan permirsos de ejecución, en este caso nos dectanamos por esta opción y no por “perm” que tambien hubiese funcionado.

La opción “type” la cual nos indica que el nombre buscado debe ser de tipo archivo ya que dentro del sistema tambien pueden existir directorios o otro tipo de ficheros.

Otra opción sería utilizar el comando locate el cual no esta instalado en todas las distribuciones, pero basta con realizar un “locate man” para obtener el resultado de la busqueda.

Esto sería todo en esta entrada, no olvidar consultar las paginas man en donde podrán encontrar toda esta información y mucho mas detalle.

Si hay preguntas o comentarios pueden hacerlas en nuestras redes sociales: facebook o linkedin, hasta la próxima.