From Mageia wiki
Jump to: navigation, search
Estado de la traducción:

Este articulo es la versión traducida de Using DNF. Fecha de la ultima traducción 29/10/2023. Puede ayudar a sincronizar la traducción, en caso de haber cambios en la versión original.

Drakconf multiflag.png
Otros idiomas
Deutsch ; English ; Español ; Français ; Nederlands ; 简体中文 ;

Preámbulo

Casi se ha terminado de implementar DNF como administrador de repositorios alternativo, y es posible comenzar a utilizarlo. Pero antes de utilizar DNF, lea la Advertencia sobre el mecanismo de paquetes huérfanos, y haga una búsqueda en nuestro Bugzilla. Al final de este documento hay enlaces a los manuales.

Instalación y configuración

Estable

Normalmente esta instalado por omisión, de no ser así ejecute como root urpmi dnf

Siguiente generación

En Cauldron también esta disponible la próxima versión de DNF, DNF5. Es básicamente una completa reescritura. Pero la mayoría de los parámetros y comandos de la versión previa funcionan bien.

Para instalarla: dnf install dnf5

Uso: Solo usela de la misma forma que la versión estable añadiendo un 5 a dnf.

Ejemplo: dnf5 upgrade --refresh --allowerasing para migrar a una nueva versión de mageia.

Documentación: https://dnf5.readthedocs.io/en/latest/

Elegir repositorios

Por omisión están habilitados dos repositorios y así debe ser siempre: core y core updates; en DNF se nombran como mageia-x86_64 y updates-x86_64 para sistemas de 64 bit; mageia-i586 y updates-i586 para sistemas de 32-bit.

Si ha instalado paquetes de otro repositorio, siempre deberá tener ese repositorio y su versión updates habilitados.

¡Note que esto es importante cuando migra de urpmi a DNF, o si usa ambos; debe tener los repositorios correspondientes habilitados para ambos!

  • Si desea activar los repositorios nonfree o tainted, puede hacerlo mediante dnf config-manager como se muestra en el ejemplo para sistemas de 64bit (para sistemas de 32 bit reemplace x86_64 por i586) :
 dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree
  • Los repositorios de 32-bit están desactivados de forma predeterminada para sistemas 64-bit. Pueden activarse mediante dnf config-manager como se muestra en el ejemplo:
 dnf config-manager --set-enabled mageia-i586 updates-i586

Repita si necesita las versiones 32 bit de los repositorios nonfree y tainted (vea ejemplo anterior).

  • Para Cauldron, cambie "mageia" por "cauldron" y "updates", "backports", etc. por "cauldron-updates", "cauldron-backports", etc en los comando anteriores.
  • Si desea cambiar la selección de servidores por uno que prefiera, puede hacerlo editando los archivos de configuración de los repositorios en /etc/yum.repos.d. Descomente la linea "baseurl=" y cambie la URL para que apunte al servidor deseado. Esto ignorara automáticamente las lineas "metalink" y "mirrorlist" para utilizar el servidor deseado. Si lo desea puede comentar las lineas "metalink=" y "mirrorlist=", pero esto anulara el mecanismo de protección en caso de que el servidor "primario" no este funcionando.

Ejemplo: Esta es la lista de repositorios en un sistema 64 bit con los repositorios nonfree, tainted y los repositorios de 32-bit:

$ dnf repolist
repo id                                           repo name
mageia-i586                                       Mageia 9 - i586
mageia-i586-nonfree                               Mageia 9 - i586 - Nonfree
mageia-i586-tainted                               Mageia 9 - i586 - Tainted
mageia-x86_64                                     Mageia 9 - x86_64
mageia-x86_64-nonfree                             Mageia 9 - x86_64 - Nonfree
mageia-x86_64-tainted                             Mageia 9 - x86_64 - Tainted
updates-i586                                      Mageia 9 - i586 - Updates
updates-i586-nonfree                              Mageia 9 - i586 - Nonfree - Updates
updates-i586-tainted                              Mageia 9 - i586 - Tainted - Updates
updates-x86_64                                    Mageia 9 - x86_64 - Updates
updates-x86_64-nonfree                            Mageia 9 - x86_64 - Nonfree - Updates
updates-x86_64-tainted                            Mageia 9 - x86_64 - Tainted - Updates  

Comandos para iniciarse

Vea también la documentación.

