GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo consultar información de paquetes con el administrador de paquetes rpm

RPM es el acrónimo recursivo de RPM Package Manager:es el administrador de paquetes de bajo nivel predeterminado en algunas de las distribuciones de Linux más famosas y utilizadas, como Fedora, Red Hat Enterprise Linux, CentOS, OpenSUSE y sus derivados. El software, como es de esperar, es gratuito y de código abierto; cuando se invoca con -q se puede usar para consultar paquetes para recuperar información específica, como dependencias, recomendaciones, archivos, etc. En este tutorial, aprenderemos cómo realizar dichas consultas.

En este tutorial aprenderás :

  • Cómo ejecutar rpm en modo "consulta"
  • Cómo obtener información general sobre un paquete
  • Cómo leer el registro de cambios de un paquete
  • Cómo enumerar los archivos proporcionados por un paquete
  • Cómo listar los scripts usados ​​por un paquete
  • Cómo enumerar las dependencias y recomendaciones de un paquete
  • Cómo enumerar los paquetes que se vuelven obsoletos por un rpm

Cómo consultar información de paquetes con el administrador de paquetes rpm

Requisitos de software y convenciones utilizadas

Invocar rpm en modo de consulta

El administrador de paquetes rpm se puede usar para modificar el estado del sistema, ya que se puede usar para instalar, actualizar y eliminar paquetes (cuando se invoca con -i , -U y e opciones, respectivamente), o puede ejecutarse en modo "consulta", sin necesidad de privilegios administrativos, cuando se inicia con -q opción, que es la versión corta de --query .

Si un paquete ya está instalado en nuestro sistema, todo lo que necesitamos hacer es mencionarlo por su nombre; si no es el caso, y queremos consultar un .rpm descargado archivo, por ejemplo, tenemos que usar el -p (--package ) y proporcione la ruta del archivo como argumento. Veamos algunos ejemplos prácticos de cómo recuperar información sobre un paquete.

Obtención de información general sobre un paquete

Una de las cosas básicas que podemos querer hacer cuando se trata de un paquete rpm es mostrar información general sobre él. Para realizar esta tarea, todo lo que tenemos que hacer es usar el -i (o --info ) opción al invocar rpm en modo de consulta. Por el bien de este ejemplo, trabajaremos con el paquete "gimp", que ya está instalado en el sistema. En este caso ejecutaríamos:

$ rpm -qi gimp

Inmediatamente después de invocar el comando, recibimos un resultado similar al siguiente, que incluye información, como la descripción del software, su versión, arquitectura, fecha de instalación, tamaño, etc.:

Name        : gimp
Epoch       : 2
Version     : 2.10.24
Release     : 1.fc34
Architecture: x86_64
Install Date: Mon 21 Jun 2021 11:26:33 AM CEST
Group       : Unspecified
Size        : 109267268
License     : GPLv3+ and GPLv3
Signature   : RSA/SHA256, Sat 03 Apr 2021 02:00:02 AM CEST, Key ID 1161ae6945719a39
Source RPM  : gimp-2.10.24-1.fc34.src.rpm
Build Date  : Sat 03 Apr 2021 01:13:55 AM CEST
Build Host  : buildhw-x86-11.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.gimp.org/
Bug URL     : https://bugz.fedoraproject.org/gimp
Summary     : GNU Image Manipulation Program
Description :
GIMP (GNU Image Manipulation Program) is a powerful image composition and
editing program, which can be extremely useful for creating logos and other
graphics for web pages. GIMP has many of the tools and filters you would expect
to find in similar commercial offerings, and some interesting extras as well.
GIMP provides a large image manipulation toolbox, including channel operations
and layers, effects, sub-pixel imaging and anti-aliasing, and conversions, all
with multi-level undo.

Lectura de un registro de cambios del paquete

Como sabemos, un registro de cambios es un registro en el que se informan y ordenan cronológicamente todos los cambios realizados en un proyecto. Si lo que queremos hacer es leer el registro de cambios de un paquete rpm, debemos invocar el administrador de paquetes rpm en modo consulta y usar el --changelog opción. Veamos un ejemplo:

$ rpm -q --changelog gimp

Aquí está el resultado (truncado) del comando anterior en la última versión de Fedora (34):

[...]
 Thu Jan 09 2020 Josef Ridky <[email protected]> - 2:2.10.14-3
