Red Hat Training

A Red Hat training course is available for RHEL 8

Instalación, gestión y eliminación de componentes del espacio de usuario

Red Hat Enterprise Linux 8

Una introducción a AppStream y BaseOS en Red Hat Enterprise Linux 8

Resumen

Este documento describe la búsqueda, el descubrimiento, la instalación y el uso de contenido en los repositorios de AppStream y BaseOS en Red Hat Enterprise Linux 8. Esto incluye una descripción de cómo utilizar módulos, flujos de aplicaciones y perfiles.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a sustituir el lenguaje problemático en nuestro código, documentación y propiedades web. Estamos empezando con estos cuatro términos: maestro, esclavo, lista negra y lista blanca. Debido a la enormidad de este esfuerzo, estos cambios se implementarán gradualmente a lo largo de varias versiones próximas. Para más detalles, consulte el mensaje de nuestro CTO Chris Wright.

Proporcionar comentarios sobre la documentación de Red Hat

Agradecemos su opinión sobre nuestra documentación. Por favor, díganos cómo podemos mejorarla. Para ello:

  • Para comentarios sencillos sobre pasajes concretos:

    1. Asegúrese de que está viendo la documentación en el formato Multi-page HTML. Además, asegúrese de ver el botón Feedback en la esquina superior derecha del documento.
    2. Utilice el cursor del ratón para resaltar la parte del texto que desea comentar.
    3. Haga clic en la ventana emergente Add Feedback que aparece debajo del texto resaltado.
    4. Siga las instrucciones mostradas.
  • Para enviar comentarios más complejos, cree un ticket de Bugzilla:

    1. Vaya al sitio web de Bugzilla.
    2. Como componente, utilice Documentation.
    3. Rellene el campo Description con su sugerencia de mejora. Incluya un enlace a la(s) parte(s) pertinente(s) de la documentación.
    4. Haga clic en Submit Bug.

Capítulo 1. Uso de AppStream

Las siguientes secciones proporcionan una visión general de los conceptos relacionados con el repositorio AppStream en Red Hat Enterprise Linux 8.

1.1. Distribución de contenidos en RHEL 8

El contenido de RHEL 8 se distribuye a través de los dos repositorios principales: BaseOS y AppStream.

BaseOS
El contenido en el repositorio de BaseOS está destinado a proporcionar el conjunto básico de la funcionalidad del sistema operativo subyacente que proporciona la base para todas las instalaciones. Este contenido está disponible en el formato RPM y está sujeto a términos de soporte similares a los de versiones anteriores de Red Hat Enterprise Linux.
AppStream
El contenido en el repositorio de AppStream incluye aplicaciones adicionales para el espacio de usuario, lenguajes de ejecución y bases de datos en apoyo de las variadas cargas de trabajo y casos de uso. El contenido de AppStream está disponible en uno de los dos formatos: el conocido formato RPM y una extensión del formato RPM llamada modules.
Importante

Tanto el conjunto de contenidos de BaseOS como el de AppStream son necesarios para una instalación básica de RHEL, y están disponibles con todas las suscripciones de RHEL. Para obtener instrucciones de instalación, consulte el documento Realización de una instalación estándar de RHEL.

1.2. Flujos de aplicaciones

Red Hat Enterprise Linux 8 introduce el concepto de Application Streams - versiones de componentes del espacio de usuario. Ahora se entregan y actualizan múltiples versiones de estos componentes con más frecuencia que los paquetes del sistema operativo principal. Esto proporciona una mayor flexibilidad para personalizar Red Hat Enterprise Linux sin afectar a la estabilidad subyacente de la plataforma o a implementaciones específicas.

Los componentes disponibles como Application Streams pueden ser empaquetados como módulos o paquetes RPM, y se entregan a través del repositorio AppStream en Red Hat Enterprise Linux 8. Cada Application Stream tiene un ciclo de vida determinado, ya sea el mismo que RHEL 8 o más corto, más adecuado a la aplicación particular. Los flujos de aplicaciones con un ciclo de vida más corto están listados en la página del ciclo de vida de los flujos de aplicaciones de Red Hat Enterprise Linux 8.

Nota

No todos los módulos son Application Streams. Las dependencias de otros módulos no se consideran flujos de aplicación.

1.3. Métodos de embalaje en RHEL 8

El repositorio de AppStream contiene contenidos empaquetados de dos maneras:

Paquetes RPM individuales
Paquetes RPM tradicionales disponibles para su instalación inmediata.
Módulos
Los módulos son colecciones de paquetes que representan una unidad lógica: una aplicación, una pila de lenguajes, una base de datos o un conjunto de herramientas. Estos paquetes se construyen, se prueban y se publican juntos.

1.4. Gestión de paquetes con YUM en RHEL 8

La herramienta de gestión de paquetes YUM herramienta de gestión de paquetes se basa ahora en la tecnología DNF y añade soporte para las nuevas características modulares.