Como root:

  • dnf install ri-li instala ri-li
  • dnf reinstall ri-li reinstala ri-li
  • dnf downgrade ri-li instala la versión previa de ri-li
  • dnf remove ri-li elimina ri-li
  • dnf makecache refresca los metadatos (información sobre lo que esta disponible en los repositorios)
  • dnf check-update --refresh refresca los metadatos y comprueba si hay actualizaciones
  • dnf upgrade --refresh refresca los metadatos e instala todas las actualizaciones disponibles
  • dnf upgrade --best forza la selección de las mejores versiones disponibles, lo que puede ayudar a determinar errores de dependencias
  • dnf distro-sync --refresh refresca los metadatos y sincroniza el conjunto de paquetes instalados en la computadora con las versiones disponibles en los repositorios
  • dnf distro-sync --allowerasing --best ayuda a la actualización de paquetes que han cambiado de versión mayor, e.j. lib64clang3.8 a lib64clang3.9
  • dnf history list muestra el historial de los comandos install/remove/upgrade
  • dnf history info 12 muestra lo acontecido durante la 12da entrada del historial
  • dnf shell llama a la consola interactiva para realizar varias acciones en una sola transacción
  • dnf install --enablerepo updates_testing-x86_64 caja instala el paquete caja desde un repositorio específico (updates_testing-x86_64)

Como usuario (o root):

  • dnf help muestra la ayuda
  • dnf search fax muestra todos los paquetes con la palabra "fax" en el nombre o sumario.
  • dnf repolist muestra los repositorios activos con el espacio ocupado y la última comprobación de los metadatos. Primero descargará la información que no ha sido descargada.

Versiones cortas de los comandos comunes

Desde DNF 2.6.2, hay abreviaciones de los comandos de uso más común:
As root:

  • dnf in ri-li instala ri-li
  • dnf ri ri-li reinstala ri-li
  • dnf dg ri-li instala una versión anterior de ri-li
  • dnf rm ri-li elimina ri-li
  • dnf mc refresca los metadatos (información sobre lo que esta disponible en los repositorios)
  • dnf up instala todas las actualizaciones disponibles
  • dnf dsync sincroniza el conjunto de paquetes instalados en la computadora con las versiones disponibles en los repositorios
  • dnf sh llama a la consola interactiva para realizar varias acciones en una sola transacción

Como usuario (o root):

  • dnf se fax muestra todos los paquetes con la palabra "fax" en el nombre o sumario.

Si esta en un sistema no-Ingles y necesita la salida en Ingles, entonces añada LANGUAGE=C antes del comando.

Interfaz grafica

Instale: dnf in dnfdragora

Ejecute: Menu > Herramientas > Herramientas del Sistema > dnfdragora. ( o en terminal ejecute dnfdragora )

Fallo: mga#21453 - dnfdragora no recuerda la selección de paquetes.

Advertencia sobre el mecanismo de paquetes huérfanos

Mezclar los mecanismos de urpmi y DNF para eliminar paquetes huérfanos causa que ambos se vuelvan no confiables.

Si va a utilizar DNF, haga el cambio lo más pronto posible tras una instalación limpia.

Quitar la aplicación de actualización URPMI

Desinstale mgaonline.

Aplicación de actualización DNF

Instale dnfdragora-updater.

Sincronizar repositorios

En este capítulo demostramos la sincronización "fuera de línea" de paquetes instalados. Esto significa que en la etapa de preparación se evalúa lo que se hará, se verifica con el usuario, se descargan todos los paquetes necesarios y se preparan los scripts. Posteriormente, el usuario ejecuta otro comando que reinicia el sistema y ejecuta el proceso al reiniciar. Esto minimiza la posibilidad de problemas en comparación con cambiar paquetes en un sistema en ejecución.

(Para trabajar en un sistema en ejecución, vea "dnf distro-sync" descrito brevemente arriba.)

Estos comandos sincronizan las versiones de los paquetes instalados, con las de los paquetes disponibles en los repositorios habilitados - actualizando versiones, instalando dependencias, instalando versiones previas y opcionalmente elimina paquetes que no existen en los repositorios.

Por ejemplo, esto es perfecto para ejecutar en un sistema en el que ha estado probando Mageia antes de su publicación, o ha participado probando actualizaciones, y quiere asegurarse de usar solo versiones oficiales - ni más ni menos. Es de gran utilidad si la migración a la nueva versión de Mageia sale mal.

