Note:
- Este tutorial está disponible en un entorno de laboratorio gratuito proporcionado por Oracle.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Uso de DNF en Oracle Linux
Introducción
Oracle Linux proporciona la utilidad dnf, basada en Dandified Yum (DNF), como el software de cliente para instalar y gestionar paquetes del sistema. Estos paquetes pueden provenir de Unbreakable Linux Network (ULN) o un servidor yum de Oracle Linux. Los paquetes de software se instalan en un sistema mediante comandos dnf estándar y dependen de que el sistema haya activado las suscripciones de canal ULN o los repositorios de yum adecuados. Al instalar o actualizar paquetes, dnf maneja automáticamente las dependencias y los requisitos de los paquetes.
DNF mejora significativamente la funcionalidad y el rendimiento y trae muchas nuevas características, incluyendo contenido modular y una API más estable y documentada, en comparación con el comando tradicional de yum.
Objetivos
En este tutorial, aprenderá a:
- Trabajar con repositorios DNF
- Gestionar paquetes y módulos
- Instalar actualizaciones de seguridad
- Uso de grupos de paquetes
- Utilizar la función de historial DNF
- Automatice las actualizaciones de parches
Requisitos
-
Mínimo de un único sistema Oracle Linux
-
Cada sistema debe tener Oracle Linux instalado y configurado con:
- Una cuenta de usuario no raíz con acceso sudo
- Acceso a internet
Despliegue de Oracle Linux
Nota: Si se ejecuta en su propio arrendamiento, lea el proyecto linux-virt-labs GitHub README.md y complete los requisitos antes de desplegar el entorno de prácticas.
-
Abra un terminal en Luna Desktop.
-
Clone el proyecto
linux-virt-labsGitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git -
Cambie al directorio de trabajo.
cd linux-virt-labs/ol -
Instale las recopilaciones necesarias.
ansible-galaxy collection install -r requirements.yml -
Despliegue el entorno de prácticas.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6"El entorno de prácticas libres necesita la variable adicional
local_python_interpreter, que defineansible_python_interpreterpara las reproducciones que se ejecutan en localhost. Esta variable es necesaria porque el entorno instala el paquete RPM para el SDK para Python de Oracle Cloud Infrastructure, que se encuentra en los módulos python3.6.La unidad de despliegue por defecto utiliza la CPU AMD y Oracle Linux 8. Para utilizar una CPU Intel u Oracle Linux 9 u 10, agregue
-e instance_shape="VM.Standard3.Flex"o defina-e os_version="10",-e os_version="9"o-e os_version="8"en el comando de despliegue.Importante: Espere a que el cuaderno de estrategias se ejecute correctamente y alcance la tarea de pausa. En esta etapa del manual, se ha completado la instalación de Oracle Linux y las instancias están listas. Tome nota de la reproducción anterior, que imprime las direcciones IP públicas y privadas de los nodos que despliega y cualquier otra información de despliegue necesaria al ejecutar el ejercicio práctico.
Trabajar con repositorios DNF
-
Abra un terminal y conéctese mediante SSH a la instancia ol-node-01.
ssh oracle@<ip_address_of_instance> -
Obtener una lista de repositorios activados.
dnf repolistDNF busca en el directorio
/etc/yum.repos.dlos archivos que terminan en.repo. Puede pasar la opciónallpara ver una lista de los repositorios activados y desactivados. Un archivo de repositorio puede definir uno o más repositorios y considerar el repositorio activado cuandoenabled=1y desactivado cuandoenabled=0. -
Active un repositorio.
Oracle Linux 10:
sudo dnf config-manager --enable ol10_codeready_builderOracle Linux 9:
sudo dnf config-manager --enable ol9_codeready_builderOracle Linux 8:
sudo dnf config-manager --enable ol8_codeready_builder -
Desactive un repositorio.
Oracle Linux 10:
sudo dnf config-manager --disable ol10_codeready_builderOracle Linux 9:
sudo dnf config-manager --disable ol9_codeready_builderOracle Linux 8:
sudo dnf config-manager --disable ol8_codeready_builder -
Instale un repositorio.
Oracle Linux envía repositorios predefinidos para varios productos en formato de paquete. Puede buscarlos y, a continuación, instalarlos y activarlos.
dnf search oracle*release*Oracle Linux 10:
sudo dnf install -y oracle-instantclient-release-el10Oracle Linux 9:
sudo dnf install -y oracle-instantclient-release-el9Oracle Linux 8:
sudo dnf install -y oracle-instantclient-release-el8Aunque no se prefiere, también puede instalar repositorios mediante:
- Creación directa de un nuevo archivo
.repoen/etc/yum.repos.d - Uso de
dnf config-manager --add-repo <repo_file>, que permite instalar un archivo de repositorio almacenado localmente o desde una URL
- Creación directa de un nuevo archivo
-
Elimine la caché DNF.
Para ayudar con el rendimiento, DNF almacena en caché los datos en
/var/cache/dnf. Hay veces que estos datos almacenados en caché pueden quedar obsoletos y provocar el fallo de los comandosdnf. Para solucionar este problema, puede eliminar todos los elementos almacenados en caché.dnf clean allDNF reconstruye automáticamente esta caché a lo largo del tiempo a medida que ejecuta varios comandos. Para solucionar un fallo de un comando, puede borrar la caché y, a continuación, volver a intentar el comando con fallos.
Gestión de paquetes y módulos
Nota para Oracle Linux 10: la modularidad DNF (módulos y flujos) no está disponible en Oracle Linux 10. Puede instalar paquetes estándar desde el repositorio AppStream, pero no puede activar ni instalar módulos o flujos como en versiones anteriores.
En los pasos proporcionados, donde se utiliza la modularidad DNF, las instrucciones solo se aplican a Oracle Linux 8 y Oracle Linux 9.
-
Obtenga una lista de los paquetes disponibles de los repositorios activados.
dnf listPuede limitar la salida devuelta mediante las opciones
installedoavailablee incluso solicitando un nombre de paquete específico, comodnf list available git. -
Muestre los módulos disponibles.
dnf module listLa salida muestra los módulos disponibles para el sistema, los flujos asociados y los perfiles en los que:
Name: nombre de móduloStream: versión de flujoProfiles: perfiles disponibles y su estadocommon: despliegue reforzado listo para producción y es el perfil por defectodevelopment: instala los paquetes necesarios para realizar modificaciones en el módulominimal: instala el juego más pequeño de paquetes que proporcionan una aplicación de trabajo
Utilice la Indicación al final de la salida para determinar qué flujos y perfiles están activados, desactivados, instalados o default.
De forma similar a los paquetes, puede transferir un nombre de módulo a la opción
listpara ver el estado de ese módulo. -
Obtener información sobre un paquete o módulo.
dnf info zshEn este caso,
zshes el nombre del paquete. Lo mismo ocurre con los módulos, pero agrega el comandomoduley agrega el módulo específico, comodnf module info php. Si necesita información sobre un flujo de módulo determinado, transfiera--profilejunto con el module:stream en lugar del nombre del módulo.dnf module info --profile php:8.2 -
Busque un paquete disponible o instalado.
dnf search php -
Busque el paquete que proporciona un nombre de archivo o un comando específicos.
El comando
provides, con un alias dewhatprovides, busca el paquete que coincide con el nombre de archivo. Si no proporciona una ruta de acceso completa, DNF agrega/usr/sbiny/usr/binal nombre de archivo. Con fines heredados, también agrega/sbiny/bin.dnf provides sudo -
Instale un software.
sudo dnf install tmuxResponda
ypara confirmar la instalación del paquete. Evite este paso adicional en el futuro pasando la opción-y. DNF, por defecto, sólo instala paquetes de repositorios activados. Sin embargo, puede omitir ese comportamiento predeterminado transfiriendo la opción--enablerepo=<repo name>. -
Vuelva a instalar un paquete.
sudo dnf reinstall -y tmuxEste comando realiza esencialmente un
dnf removey, a continuación, undnf install. La diferencia fundamental es que el uso de la reinstalación mantiene cualquier configuración personalizada de archivos asociados con el paquete. -
Activar un módulo.
Antes de instalar paquetes desde un módulo, debe activarlo.
Oracle Linux 9:
sudo dnf module -y enable nginx:1.22Oracle Linux 8:
sudo dnf module -y enable nginx -
Instalar un módulo.
Oracle Linux 9:
sudo dnf module install -y nginx:1.22Oracle Linux 8:
sudo dnf module install -y nginx:1.14Después de instalar los paquetes, al ejecutar
sudo dnf module list nginx, se muestra un[i]junto al perfil common [d] del flujo 1.22. -
Elimine un paquete o módulo.
sudo dnf remove -y tmuxDe manera similar, puede eliminar un módulo con la misma sintaxis mediante la sustitución del nombre del paquete por module:stream/profile.
-
Cambiar un módulo.
El cambio de flujos de módulo hace que el contenido se actualice o se reduzca a una versión diferente de la versión actual del sistema. También gestiona la instalación de dependencias adicionales o la eliminación de paquetes que ya no son necesarios.
sudo dnf module -y switch-to nginx:1.24/common -
Desactivar un módulo seleccionándolo.
sudo dnf module -y disable nginxAl desactivar un módulo, se garantiza la eliminación de los perfiles instalados, que todos los flujos de módulos relacionados dejen de estar disponibles y que el RPMS modular no forme parte del conjunto de paquetes. Si DNF detecta cualquier conflicto, se rechaza la operación. Un motivo para desactivar un módulo es que existen paquetes más recientes en el repositorio y el flujo de aplicaciones por defecto.
-
Restablezca un módulo.
Esta operación define el estado del módulo para que ya no esté activado ni desactivado. DNF elimina todos los perfiles y sólo los paquetes del perfil predeterminado están disponibles.
sudo dnf module -y reset nginx
Instalar actualizaciones de seguridad
-
Enumerar todos los errores disponibles.
dnf updateinfo listLa salida muestra los repositorios activados seguidos de cada actualización. DNF ordena los errores disponibles en orden de sus ID y los identifica más por su tipo.
Severity/Sec: parche de prioridad/seguridadbugfix: corrección de erroresenhancement: mejora de funciones
Puede agregar cves, bugfix o security al comando para limitar la salida a ese tipo de error específico. También puede transferir
--installedpara obtener una lista de las correcciones de seguridad instaladas en el host. -
Mostrar un resumen de los errores disponibles.
dnf updateinfo summary -
Obtenga una lista de las actualizaciones de seguridad en función de la gravedad.
Puede transferir Crítico, Importante, Moderado o Bajo a la opción
--sec-severity.dnf updateinfo list --sec-severity=ImportantDNF permite transferir otras opciones al comando
list. Puede utilizar--advisory <Advisory ID>para obtener un asesor específico o--cve <CVD IDpara obtener un CVE concreto. El uso del comandoinfoen lugar delisty las opciones exactas proporcionan información detallada sobre el asesor o CVE específicos. -
Actualice cada paquete a su última versión.
sudo dnf upgrade -yOpcionalmente, puede excluir un paquete específico de la actualización con la opción
-xseguida del nombre del paquete. Aunque Oracle Linux recomienda aplicar todos los errores, el comandoupgradetoma las siguientes opciones:--cve: actualiza un único ID de CVE--advisory: actualizar un único ID de asesor--security: actualiza todos los errores relacionados con la seguridad
Como alternativa, un usuario puede ejecutar
sudo dnf upgrade-minimalpara aplicar únicamente actualizaciones a los paquetes que proporcionan una corrección de bugs, una mejora o una corrección para un problema de seguridad.Importante: Después de actualizar el núcleo, asegúrese de reiniciar el sistema. Si ejecuta un sistema en el que no es posible reiniciar, se recomienda utilizar Oracle Ksplice para aplicar parches de núcleo.
Gestionar grupos de paquetes
DNF permite la instalación, actualización o eliminación de grupos de paquetes. Estos grupos son una recopilación de paquetes dependientes que tienen un propósito común.
-
Listado de los grupos disponibles.
dnf group list -
Obtener una lista de los grupos que contiene un grupo.
dnf group info "Server with GUI"El Server with GUI instala el escritorio gráfico de GNOME.
-
Mostrar los paquetes individuales que contiene un grupo.
dnf group info Core -
Instale el grupo.
sudo dnf group install "Server with GUI" --assumenoLa opción
--assumenoresponderá automáticamente no y omitirá la instalación para ahorrar tiempo en este tutorial. Deje esta opción fuera del comando y sustitúyala por la opción-ypara instalarla automáticamente. DNF proporciona los comandosdnf group updateydnf group removepara actualizar y eliminar grupos.
Uso de la Función Historial de DNF
La función de historial de DNF muestra todas las acciones realizadas por el comando dnf. La función de historial permite deshacer, rehacer y deshacer una transacción DNF específica. Además del historial de DNF, las instalaciones, actualizaciones y eliminaciones de paquetes se registran en el archivo /var/log/dnf.log.
-
Enumere todas las transacciones de DNF.
dnf historyPuede obtener información relacionada con una de las transacciones ejecutando
dnf history info <transaction ID>. -
Realizar un rollback de una transacción específica.
La opción
rollbackdeshará todas las transacciones después del<transaction ID>especificado. Si solo desea revertir una sola transacción, utiliceundoen su lugar.sudo dnf history rollback <transaction ID>El comando DNF
history rollbackincrementa el ID de transacción y registra el rollback como una transacción única. -
Repita una transacción específica.
Puede
redola transacción específica y repetir cada uno de sus pasos.sudo dnf history redo <transaction ID>
Automatizar la aplicación de parches
Una alternativa a la ejecución manual de dnf upgrade es utilizar la herramienta automática DNF. Esta herramienta proporciona notificaciones automáticas de actualizaciones, las descarga e instala los paquetes automáticamente mediante temporizadores systemd.
-
Instale el paquete requerido y active el temporizador.
sudo dnf install dnf-automatic -ysudo systemctl enable --now dnf-automatic.timer -
Visualice la configuración predeterminada de upgrade_type.
El archivo de configuración de la herramienta automática DNF es
/etc/dnf/automatic.conf. Por defecto, la actualización automática se aplica a todas las actualizaciones disponibles. Puede cambiar el parámetroupgrade_typeasecuritypara que solo utilice los cambios de versión de seguridad.grep upgrade_type /etc/dnf/automatic.conf
Pasos Siguientes
En este tutorial se explica cómo gestionar paquetes de software en el sistema Oracle Linux y asegurarse de mantenerlo actualizado con las últimas correcciones de seguridad. Por lo tanto, actualice sus sistemas y, a continuación, consulte la sección Enlaces relacionados para obtener más información y formación sobre Oracle Linux.
Enlaces relacionados
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.