El uso de YUM no se ha modificado cuando se manejan paquetes RPM individuales. Para manejar el contenido modular, se ha añadido el comando yum module. Consulte Capítulo 4, Instalación del contenido de RHEL 8 para obtener más detalles.

Cuando es necesario, la funcionalidad modular selecciona automáticamente la combinación adecuada de módulos y flujos para permitir la instalación de conjuntos lógicos de paquetes para un uso conveniente.

Capítulo 2. Introducción a los módulos

Además de paquetes RPM individuales, el repositorio de AppStream contiene módulos. Un módulo es un conjunto de paquetes RPM que representan un componente y que normalmente se instalan juntos. Un módulo típico contiene paquetes con una aplicación, paquetes con las bibliotecas de dependencias específicas de la aplicación, paquetes con documentación para la aplicación y paquetes con utilidades de ayuda.

En las secciones siguientes se describen otras características para la organización y el manejo de los contenidos dentro de los módulos:

2.1. Flujos de módulos

Los flujos de módulos son filtros que pueden imaginarse como repositorios virtuales en el repositorio físico de AppStream. Los flujos de módulos representan versiones de los componentes de AppStream. Cada uno de los flujos recibe actualizaciones de forma independiente.

Los flujos de módulos pueden ser activos o inactivos. Los flujos activos dan al sistema acceso a los paquetes RPM dentro del flujo de módulos particular, permitiendo la instalación de la respectiva versión del componente. Los flujos están activos si se marcan como predeterminados o si se habilitan explícitamente mediante una acción del usuario.

Sólo un flujo de un módulo concreto puede estar activo en un momento dado. Por lo tanto, sólo se puede instalar una versión de un componente en un sistema. Se pueden utilizar diferentes versiones en contenedores separados.

Cada módulo puede tener un flujo por defecto. Los flujos por defecto facilitan el consumo de paquetes RHEL de la forma habitual sin necesidad de aprender sobre los módulos. El flujo por defecto está activo, a no ser que se haya desactivado todo el módulo o se haya activado otro flujo de ese módulo.

Algunos flujos de módulos dependen de otros flujos de módulos. Por ejemplo, los flujos de módulos perl-App-cpanminus, perl-DBD-MySQL, perl-DBD-Pg, perl-DBD-SQLite, perl-DBI, perl-YAML, y freeradius dependen de ciertos flujos de módulos perl.

Para seleccionar un flujo particular para una aplicación de usuario en tiempo de ejecución o una aplicación de desarrollador, considere lo siguiente:

  • Funcionalidad requerida y qué versiones de los componentes la soportan
  • Compatibilidad
  • Duracióndel ciclo de vida y su plan de actualización

Para ver una lista de todos los módulos y flujos disponibles, consulte el manifiesto del paquete. Para conocer los cambios por componente, consulte las Notas de la versión.

Ejemplo 2.1. postgresql flujos de módulos

El módulo postgresql proporciona las PostgreSQL versiones de la base de datos 9.6, 10 y 12 en los respectivos flujos 9.6, 10 y 12. El flujo 10 es actualmente el predeterminado. Esto significa que el sistema intentará instalar el paquete postgresql-10.6 paquete si se le pide postgresql.

Recursos adicionales

2.2. Perfiles de los módulos

Un profile es una lista de paquetes recomendados para ser instalados juntos para un caso de uso particular como para un servidor, cliente, desarrollo, instalación mínima, u otro. Estas listas de paquetes pueden contener paquetes fuera del flujo de módulos, normalmente del repositorio de BaseOS o de las dependencias del flujo.

La instalación de paquetes mediante el uso de un perfil es una acción única proporcionada para la comodidad del usuario. No impide la instalación o desinstalación de ninguno de los paquetes proporcionados por el módulo. También es posible instalar paquetes mediante el uso de varios perfiles del mismo flujo de módulos sin ningún otro paso preparatorio.

Cada flujo de módulos puede tener cualquier número de perfiles, incluso ninguno. Para cualquier flujo de módulos, algunos de sus perfiles pueden marcarse como default y se utilizan para las acciones de instalación de perfiles cuando no se especifica explícitamente ningún perfil. Sin embargo, no es necesaria la existencia de un perfil por defecto para un flujo de módulos.

Ejemplo 2.2. httpd perfiles de módulos

El módulo httpd, que proporciona el Apache servidor web, ofrece los siguientes perfiles para su instalación:

  • common - un despliegue reforzado listo para la producción, el perfil por defecto
  • devel - los paquetes necesarios para realizar modificaciones en httpd
  • minimal - el conjunto más pequeño de paquetes que proporcionará un servidor web en funcionamiento

Capítulo 3. Encontrar el contenido de RHEL 8