Asegúrese de tener los repositorios necesarios activados, vea Elegir repositorios. Los repositorios pueden deshabilitarse según se necesite, vea el ejemplo a continuación, opción "disablerepo".

Tiene que instalar como root el comando: dnf install 'dnf-command(offline-distrosync)'

El comando a ejecutar es dnf offline-distrosync download --disablerepo=\*cauldron\* --allowerasing - Nota, puede que no quiera utilizar la opción "--allowerasing" ya que puede borrar algo que necesite y que no pueda ser reinstalado posteriormente. Lo que sigue a --disablerepo es para evitar los repositorios cauldron que puedan estar configurados. Puede hacer lo mismo para los repositorios testing que pueda tener.

Este es un ejemplo ejecutado en un sistema que estaba funcionando con Cauldron antes de la publicación de Mageia 9, y algún tiempo más, antes de cambiar a la versión estable, Note que algunos paquetes tenían versiones incorrectas - DNF llega al rescate :) Como podrá ver se actualizaron versiones, instalaron dependencias, se instalaron versiones previas y se eliminaron paquetes. Este sistema no había utilizado DNF amtes, asi que tuve que habilitar los mismos repositorios que había utilizado con urpmi: nonfree, tainted y repositorios de 32-bit.

$ LANGUAGE=C sudo dnf offline-distrosync download --disablerepo=\*cauldron\* --allowerasing
No repository match: *cauldron*
Mageia 9 - i586                                                                    8.8 kB/s | 2.5 kB     00:00 
Mageia 9 - i586 - Updates                                                          5.5 kB/s | 1.5 kB     00:00 
Mageia 9 - i586 - Nonfree                                                          6.0 kB/s | 2.0 kB     00:00 
Mageia 9 - i586 - Nonfree - Updates                                                4.3 kB/s | 1.5 kB     00:00    
Mageia 9 - x86_64 - Nonfree                                                        4.1 kB/s | 2.0 kB     00:00    
Mageia 9 - x86_64 - Nonfree - Updates                                              4.5 kB/s | 1.5 kB     00:00    
Mageia 9 - i586 - Tainted                                                          2.4 kB/s | 1.5 kB     00:00    
Mageia 9 - i586 - Tainted - Updates                                                4.6 kB/s | 1.5 kB     00:00    
Mageia 9 - x86_64 - Tainted                                                        4.5 kB/s | 1.5 kB     00:00    
Mageia 9 - x86_64 - Tainted - Updates                                              4.7 kB/s | 1.5 kB     00:00    
Mageia 9 - x86_64                                                                  7.4 kB/s | 2.5 kB     00:00    
Mageia 9 - x86_64 - Updates                                                        5.7 kB/s | 1.5 kB     00:00    
Dependencies resolved.
===================================================================================================================
Package                                Architecture Version                     Repository                   Size
===================================================================================================================
Installing:
kernel-desktop                         x86_64       6.4.9-4.mga9                mageia-x86_64                80 M
Installing dependencies:
lib64bind9.18.15                       x86_64       9.18.15-2.mga9              mageia-x86_64               1.2 M
Removing:
kernel-desktop                         x86_64       6.3.9-1.1.mga9              @System                      89 M
kernel-desktop                         x86_64       6.4.8-3.mga9                @System                      90 M
kernel-desktop                         x86_64       6.4.8-4.mga9                @System                      90 M
kernel-desktop                         x86_64       6.4.9-2.mga9                @System                      90 M
Downgrading:
bind-utils                             x86_64       9.18.15-2.mga9              mageia-x86_64               194 k
- 65 lines omitted for this wiki post... -
wireless-regdb                         noarch       20230503-1.mga9             mageia-i586                  15 k
Transaction Summary
===================================================================================================================
Install     2 Packages
Remove      4 Packages
Downgrade  67 Packages
Total download size: 143 M
DNF will only download packages, install gpg keys, and check the transaction.
Is this ok [y/N]: y
Downloading Packages:
(1/69): gurpmi-8.131-1.mga9.noarch.rpm                                             254 kB/s |  25 kB     00:00    
- 67 lines omitted for this wiki post... -
(69/69): kernel-desktop-6.4.9-4.mga9.x86_64.rpm                                    1.9 MB/s |  80 MB     00:41    
-------------------------------------------------------------------------------------------------------------------
Total                                                                              2.2 MB/s | 143 MB     01:06     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Complete!
Transaction saved to /var/lib/dnf/system-upgrade/system-upgrade-transaction.json.
Download complete! Use 'dnf offline-distrosync reboot' to start the upgrade.
To remove cached metadata and transaction use 'dnf offline-distrosync clean'
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.   

