Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org/
Licencia de este documento: Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2022 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
DNF es una herramienta libre, escrita en Python, diseñada para gestión de paquetes en distribuciones de GNU/Linux que utilizan RPM.
Actualmente es el gestor de paquetes de facto de Fedora™ y Red Hat™ Enterprise Linux y otras distribuciones de GNU/Linux basadas sobre éstas.
Actualizar el sistema aplicando los más recientes parches de seguridad y correctivos, es hoy más fácil gracias a DNF. El infierno de resolver dependencias entre paquetes RPM terminó hace muchos años. A continuación, los procedimientos para utilizar dnf y realizar fácilmente lo que algunos denominan «horrible, difícil y complicado.»
Lo siguiente listará todos los paquetes en la base de datos dnf disponibles para instalación :
dnf list available | less
Lo siguiente listará todos los paquetes instalados en el sistema:
dnf list installed | less
Lo siguiente listará sólo las versiones instaladas en el sistema del paquete kernel:
dnf list installed kernel
Lo siguiente listará todos los paquetes instalados en el sistema y que pueden (y deben) actualizarse:
dnf list updates | less
Lo siguiente listará todos los paquetes instalados, disponibles y actualizaciones:
dnf list all | less
Lo siguiente listará sólo los paquetes instalados, disponibles y actualizaciones cuyo nombre coincida con la expresión regular «tools»:
dnf list *tools*
Lo siguiente mostrará la lista de todos los grupos de paquetes disponibles en los almacenes DNF:
dnf grouplist
Realizar una búsqueda de algún paquete o expresión regular en la base de datos en alguno de los almacenes DNF configurados en el sistema:
dnf search nombre-paquete
Ejemplo:
dnf search cups
Consulta de información.
Consultar la información contenida en un paquete en particular::
dnf info nombre-paquete
Ejemplo:
dnf info cups
Consultar la lista de paquetes que conforman un grupo de paquetes en particular:
dnf groupinfo "Nombre del Grupo"
El valor de «Nombre del Grupo» es de acuerdo a la lista mostrada por la ejecución de dnf grouplist.
Ejemplo:
dnf groupinfo web-server
Instalación de paquetes.
Instalación de paquetes con resolución automática de dependencias y a partir de los almacenes en línea:
dnf install nombre-paquete
Ejemplo:
dnf install elinks
Instalación de paquetes con resolución automática de dependencias, sin verificación de firmas digitales y a partir de los almacenes en línea:
dnf install --nogpgcheck nombre-paquete
Ejemplo:
dnf install --nogpgcheck elinks
Instalación de paquetes con resolución automática de dependencias, a partir de los almacenes en línea y sin dialogo de confirmación:
dnf -y install nombre-paquete
Ejemplo:
dnf -y install elinks
Instalación de paquetes con resolución automática de dependencias y localizados en el sistema de archivos local:
dnf localinstall ~/Descargas/paquete.rpm
Ejemplo:
dnf localinstall ~/Descargas/google-chrome-stable-126.0.6478.114-1.x86_64.rpm
Instalación de paquetes con resolución automática de dependencias, localizados en el sistema de archivos local y sin dialogo de confirmación:
dnf -y localinstall ~/Descargas/paquete.rpm
Ejemplo:
dnf -y localinstall google-chrome-stable-126.0.6478.114-1.x86_64.rpm
Instalación de paquetes con resolución automática de dependencias, sin verificación de firmas digitales y localizados en el sistema de archivos local:
dnf localinstall --gpgcheck ~/Descargas/paquete.rpm
Ejemplo:
dnf localinstall --gpgcheck ~/Descargas/google-chrome-stable-126.0.6478.114-1.x86_64.rpm
Instalación de grupos de paquetes
Instalación de grupos de paquetes con resolución automática de dependencias:
dnf groupinstall "Nombre del Grupo"
El valor de «Nombre del Grupo» es de acuerdo a la lista mostrada por la ejecución de dnf grouplist.
Ejemplo:
dnf groupinstall web-server
Instalación de grupos de paquetes con resolución automática de dependencias y sin dialogo de confirmación:
dnf -y groupinstall "Nombre del Grupo"
Ejemplo:
dnf -y groupinstall web-server
De modo predeterminado, la instalación de grupos sólo incluirá los paquetes obligatorios y los predeterminados. Para instalar los paquetes opcionales, algo poco recomendado, edite el archivo /etc/dnf.conf:
vim /etc/dnf.conf
Añada la opción group_package_types
con los valores default, mandatory, optional
. Ejemplo:
[main]
cachedir=/var/cache/dnf/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/dnf.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
group_package_types=default, mandatory, optional
# This is the default, if you make this bigger dnf won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by dnf not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (dnf-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/dnf.repos.d
Evite utilizar la opción -y al desinstalar paquetes, a menos que se esté seguro de las consecuencias. Preferentemente siempre corrobore qué es lo que se va a desinstalar antes de responder Si o Yes.
Para llevar a cabo la desinstalación de paquetes, junto con todo aquello que dependa de éstos:
dnf remove nombre-paquete
Ejemplo:
dnf remove elinks
Para llevar a cabo la desinstalación de grupos de paquetes con resolución automática de dependencias:
dnf groupremove "Nombre del Grupo"
El valor de «Nombre del Grupo» es de acuerdo a la lista mostrada por la ejecución de dnf grouplist.
Ejemplo:
dnf groupremove web-server
Ejecute lo siguiente para actualizar el sistema:
dnf update
Ejecute lo siguiente para actualizar el sistema sin dialogo de confirmación:
dnf -y update
Ejecute lo siguiente para actualizar el sistema omitiendo los paquetes con dependencias rotas:
dnf --skip-broken update
Ejecute lo siguiente para actualizar sólo un paquete en particular:
dnf update nombre-paquete
Ejemplo:
dnf update cups
Ejecute lo siguiente para actualizar sólo un paquete en particular sin dialogo de confirmación:
dnf -y update nombre-paquete
Ejemplo:
dnf -y update cups
La actualización de grupos de paquetes con resolución automática de dependencias utiliza la siguiente sintaxis:
dnf groupupdate "Nombre del Grupo"
El valor de «Nombre del Grupo» es de acuerdo a la lista mostrada por la ejecución de dnf grouplist.
Ejemplo:
dnf groupupdate mail-server
La sintaxis para la actualización de grupos de paquetes con resolución automática de dependencias y sin dialogo de confirmación corresponde a lo siguiente:
dnf -y groupupdate "Nombre del Grupo"
Ejemplo:
dnf -y groupupdate mail-server
Instale el paquete dnf-automatic
:
dnf -y install dnf-automatic
Edite el archivo /etc/dnf/automatic.conf
:
vim /etc/dnf/automatic.conf
Establezca los siguiente valores:
[commands]
upgrade_type = default
random_sleep = 0
download_updates = yes
apply_updates = yes
[emitters]
system_name = servidor.midominio.com
emit_via = stdio
[email]
email_from = root@midominio.com
email_to = root
email_host = servidor.midominio.com
[command]
[command_email]
email_from = root@midominio.com
email_to = root
[base]
debuglevel = 1
Active el servicio de actualizaciones automáticas ejecutando lo siguiente:
systemctl enable --now dnf-automatic.timer
DNF deja como resultado de su uso metadatos —y a veces de paquetes por transacciones canceladas— dentro del directorio /var/cache/dnf/
. Cuando se establece la opción keepcache=1
en el archivo /etc/dnf.conf
los paquetes RPM instalados prevalecen en el interior y pueden ocupar mucho espacio.
Ejecute lo siguiente para realizar la limpieza de todo el cache de DNF (metadatos, paquetes, etc.):
dnf clean all
Ejecute lo siguiente para eliminar sólo los metadatos:
dnf clean metadata
Ejecute lo siguiente sólo para eliminar paquetes descargados:
dnf clean packages
Verificación de la base de datos RPM.
Ejecute lo siguiente para verificar la base de datos de RPM en busca de dependencias rotas y otros problemas:
dnf check