Las siguientes secciones describen cómo localizar y examinar el contenido en los repositorios de AppStream y BaseOS en Red Hat Enterprise Linux 8.

3.1. Buscar un paquete

Esta sección describe los pasos necesarios para encontrar un paquete que proporcione una aplicación concreta u otro contenido.

Requisitos previos

  • Debe conocerse el nombre de la aplicación o el contenido deseado

Procedimiento

  1. Buscar un paquete con una cadena de texto, como el nombre de la aplicación:

    $ yum search "text string"
  2. Ver los detalles de un paquete:

    $ yum info package

3.2. Listado de módulos disponibles

Esta sección describe los pasos necesarios para encontrar qué módulos están disponibles y cuáles son sus detalles.

Procedimiento

  1. Enumera los flujos de módulos disponibles para su sistema:

    $ yum module list

    La salida de este comando enumera los flujos del módulo con el nombre, el flujo, los perfiles y el resumen en una línea separada.

  2. Muestra detalles sobre un módulo, incluyendo una descripción, una lista de todos los perfiles y una lista de todos los paquetes proporcionados:

    $ yum module info module-name
  3. Opcional: También puede listar cuáles de estos paquetes son instalados por cada uno de los perfiles de los módulos:

    $ yum module info --profile module-name
  4. Muestra el estado actual de un módulo, incluyendo los flujos habilitados y los perfiles instalados:

    $ yum module list module-name

Ejemplo 3.1. Averiguar los detalles de un módulo

Este ejemplo muestra cómo localizar un módulo en el repositorio de AppStream y cómo averiguar más sobre su contenido.

Nota

Los resultados de este ejemplo han sido editados para ser más breves. Los resultados reales pueden contener más información que la mostrada aquí.

Procedimiento

  1. Lista de módulos disponibles:

    $ yum module list
    Name        Stream  Profiles    Summary
    (...)
    postgresql  9.6     client,     PostgreSQL server and client module
                        server [d]
    postgresql  10 [d]  client,     PostgreSQL server and client module
                        server [d]
    postgresql  12      client,     PostgreSQL server and client module
                        server [d]
    (...)
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
  2. Examine los detalles del módulo postgresql:

    $ yum module info postgresql
    
    Name             : postgresql
    Stream           : 10 [d][a]
    Version          : 820190104140132
    Context          : 9edba152
    Profiles         : client, server [d]
    Default profiles : server
    Repo             : appstream
    Summary          : PostgreSQL server and client module
    Description      : (...)
    (...)
    
    Name             : postgresql
    Stream           : 12
    Version          : 8010120191120141335
    Context          : e4e244f9
    Profiles         : client, server [d]
    Default profiles : server
    Repo             : appstream
    Summary          : PostgreSQL server and client module
    Description      : (...)
    (...)
    
    Name             : postgresql
    Stream           : 9.6
    Version          : 820190104140337
    Context          : 9edba152
    Profiles         : client, server [d]
    Default profiles : server
    Repo             : appstream
    Summary          : PostgreSQL server and client module
    Description      : (...)
    (...)
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive

    Como no se especifica ningún flujo, se utilizan todos los flujos para el listado.

  3. Examine los perfiles disponibles en el flujo 10 del módulo postgresql:

    $ yum module info --profile postgresql:10
    (...)
    Name   : postgresql:10:820190104140132:9edba152:x86_64
    client : postgresql
    server : postgresql-server

    Cada uno de los perfiles instala un conjunto diferente de paquetes, incluyendo sus dependencias.

  4. Instale el módulo postgresql utilizando el flujo por defecto 10 y el perfil server:

    # yum module install postgresql
    Dependencies resolved.
    ====================================================================
     Package           Version                         Repository Size
    ====================================================================
    Installing group/module packages:
     postgresql-server 10.6-1.module+el8+2469+5ecd5aae appstream  5.1 M
    Installing dependencies:
     libpq             10.5-1.el8                      appstream  188 k
     postgresql        10.6-1.module+el8+2469+5ecd5aae appstream  1.5 M
    Installing module profiles:
     postgresql/server
    Enabling module streams:
     postgresql               10
    
    Transaction Summary
    ====================================================================
    Install  3 Packages
    
    Total download size: 6.7 M
    Installed size: 27 M
    Is this ok [y/N]: y
    (...)

    El flujo 10 está habilitado y los paquetes en su perfil server instalados.

  5. Inspeccione el estado actual del módulo postgresql:

    $ yum module list postgresql
    Name       Stream    Profiles                Summary
    postgresql 9.6       client, server [d]      (...)
    postgresql 10 [d][e] client, server [d] [i]  (...)
    postgresql 12        client, server [d]      (...)
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

    La salida muestra que el flujo por defecto 10 está activado y su perfil server está instalado.

3.3. Comandos para listar el contenido

A continuación se detallan los comandos más utilizados para la búsqueda de contenidos y sus detalles.

Lista de paquetes disponibles
$ yum list available
Buscar los repositorios YUM disponibles para un paquete seleccionado
$ yum repoquery package
Búsqueda de un paquete mediante una cadena de texto arbitraria
$ yum search "text string"
Mostrar detalles de un paquete
$ yum info package
Averigüe qué módulos proporcionan un paquete
El módulo yum proporciona package

Si el paquete está disponible fuera de cualquier módulo, la salida de este comando está vacía.

Lista de módulos disponibles
$ yum module list
Mostrar detalles de un módulo
$ yum module info module-name
Listar los paquetes instalados por perfiles de un módulo utilizando el flujo por defecto
$ yum module info --profile module-name
Mostrar los paquetes instalados por los perfiles de un módulo utilizando un flujo especificado
$ yum module info --profile module-namestream
Mostrar el estado actual de un módulo
$ yum module list module-name

Capítulo 4. Instalación del contenido de RHEL 8

Las siguientes secciones describen cómo instalar el contenido en Red Hat Enterprise Linux 8.

4.1. Instalación de un paquete

Esta sección describe cómo instalar los paquetes.

Procedimiento

  • Instala el paquete:

    # yum install package
    • Si el paquete no es proporcionado por ningún flujo de módulos, este procedimiento es idéntico al utilizado en versiones anteriores de Red Hat Enterprise Linux.
    • Si el paquete es proporcionado por un flujo de módulos que está habilitado, el paquete se instala sin ninguna otra manipulación.
    • Si el paquete es proporcionado por un flujo de módulos marcado como predeterminado, la herramienta yum habilita automáticamente y de forma transparente ese flujo de módulos antes de instalar este paquete.
    • Si el paquete es proporcionado por un flujo de módulos que no está activo (ninguno de los casos anteriores), no es reconocido hasta que usted habilite manualmente el flujo de módulos respectivo.

4.2. Selección de un flujo antes de la instalación de los paquetes

Los flujos de módulos por defecto aseguran que los usuarios puedan instalar paquetes sin preocuparse por las características modulares. Cuando el usuario quiere paquetes con versión de un flujo no predeterminado, ese flujo debe ser habilitado antes de que los paquetes proporcionados por él puedan ser instalados.

Requisitos previos

Procedimiento

  • Habilitar el flujo del módulo:

    # yum module enable module-namestream

    Sustituya module-name y stream por los nombres del módulo y del flujo.

    yum pide confirmación y el flujo está habilitado y activo. Si otro flujo del módulo estaba previamente activo porque era el predeterminado, ya no está activo.

4.3. Instalación de contenidos modulares

Esta sección describe cómo instalar el contenido modular proporcionado por un flujo de módulos o un perfil.

Requisitos previos

Procedimiento

  • Instale un flujo de módulo activo (el que viene por defecto o el que ha habilitado):

    # yum module install module-name
  • Instalar un flujo de módulos seleccionado:

    # yum module install module-namestream

    El flujo seleccionado se habilita automáticamente. Si se define un perfil por defecto para el flujo, este perfil se instala automáticamente.

  • Instalar un perfil seleccionado del flujo del módulo:

    # yum module install module-name:stream/profile

    Esto habilita el flujo e instala el conjunto de paquetes recomendado para un flujo (versión) y un perfil (propósito) determinados del módulo.

Ejemplo 4.1. Instalación de una corriente no predeterminada de una aplicación

Este ejemplo muestra cómo instalar una aplicación desde una corriente (versión) no predeterminada.

Más concretamente, este ejemplo muestra cómo instalar el PostgreSQL servidor (paquete postgresql-server) en la versión 9.6, mientras que el flujo por defecto proporciona la versión 10.

Procedimiento

  1. Enumerar los módulos que proporcionan el paquete postgresql-server para ver qué flujos están disponibles:

    $ yum module list postgresql
    Name        Stream  Profiles             Summary
    postgresql  9.6     client, server [d]  PostgreSQL server and client module
    postgresql  10 [d]  client, server [d]  PostgreSQL server and client module
    postgresql  12	    client, server [d]  PostgreSQL server and client module
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

    La salida muestra que el módulo postgresql está disponible con los flujos 9.6, 10 y 12. El flujo por defecto es 10.

  2. Instale los paquetes proporcionados por el módulo postgresql en el flujo 9.6:

    # yum module install postgresql:9.6
    Dependencies resolved.
    =====================================================================
     Package           Version                           Repository Size
    =====================================================================
    Installing group/module packages:
     postgresql-server 9.6.10-1.module+el8+2470+d1bafa0e appstream  5.0 M
    Installing dependencies:
     libpq             10.5-1.el8                        appstream  188 k
     postgresql        9.6.10-1.module+el8+2470+d1bafa0e appstream  1.4 M
    Installing module profiles:
     postgresql/server
    Enabling module streams:
     postgresql                 9.6
    
    Transaction Summary
    =====================================================================
    Install  3 Packages
    
    Total download size: 6.6 M
    Installed size: 27 M
    Is this ok [y/N]: y
    (...)
    Complete!

    Como no se ha especificado el perfil de instalación, se ha utilizado el perfil por defecto server.

  3. Verifique la versión instalada de PostgreSQL:

    $ postgres --version
    postgres (PostgreSQL) 9.6.10