Lea cuidadosamente el reporte. Si lo desea, puede cambiar los repositorios o las opciones del comando y ejecutarlo nuevamente.

Si decide ejecutarlo:

  1. ¡Guarde su trabajo, y cierre sus aplicaciones!
  2. Dispare el comando: dnf offline-distrosync reboot - /!\ NOTA: ¡Se reiniciará el sistema inmediatamente! /!\

Cuando el sistema esté funcionando de nuevo, asegúrese de desinstalar mageia-repos-cauldron: dnf remove mageia-repos-cauldron. Aquí encontrará documentación adicional.

Migrar la versión de Mageia mediante DNF

Puede migrar a la siguiente versión de Mageia en pocos pasos. Note que todos los comandos deben ejecutarse como root.

  1. Make sure you have correct repos enabled, see Elegir repositorios.
  2. Asegúrese de estar completamente actualizado: dnf --refresh upgrade
  3. Install the system-upgrade plugin: dnf install 'dnf-command(system-upgrade)'
  4. Ejecute: dnf system-upgrade --releasever <targetversion> download --allowerasing. Para, por ejemplo, actualizar a Mageia 8, use 8 en <targetversion>.
    1. Se le preguntara antes de descargar los paquetes, y reportara cuanto espacio se requerirá. Ai no tiene lo indicado más algunos cientos de MB de espacio libre en la partición /var (si /var es parte de la partición /, añada unos cientos de MB más), puede hacer espacio suficiente o añadir la opción --downloaddir carpeta_con_espacio a este y a los comandos system-upgrade siguientes. También asegúrese de que / tiene espacio adicional para las aplicaciones de más tamaño. Note que tal vez se necesite espacio para dos kernels (vea Kernels Adicionales mas adelante). Especialmente si la carpeta /boot es una partición separada.
    2. Cuando sepa que tiene suficiente espacio, responda si para descargar. Se ejecutara una transacción de prueba.
  5. Si la descarga y la transacción de prueba tienen exito,
    1. ¡Guarde su trabajo y cierre las aplicaciones!
    2. Lance la actualización: dnf system-upgrade reboot
¡Advertencia!
/!\ NOTA: ¡Se reiniciara el sistema inmediatamente! /!\

Disfrute de alguna bebida mientras ve las burbujas de nuestra pantalla de arranque - y sobre ellas, los mensajes que detallan lo que esta pasando. Al terminar, se reiniciara, permitiendo disfrutar la nueva versión de Mageia.

Kernels Adicionales

DNF usa un método diferente al instalador de Mageia para seleccionar la variante del kernel que se instalara. Esto puede producir que un sistema que utiliza la variante desktop, tras actualizar tenga tanto la variante desktop como la server instaladas, y la variante server sea la utilizada. Arreglo fácil: seleccione al iniciarla variante desktop, y luego desinstale la variante server. mga#28272

Configurando un contenedor para una arquitectura diferente a la nativa

Desde DNF 2.6.2, es posible crear contenedores para arquitecturas distintas a las del sistema.

El procedimiento para crear un contenedor ARMv7 en un sistema x86_64 es el siguiente:

  1. Instale qemu-user-static en el sistema huésped
  2. Reinicie systemd-binfmt.service para que la información sobre el nuevo formato binario tenga efecto
  3. Cree un directorio contenedor para la arquitectura foránea. Ejemplo /var/lib/machines/mga8armv7hl
  4. Ejecute DNF como root para crear el entorno inicial:
dnf --installroot=/var/lib/machines/mga8armv7hl --releasever=8 --forcearch=armv7hl --repofrompath=mga8rel,http://mirrors.kernel.org/mageia/distrib/8/armv7hl/media/core/release/ --repofrompath=mga8up,http://mirrors.kernel.org/mageia/distrib/8/armv7hl/media/core/updates/ --disablerepo=* --enablerepo=mga8rel --enablerepo=mga8up --setopt=install_weak_deps=False install basesystem-minimal-core dnf

Finalmente, pruebe el contenedor para ver si las aplicaciones funcionan. El comando sugerido (ejecutado como root): chroot /var/lib/machines/mga8armv7hl /usr/bin/uname -r -m

Documentación (en Ingles)