- Demodularizing of gimp (#1772469)

* Mon Nov 18 2019 Kalev Lember <[email protected]> - 2:2.10.14-2
- Rebuild for libmypaint 1.4.0

* Mon Nov 04 2019 Kalev Lember <[email protected]> - 2:2.10.14-1
- Update to 2.10.14

* Tue Aug 20 2019 Josef Ridky <[email protected]> - 2:2.10.12-3
- Fix default configuration for font folders (#1706653)

* Wed Jul 31 2019 Josef Ridky <[email protected]> - 2:2.10.12-2
- Fix issue with reading SVG files (#1715882)

* Thu Jul 25 2019 Fedora Release Engineering <[email protected]> - 2:2.10.12-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Thu Jun 13 2019 Kalev Lember <[email protected]> - 2:2.10.12-1
- Update to 2.10.12

* Thu Apr 11 2019 Richard Shaw <[email protected]> - 2:2.10.10-2
- Rebuild for OpenEXR 2.3.0.

* Mon Apr 08 2019 Josef Ridky <[email protected]> - 2:2.10.10-1
- New upstream release 2.10.10 (#1697119)

Lista de todos los archivos proporcionados por un paquete

Cuando instalamos un paquete en nuestro sistema se copian una serie de archivos en los lugares adecuados, tal y como pretende su mantenedor. Si queremos listar los archivos proporcionados por un paquete que ya está instalado en nuestro sistema, podemos invocar el administrador de paquetes
rpm en modo consulta con -l opción (abreviatura de --list) ):

$ rpm -ql gimp

Como dijimos anteriormente, si queremos consultar un paquete antes lo instalamos, en su lugar, tenemos que agregar el -p y proporcione la ruta del paquete como argumento:

$ rpm -qlp /path/to/package.rpm

El comando anterior producirá el siguiente resultado:

/etc/gimp
/etc/gimp/2.0
/etc/gimp/2.0/controllerrc
/etc/gimp/2.0/gimprc
/etc/gimp/2.0/gtkrc
/etc/gimp/2.0/menurc
/etc/gimp/2.0/sessionrc
/etc/gimp/2.0/templaterc
/etc/gimp/2.0/toolrc
/etc/gimp/2.0/unitrc
/usr/bin/gimp
/usr/bin/gimp-2.10
/usr/bin/gimp-console
/usr/bin/gimp-console-2.10
/usr/bin/gimp-test-clipboard-2.0
[...]

Lista de scripts usados ​​por un paquete

Algo de .rpm Los paquetes utilizan una serie de scripts o "scriptlets" que se ejecutan como parte del proceso de instalación o eliminación. Si queremos echarles un vistazo, podemos hacerlo invocando rpm en modo consulta con los --scripts
opción. Por el bien de este ejemplo, revisaremos los scripts incluidos en el systemd paquete:

$ rpm -q --scripts systemd

A continuación podemos ver la salida (truncada) del comando anterior, cuando se ejecuta en Fedora 34. Como puede ver, antes de los scripts en sí, podemos notar que también se informa el contexto en el que se usan (por ejemplo, "preinstalación" o "postinstalación"). ”):

preinstall scriptlet (using /bin/sh):
getent group cdrom &>/dev/null || groupadd -r -g 11 cdrom &>/dev/null || :
getent group utmp &>/dev/null || groupadd -r -g 22 utmp &>/dev/null || :
getent group tape &>/dev/null || groupadd -r -g 33 tape &>/dev/null || :
getent group dialout &>/dev/null || groupadd -r -g 18 dialout &>/dev/null || :
getent group input &>/dev/null || groupadd -r input &>/dev/null || :
getent group kvm &>/dev/null || groupadd -r -g 36 kvm &>/dev/null || :
getent group render &>/dev/null || groupadd -r render &>/dev/null || :
getent group systemd-journal &>/dev/null || groupadd -r -g 190 systemd-journal 2>&1 || :
[...]

Otra opción similar es --triggers que se utiliza para mostrar los scripts de activación contenido en un paquete. ¿Qué son los scripts de activación? Son básicamente scripts que se ejecutan (activan) cuando el estado de otro paquete
cambia:

$ rpm -q --triggers systemd

Con el comando anterior podemos visualizar los scripts de activación contenidos en el systemd paquete:

triggerun scriptlet (using /bin/sh) -- systemd < 246.1-1
# This is for upgrades from previous versions before systemd-resolved became the default.
systemctl --no-reload preset systemd-resolved.service &>/dev/null || :

if systemctl -q is-enabled systemd-resolved.service &>/dev/null; then
  systemctl -q is-enabled NetworkManager.service 2>/dev/null && \
  ! test -L /etc/resolv.conf 2>/dev/null && \
  ! mountpoint /etc/resolv.conf &>/dev/null && \
  grep -q 'Generated by NetworkManager' /etc/resolv.conf 2>/dev/null && \
  echo -e '/etc/resolv.conf was generated by NetworkManager.\nRemoving it to let systemd-resolved manage this file.' && \
  mv -v /etc/resolv.conf /etc/resolv.conf.orig-with-nm && \
  ln -sv ../run/systemd/resolve/stub-resolv.conf /etc/resolv.conf 2>/dev/null || :

  systemctl start systemd-resolved.service &>/dev/null || :
fi
triggerpostun scriptlet (using /bin/sh) -- systemd < 247.3-2
# This is for upgrades from previous versions before oomd-defaults is available.
# We use %triggerpostun here because rpm doesn't allow a second %triggerun with
# a different package version.
systemctl --no-reload preset systemd-oomd.service &>/dev/null || :

Enumerar las dependencias y recomendaciones de un paquete

Otra tarea común que podemos querer realizar es encontrar las dependencias de un paquete rpm. La opción que nos permite realizar la tarea es -R (abreviatura de --requires ). Para comprobar las dependencias del paquete “gimp”, por ejemplo, ejecutaríamos el siguiente comando:

$ rpm -qR gimp

Una vez que ejecutemos el comando, la lista de dependencias de software aparecerá en pantalla:

/usr/bin/python2
babl(x86-64) >= 0.1.78
config(gimp) = 2:2.10.24-1.fc34
fontconfig >= 2.12.4
freetype >= 2.1.7
gegl04(x86-64) >= 0.4.30
gimp-libs(x86-64) = 2:2.10.24-1.fc34
glib2 >= 2.56.2
gtk2 >= 2.24.32
hicolor-icon-theme
[...]

Si en lugar del -R opción que usamos --recommends podemos obtener una lista del software que no es estrictamente necesario para el paquete que estamos consultando, pero que recomienda:

$ rpm -q --recommends gimp

Enumerar los paquetes que se vuelven obsoletos por un rpm

De la misma manera que en los ejemplos anteriores, podemos ver qué paquetes se vuelven obsoletos por el paquete que estamos consultando. Todo lo que tenemos que hacer es usar --obsoletes opción:

$ rpm -q --obsoletes gimp

Aquí está la salida del comando en el ejemplo:

gimp < 2:2.10.24-1.fc34
gimp-help-browser < 2:2.10.24-1.fc34
gimp-unstable < 2:2.10

Conclusiones

Rpm es un administrador de paquetes muy poderoso:en este tutorial vimos cómo ejecutarlo en modo "consulta". Vimos cómo obtener información general sobre un paquete, como su versión y arquitectura, cómo leer el registro de cambios de un paquete, cómo enumerar todos los archivos que instalará un paquete, cómo echar un vistazo a los "scriptlets" que se utilizan como parte de la administración de paquetes y cómo obtener una lista de las dependencias y recomendaciones de un paquete.


Linux
  1. Cómo construir paquetes rpm

  2. Cómo usar el administrador de paquetes XBPS en Void Linux

  3. Cómo crear un paquete RPM de Linux

  4. Cómo instalar paquetes RPM en Debian 11 Bullseye

  5. Cómo eliminar todos los paquetes con DNF de los que no depende ningún otro paquete

Cómo instalar paquetes RPM en CentOS 8

Cómo instalar paquetes RPM en CentOS, RHEL y Fedora

Cómo instalar paquetes RPM en Ubuntu 22.04 LTS

¿Cómo editar paquetes existentes en WHM?

Comando RPM:15 ejemplos para instalar, desinstalar, actualizar y consultar paquetes RPM

Cómo degradar paquetes en el sistema Linux:la guía definitiva

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema Distribuciones que usan el administrador de paquetes rpm
    Software El administrador de paquetes rpm
    Otro Ninguno
    Convenciones #:requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $:requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios