Listar contenido de un paquete no instalado

Existen distintas manera de listar el contenido de un paquete rpm instalado. Una que funciona siempre es ejecutar:

rpm -ql NombreDelPaquete

El comando anterior funciona solamente si el paquete está instalado. ¿Y si queremos conocer qué contiene un paquete sin haberlo instalado o antes de instalarlo? He encontrado una manera de hacerlo sin instalar el paquete y que consulta a la información de la base de datos rpm / dnf:

dnf repoquery -l NombreDelPaquete

Un ejemplo para el paquete cmatrix (un pequeño paquete que presenta un protector de pantalla en el terminal). Primero se desintala, con lo que el comando rpm -ql cmatrix no encontrará nada en la base de datos del sistema. Segundo se ejecuta el dnf repoquery -l cmatrix que consultará la información presente en el repositorio.

[root@host ~]# rpm -ql cmatrix
el paquet cmatrix no està instal·lat
[root@host ~]# dnf repoquery -l cmatrix
Fedora 37 - x86_64 - Updates 15 kB/s | 7.9 kB 00:00
Fedora Modular 37 - x86_64 - Updates 33 kB/s | 17 kB 00:00
Fedora 37 - x86_64 - VirtualBox 2.9 kB/s | 6.9 kB 00:02
/usr/bin/cmatrix
/usr/bin/cmatrix-tty
/usr/lib/.build-id
/usr/lib/.build-id/11
/usr/lib/.build-id/11/92b5cf8ad61f36e6322a0f1270a4a88eaf5d5a
/usr/lib/kbd/consolefonts/matrix.fnt
/usr/lib/kbd/consolefonts/matrix.psf.gz
/usr/share/doc/cmatrix
/usr/share/doc/cmatrix/AUTHORS
/usr/share/doc/cmatrix/CODE_OF_CONDUCT.md
/usr/share/doc/cmatrix/CONTRIBUTING.md
/usr/share/doc/cmatrix/ChangeLog
/usr/share/doc/cmatrix/ISSUE_TEMPLATE.md
/usr/share/doc/cmatrix/NEWS
/usr/share/doc/cmatrix/README
/usr/share/doc/cmatrix/README.md
/usr/share/licenses/cmatrix
/usr/share/licenses/cmatrix/COPYING
/usr/share/man/man1/cmatrix.1.gz

Infraestructura de MercadoLibre

La entrevista de Pelado Neerd a dos administradores de sistemas de MercadoLibre (familiarmente y en adelante ML) aporta el estímulo de conocer qué se hace en otros entornos, sus diferencias con los nuestros, por tamaño o por decisiones para retos de infraestructura. Destaco unos pocos asuntos que me han llamado la atención y porqué:

  • Servidores: 10.000, aparentemente todo máquinas virtuales y no se menciona que haya infraestructura en centro de datos propio.
  • Equipo: 300 personas en mantenimiento de la infraestructura y 7.000 desarrolladores. Dividido en equipos de comunicaciones, creación y mejora de la propia infraestructura, operación de la infraestructura.
  • Nubes empleadas: emplean AWS y GCE para evitar dependencias, realizan movimiento de infraestructura de una a otra aunque determinados servicios está atados a una de ellas.
  • Machine Learning para optimización de la infraestructura: han empleado machine learning para diagnosticos de la infraestructura, si proyectan crecimientos, dónde optimizar, etc. Coinciden con Pelado Nerd que un acercamiento menos ambicioso es más efectivo. Hay herramientas de machine learning en el mercado que ofrecen ahorros como resultados de sus diagnósticos y el coste de la herramienta es superior al ahorro que propone.
  • Infraestructura para pruebas: las pruebas de desarrollo se realizan automatizadamente (CI / CD vía Git, sin necesidad del equipo de infraestructura) en una infraestructura que se despliega a propósito para cada prueba sin afectar al resto de los entornos, cuando finaliza la prueba se destruye.
  • Modelos de despliegue: “blue-green” es empleado mayoritariamente, en ocasiones “rolling

Acotando el comando top para un proceso concreto

El comando top ofrece opciones para casi todo. La administración de Linux requiere, a veces, fijarse en uno o unos pocos procesos concretos. Hay otras maneras de hacerlo (es una de las ventajas de Linux).

Resulta fácil recordar esta opción, en la que a continuación del comando top añadimos “-p” de process y podemos poner tantos PID separados por coma como sean necesarios.

# top -p659

Un ejemplo de cómo se ve un solo proceso, en este caso el demonio de fail2ban:

Otro ejemplo de cómo ver más de un proceso, en este caso, dos procesos de nginx:

# top -p487,488

(Des)habilitar una aplicación al inicio de Gnome

Al iniciar sesión en Gnome pueden iniciarse aplicaciones automáticamente. Se trata de una aplicación, cualquiera, no de un demonio del sistema, y que solamente se arranca cuando el usuario inicia su sesión.

¿De qué manera se habilita o deshabilita el auto arranque de una aplicación? El directorio /home/usuario/.config/autostart/ del usuario contiene un fichero oculto con el nombre de la aplicación que se está iniciando automáticamente.

Una instalación de Microsoft Teams en Linux creará un fichero como el que sigue y tanto para este ejemplo como para el resto, la línea a modificar es evidente, destaco en negrita:

user@host:~/.config/autostart$ cat teams.desktop
[Desktop Entry]
Version=1.0
Type=Application
Encoding=UTF-8
Name=Microsoft Teams - Preview
Exec=/usr/bin/teams %U
Icon=teams
Terminal=false
StartupNotify=false
Categories=Network;Application;
MimeType=x-scheme-handler/msteams;
X-GNOME-Autostart-enabled=false
X-KDE-Protocols=teams

No need to reboot

This week in a -almost- desperate way of trying to solve an effect because no root cause is detected a machine reboot has been scheduled. When I was starting at Linux system administration I realized that there’s no need to reboot s Linux system in general, only in very specific scenarios.

Although production environments at job are now over a year of uptime I feel particularly proud that a humble -and quite old- RaspberryPi for testing purposes at home has reached 76 days of uptime. It’s needs to be told that I never take care of power supply and reboot that little one every time this is the shortest path to solve anything in there.