4.4. Ejecución de los contenidos instalados

Normalmente, después de instalar contenido de los repositorios de RHEL 8, se habilitarán nuevos comandos. Si los comandos provienen de un paquete RPM o de paquetes RPM habilitados por un módulo, la experiencia de uso del comando no debería ser diferente. Para ejecutar los nuevos comandos utilícelos directamente:

$ command

4.5. Comandos para instalar el contenido de RHEL 8

Esta sección enumera los comandos más utilizados para instalar el contenido de RHEL 8.

Lista de comandos

Instalar un paquete
# yum install package

Si el paquete es proporcionado por un flujo de módulos, yum resuelve el flujo de módulos requerido, y lo habilita automáticamente mientras instala este paquete. Esto ocurre también de forma recursiva para todas las dependencias del paquete. Si hay más flujos de módulos que satisfacen el requisito, se utilizan los predeterminados.

Habilitar un módulo utilizando su flujo por defecto
# yum module enable module-name

Habilite el módulo cuando desee poner los paquetes a disposición del sistema pero no desee, en este momento, instalar ninguno de ellos.

Algunos módulos pueden no definir flujos por defecto. En tal caso, debe especificar explícitamente el flujo.

Habilitar un módulo utilizando un flujo específico
# yum module enable module-namestream

Si el módulo define un flujo por defecto, puede omitir el flujo y los dos puntos.

Instalar un módulo utilizando el flujo y los perfiles por defecto
# yum module install module-name

Alternativamente:

# yum install @module-name
Atención

Algunos módulos no definen flujos por defecto.

Instalar un módulo utilizando un flujo específico y perfiles por defecto
# yum module install module-namestream

Alternativamente:

# yum install @module-namestream
Instalar un módulo utilizando un flujo y un perfil específicos
# yum module install module-name:stream/profile

Alternativamente:

# yum install @module-name:stream/profile

4.6. Recursos adicionales

Recursos en línea

Recursos instalados

  • Para conocer los detalles de varios comandos de la herramienta yum, consulte la página del manual yum(8):

    $ man yum

Capítulo 5. Eliminación del contenido de RHEL 8

Las siguientes secciones describen cómo eliminar contenido en Red Hat Enterprise Linux 8:

5.1. Eliminación de paquetes instalados

Esta sección describe cómo eliminar los paquetes.

Procedimiento

  • Retire el paquete:

    # yum remove package

    El paquete se elimina junto con cualquier otro paquete dependiente.

5.2. Eliminación de los contenidos modulares instalados

Al eliminar los contenidos modulares instalados, puede eliminar los paquetes de un perfil seleccionado o de todo el flujo.

Importante

YUM intentará eliminar todos los paquetes con un nombre correspondiente a los paquetes instalados con un perfil o un flujo, incluyendo sus paquetes dependientes. Comprueba siempre la lista de paquetes a eliminar antes de proceder, especialmente si has habilitado repositorios personalizados en tu sistema.

5.2.1. Eliminación de todos los paquetes de un flujo de módulos

Cuando se eliminan los paquetes instalados con un flujo de módulos, se eliminan todos los paquetes con un nombre correspondiente a los paquetes instalados por el flujo, incluyendo sus dependencias, con la excepción de los paquetes requeridos por otros módulos.

Requisitos previos

Procedimiento

  1. Eliminar todos los paquetes de un flujo seleccionado:

    # yum module remove --all module-namestream

    Sustituya module-name y stream por el módulo y el flujo que desea desinstalar.

  2. Compruebe la lista de paquetes en Removing: y Removing unused dependencies: antes de proceder a la operación de retirada.
  3. Opcionalmente, restablecer o desactivar el flujo.

Si quiere eliminar sólo los paquetes de un perfil seleccionado, siga las instrucciones de Sección 5.2.2, “Eliminación de paquetes de un perfil instalado”.

Ejemplo 5.1. Eliminación de paquetes de todo el flujo

Este ejemplo muestra cómo eliminar todos los paquetes del flujo de módulos.

