Administrar los paquetes con rpm
Administrar los paquetes con rpm

Administrar los paquetes con rpm

El comando rpm que se incluye en las distribuciones Red-Hat y sus derivados (Fedora, Centos, etc), pemite gestionar el trabajo con los paquetes del sistema despues de que este esta instalado, todo a travez de la linea de comandos.
Este comando permite Instalar, desintalar, actualizar, obtener información de paquetes instalados y no instalados. La principal diferencia de rpm con yum, es que este ultimo permite instalar/actualizar los paquetes desde repositorios de internet (servidores con los paquetes actualizados), y nos da la opción de instalar las dependecias de los paquetes que tratemos de instalar/actualizar. Mientras que rpm solo permite hacerlos de forma local (CD, DVD, Disco Local), para todos los ejemplos usaremos el paquete apache-2.0-i386.rpm.

 

  • Instalar/actualizar paquetes

    rpm 	-Uvh apache-2.0-i386.rpm

    El modificador -U se instale el paquete, pero si ya existe una versión anterior esta se actualiza, por el contrario se existe una versión posterior o igual no se hace nada, el modificador -v indica que si se produce cualquier error se muestren mensajes detallados sobre este, finalmente el modificador -h muestra una barra de progreso y el porcentaje de instalación del paquete, en caso de que un paquete necesite de otro para funcionar (dependencias), tenemos 2 opciones, la primera es instalar las dependencias, esto lo puedo hacer simplemente agregando los nombres de los paquetes de dependencias y separandolos por espacios, por ejemplo, “rpm -Uvh apache-2.0-i386.rpm php-xxxx.rpm“, tambien puedo ignorar las dependencias agregando el modificador –nodeps, lo cual instalara el paquete sin importar la falta de estas.

  • Eliminar paquetes

    rpm -e 	apache-2.0

    El modificador “-e” indica a rpm, que debe eliminar el paquete pasado como parametro, al igual que al instalar puedo desinstalar varios paquetes, separando sus nombres por espacios, o ignorar los paquetes que dependan del paquete que trato de eliminar agregando el modificador –nodeps.

    Observación : Solo cuando los paquetes no estan instalados se usa su nombre completo, generalmente despues de instalados solo se usa su nombre y versión para referirse a ellos.

  • Obtener información de paquetes instalados.

    rpm -q[[p]idcl] apache-2.0

    Para consultar informacion de paquetes instalados o no instalados se utiliza el modificador “-q”, la diferencia principal, es que para paquetes no instaldos se debe indicar el nombre completo del archivo rpm, ademas de agregar el modificador “-p”, si no indicamos ninguno de los modificadores listados a continuacion, solo obtendremos el nombre del paquete mas su versión y la versión de la distribución para la que fue empaquetado.

    Modificadores

    • -i : Muestra información relacionada con el paquete, compilación de este, distribución y una breve descripción del paquete.
    • -d : Muestra el listado de archivos de documentación del paquete.
    • -c : Muestra el listado de archivos de configuración del paquete.
    • -l : Muestra el listado completo de archivos contenidos dentro del paquete.

    Por ejemplo, si quiesieramos obtener información del paquete, mas el listado de archivos que incluye, utilizariamos:

    Para un paquete instalado.

    rpm -qil apache-2.0

    Para un paquete no instalado.

    rpm -qpil apache-2.0-i386.rpm 

     

  • Obtener el nombre de todos los paquetes instalados.

    rpm -qa 

    Este comando mostraria un listado de todos los paquetes instalados en el sistema, en el formato nombre de paquete, versión del paquete y finalmente distribución de linux para el que fue empaquetado.

  • Averiguar a que paquete pertenece un archivo.

    rpm -qf /etc/http/conf/httpd.conf

    El modificador-qf nos muestra el paquete al que pertenece un archivo o directorio, en muchos casos no nos devolvera ningun nombre de paquete, porque posiblemente el archivo o directorio, no se creo durante la instalación de un paquete sino que posteriormente, con este modificador tambien podemos usar los modificadores “idcl“, vistos antes, lo cual mostrara la información relacionada con el paquete al que pertenece el archivo o directorio.

  • Reconstruir la base de datos de paquetes instalados.

    rpm --rebuilddb

    En alguna ocasión sucedió que despues de instalado un paquete que era dependencia de otro, el segundo paquete me decia que no se podia instalar por que no se encontraba el paquete instalado primero, con la utilización de este comando solucione el problema, lo que hace es reconstruir la base de datos de paquetes instalados en el sistema.

    Si necesitas mas información sobre el comando rpm puedes hacer un “man rpm” o “rpm -help“, en la linea de comandos.