Procedimiento

  1. Instale el flujo del módulo php:7.3, incluyendo todos los perfiles disponibles:

    [root@rhel-8 ~]# yum module install php:7.3/*
    Updating Subscription Management repositories.
    Last metadata expiration check: 0:20:19 ago on Tue Mar  3 11:32:05 2020.
    Dependencies resolved.
    =========================================================================
     Package          Arch   Version                              Repository                        Size
    =========================================================================
    Installing group/module packages:
     libzip           x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096 rhel-8-for-x86_64-appstream-rpms  63 k
     php-cli          x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 3.0 M
     php-common       x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 663 k
     php-devel        x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 735 k
     php-fpm          x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 1.6 M
     php-json         x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms  73 k
     php-mbstring     x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 610 k
     php-pear         noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096
                                                                  rhel-8-for-x86_64-appstream-rpms 359 k
     php-pecl-zip     x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096
                                                                  rhel-8-for-x86_64-appstream-rpms  51 k
     php-process      x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms  84 k
     php-xml          x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 188 k
    Installing dependencies:
     autoconf         noarch 2.69-27.el8                          rhel-8-for-x86_64-appstream-rpms 710 k
    ...
    Installing weak dependencies:
     perl-IO-Socket-IP
                      noarch 0.39-5.el8                           rhel-8-for-x86_64-appstream-rpms  47 k
    ...
    Installing module profiles:
     php/common
     php/devel
     php/minimal
    Enabling module streams:
     httpd                   2.4
     nginx                   1.14
     php                     7.3
    
    Transaction Summary
    =========================================================================
    Install  73 Packages
    
    Total download size: 76 M
    Installed size: 220 M
    Is this ok [y/N]: y
  2. Elimina todos los paquetes del flujo de módulos de php:7:3:

    [root@rhel-8 ~]# yum module remove php:7.3 --all
    Updating Subscription Management repositories.
    Last metadata expiration check: 0:21:26 ago on Tue Mar  3 11:32:05 2020.
    Dependencies resolved.
    =========================================================================
     Package                Arch   Version                       Repository                         Size
    =========================================================================
    Removing:
     libzip                 x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 313 k
     php-cli                x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms  11 M
     php-common             x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 6.5 M
     php-devel              x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 5.3 M
     php-fpm                x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 5.6 M
     php-json               x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms  53 k
     php-mbstring           x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 1.9 M
     php-pear               noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 2.1 M
     php-pecl-zip           x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 119 k
     php-process            x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 117 k
     php-xml                x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 557 k
    Removing unused dependencies:
     autoconf               noarch 2.69-27.el8                   @rhel-8-for-x86_64-appstream-rpms 2.2 M
    ...
    Disabling module profiles:
     php/common
     php/devel
     php/minimal
    
    Transaction Summary
    =========================================================================
    Remove  73 Packages
    
    Freed space: 220 M
    Is this ok [y/N]: y

5.2.2. Eliminación de paquetes de un perfil instalado

Cuando se eliminan los paquetes instalados con un perfil, se eliminan todos los paquetes con un nombre correspondiente a los paquetes instalados por el perfil, incluyendo sus dependencias, con la excepción de los paquetes requeridos por un perfil diferente.

Requisitos previos

  • El perfil seleccionado se ha instalado mediante el comando yum module install module-name:stream/profile o como perfil por defecto mediante el comando yum install module-name:stream comando.
  • Hay que entender la resolución modular de dependencias.

Procedimiento

  1. Desinstalar los paquetes pertenecientes al perfil seleccionado:

    # yum module remove module-name:stream/profile

    Sustituya module-name, stream, y profile por el módulo, el flujo y el perfil que desea desinstalar.

    También puede desinstalar los paquetes de todos los perfiles instalados dentro de un flujo:

    # yum module remove module-namestream

    Estas operaciones no eliminarán los paquetes del flujo que no pertenezcan a ninguno de los perfiles.

  2. Compruebe la lista de paquetes en Removing: y Removing unused dependencies: antes de proceder a la operación de retirada.

Para eliminar todos los paquetes de un flujo seleccionado, siga las instrucciones de Sección 5.2.1, “Eliminación de todos los paquetes de un flujo de módulos”.

Ejemplo 5.2. Eliminación de paquetes de un perfil seleccionado

Este ejemplo muestra cómo eliminar los paquetes que sólo pertenecen a un perfil seleccionado.

Procedimiento

  1. Instale el flujo del módulo php:7.3, incluyendo todos los perfiles disponibles:

    [root@rhel-8 ~]# yum module install php:7.3/*
    Updating Subscription Management repositories.
    Last metadata expiration check: 0:08:41 ago on Tue Mar  3 11:32:05 2020.
    Dependencies resolved.
    =========================================================================
     Package          Arch   Version                              Repository                        Size
    =========================================================================
    Installing group/module packages:
     libzip           x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096 rhel-8-for-x86_64-appstream-rpms  63 k
     php-cli          x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 3.0 M
     php-common       x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 663 k
     php-devel        x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 735 k
     php-fpm          x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 1.6 M
     php-json         x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms  73 k
     php-mbstring     x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 610 k
     php-pear         noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096
                                                                  rhel-8-for-x86_64-appstream-rpms 359 k
     php-pecl-zip     x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096
                                                                  rhel-8-for-x86_64-appstream-rpms  51 k
     php-process      x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms  84 k
     php-xml          x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 rhel-8-for-x86_64-appstream-rpms 188 k
    Installing dependencies:
     autoconf         noarch 2.69-27.el8                          rhel-8-for-x86_64-appstream-rpms 710 k
    ...
    Installing weak dependencies:
     perl-IO-Socket-IP
                      noarch 0.39-5.el8                           rhel-8-for-x86_64-appstream-rpms  47 k
    ...
    Installing module profiles:
     php/common
     php/devel
     php/minimal
    Enabling module streams:
     httpd                   2.4
     nginx                   1.14
     php                     7.3
    
    Transaction Summary
    =========================================================================
    Install  73 Packages
    
    Total download size: 76 M
    Installed size: 220 M
    Is this ok [y/N]: y
  2. Eliminar los paquetes del perfil devel:

    [root@rhel-8 ~]# yum module remove php:7.3/devel
    Updating Subscription Management repositories.
    Last metadata expiration check: 0:09:40 ago on Tue Mar  3 11:32:05 2020.
    Dependencies resolved.
    =========================================================================
     Package                Arch   Version                       Repository                         Size
    =========================================================================
    Removing:
     libzip                 x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 313 k
     php-devel              x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 5.3 M
     php-pear               noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 2.1 M
     php-pecl-zip           x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 119 k
     php-process            x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 117 k
    Removing unused dependencies:
     autoconf               noarch 2.69-27.el8                   @rhel-8-for-x86_64-appstream-rpms 2.2 M
    ...
    Disabling module profiles:
     php/devel
    
    Transaction Summary
    =========================================================================
    Remove  64 Packages
    
    Freed space: 193 M
    Is this ok [y/N]: y

5.3. Restablecimiento de los flujos de los módulos

Restablecer un módulo es una acción que devuelve todos sus flujos a su estado inicial: ni activados ni desactivados. Si el módulo tiene un flujo por defecto, ese flujo se activa como resultado de restablecer el módulo.

Procedimiento

  • Restablecer el estado del módulo:

    # yum module reset module-name

    El módulo vuelve al estado inicial. Se borra la información sobre un flujo habilitado y los perfiles instalados, pero no se elimina ningún contenido instalado.

5.4. Comandos para eliminar contenidos

Esta sección enumera los comandos más utilizados para eliminar contenidos.

Lista de comandos

Eliminar un paquete
# yum remove package
Eliminar paquetes de un perfil instalado
# yum module remove module-name:stream/profile
Eliminar todos los paquetes de un flujo activo
# yum module remove --all module-namestream
Restablecer un módulo al estado inicial
# yum module reset module-name
Desactivar un módulo y todos sus flujos
# yum module disable module-name

Capítulo 6. Gestión de las versiones del contenido del flujo de aplicaciones

El contenido en el repositorio de AppStream puede estar disponible en múltiples versiones, correspondientes a flujos de módulos. En este capítulo se describen las operaciones que hay que realizar cuando se cambian los flujos de módulos habilitados de otra forma que no sea únicamente habilitando nuevos flujos de módulos.

6.1. Dependencias modulares y cambios de flujo

Tradicionalmente, los paquetes que proporcionan contenido dependen de otros paquetes, y suelen especificar las versiones de dependencia deseadas. Para los paquetes contenidos en módulos, este mecanismo también se aplica, pero la agrupación de paquetes y sus versiones particulares en módulos y flujos proporciona más restricciones. Además, los flujos de módulos pueden declarar dependencias de flujos de otros módulos, independientemente de los paquetes que contienen y proporcionan.

Después de cualquier operación con paquetes o módulos, todo el árbol de dependencias de todos los paquetes subyacentes instalados debe satisfacer todas las condiciones que los paquetes declaran. Además, deben satisfacerse todas las dependencias del flujo de módulos.

Como resultado:

  • La activación de un flujo de módulos puede requerir la activación de flujos de otros módulos.
  • La instalación de un perfil de flujo de módulos o la instalación de paquetes desde un flujo puede requerir la habilitación de flujos de otros módulos y la instalación de otros paquetes.
  • Desactivar un flujo de un módulo puede requerir la desactivación de otros flujos de módulos. No se eliminará ningún paquete automáticamente.
  • La eliminación de un paquete puede requerir la eliminación de otros paquetes. Si estos paquetes fueron proporcionados por módulos, los flujos de módulos permanecen habilitados en preparación para su posterior instalación, incluso si ya no se instalan paquetes de estos flujos. Esto refleja el comportamiento de un repositorio yum no utilizado.

No es posible activar un flujo de un módulo cuando otro flujo del mismo módulo ya está activado. Para cambiar de flujo, siga el procedimiento indicado en Sección 6.5, “Cambiar a un flujo posterior”. Alternativamente, reinicie el módulo y luego habilite el nuevo flujo. Eliminar todos los paquetes instalados de un flujo antes de cambiar a un flujo diferente evita que el sistema llegue a estados en los que los paquetes puedan ser instalados sin que ningún repositorio o flujo los proporcione.

Técnicamente, el reinicio del módulo no cambia automáticamente ningún paquete instalado. Eliminar los paquetes proporcionados por el flujo anterior y cualquier paquete que dependa de ellos es una operación manual explícita.

6.2. Interacción de las dependencias modulares y no modulares

Las dependenciasmodulares son una capa adicional sobre las dependencias regulares de RPM. Las dependencias modulares se comportan de forma similar a las dependencias hipotéticas entre repositorios. Esto significa que la instalación de diferentes paquetes no sólo requiere la resolución de las dependencias RPM, sino que también las dependencias modulares deben ser resueltas de antemano.

El sistema siempre mantendrá las opciones de módulo y flujo, a menos que se le indique explícitamente que las cambie. Un paquete modular recibirá las actualizaciones contenidas en el flujo actualmente habilitado del módulo que proporciona este paquete, pero no se actualizará a una versión contenida en un flujo diferente.

6.3. Restablecimiento de los flujos de los módulos

Restablecer un módulo es una acción que devuelve todos sus flujos a su estado inicial: ni activados ni desactivados. Si el módulo tiene un flujo por defecto, ese flujo se activa como resultado de restablecer el módulo.

Procedimiento

  • Restablecer el estado del módulo:

    # yum module reset module-name

    El módulo vuelve al estado inicial. Se borra la información sobre un flujo habilitado y los perfiles instalados, pero no se elimina ningún contenido instalado.

6.4. Desactivar todos los flujos de un módulo

Los módulos que tienen un flujo por defecto siempre tendrán un flujo activo. En situaciones en las que el contenido de todos los flujos del módulo no debe ser accesible, es posible desactivar todo el módulo.

Requisitos previos

Procedimiento

  • Desactivar el módulo:

    # yum module disable module-name

    yum pide confirmación y luego desactiva el módulo con todos sus flujos. Todos los flujos del módulo quedan inactivos. No se elimina ningún contenido instalado.

6.5. Cambiar a un flujo posterior

Cuando se cambia a un flujo de módulos posterior, todos los paquetes del módulo se sustituyen por sus versiones posteriores.

Importante

Este procedimiento sólo es factible en las condiciones que se describen a continuación.

Requisitos previos

  • El sistema está totalmente actualizado.
  • Ningún paquete instalado en el sistema es más nuevo que los paquetes disponibles en el repositorio.

Procedimiento

  1. Ejecute el siguiente comando para determinar si su sistema está preparado para cambiar a un flujo posterior:

    # yum distro-sync

    Este comando debe terminar con el mensaje Nothing to do. Complete!. Si por el contrario le propone cambios y le pide confirmación, revise cuidadosamente estos cambios y considere si quiere continuar. Ejecute el comando yum distro-sync repetidamente si es necesario. Alternativamente, puede rechazar los cambios sugeridos y modificar manualmente su sistema hasta un estado en el que el comando devuelva Nothing to do. Complete!

    Nota

    Al comprobar el resultado de yum distro-sync antes de conmutar los flujos, se evita hacer cambios en el sistema que no estén relacionados con la conmutación de flujos, ya que se requiere el mismo comando como último paso de este procedimiento.

  2. Cambia el flujo activo por el posterior:

    # yum module reset module-name
    # yum module enable module-name:new-stream
  3. Sincronizar los paquetes instalados para realizar el cambio entre flujos:

    # yum distro-sync

    Si esta acción sugiere cambios en el contenido fuera de los flujos, revíselos cuidadosamente.

    Nota
    • Si ciertos paquetes instalados dependen del flujo anterior y no hay una versión compatible en el flujo posterior, yum informará de un conflicto de dependencias. En este caso, utilice la opción --allowerasing para eliminar dichos paquetes porque no pueden instalarse junto con el flujo posterior debido a la falta de dependencias.
    • Cuando se cambian los módulos de Perl, la opción --allowerasing es siempre necesaria porque ciertos paquetes de la instalación base de RHEL 8 dependen de Perl 5.26.
    • Las extensiones binarias (típicamente escritas en C o C ) para lenguajes interpretados necesitan ser reinstaladas después de habilitar el nuevo flujo; por ejemplo, ciertos paquetes instalados por el comando gem del módulo ruby, el comando npm del módulo nodejs, el comando cpan del módulo perl, o el comando pecl del módulo php. Para más información, consulte Cómo cambiar los flujos de Ruby en RHEL 8.

Alternativamente, elimine todo el contenido del módulo instalado en el flujo actual, reinicie el módulo e instale el nuevo flujo.