Introducción a los flujos de aplicaciones
CentOS/RHEL 8.0 introduce el concepto de flujos de aplicaciones. Varias versiones de los componentes del espacio de usuario enviados con la distribución ahora se entregan al mismo tiempo. Es posible que se actualicen con más frecuencia que los paquetes del sistema operativo principal. Esto le brinda una mayor flexibilidad para personalizar Red Hat Enterprise Linux sin afectar la estabilidad subyacente de la plataforma o las implementaciones específicas.
Tradicionalmente, administrar versiones alternativas del paquete de software de una aplicación y sus paquetes relacionados significaba mantener diferentes repositorios para cada versión diferente. Para los desarrolladores que querían la última versión de una aplicación y los administradores que querían la versión más estable de la aplicación, esto creaba una situación que era tediosa de manejar. Este proceso se simplifica en Red Hat Enterprise Linux 8 utilizando una nueva tecnología llamada Modularidad. La modularidad permite que un solo repositorio aloje múltiples versiones del paquete de una aplicación y sus dependencias.
El contenido de CentOS/RHEL 8 se distribuye a través de dos repositorios de software principales:BaseOS y Application Stream (AppStream).
BaseOS
El repositorio de BaseOS proporciona el contenido principal del sistema operativo para Red Hat Enterprise Linux como paquetes RPM. Los componentes de BaseOS tienen un ciclo de vida idéntico al del contenido en versiones anteriores de CentOS/RHEL.
Flujo de aplicaciones
El repositorio de Application Stream proporciona contenido con diferentes ciclos de vida como módulos y paquetes tradicionales. Application Stream contiene partes necesarias del sistema, así como una amplia gama de aplicaciones previamente disponibles como parte de Red Hat Software Collections y otros productos y programas.
Nota :Tanto BaseOS como AppStream son una parte necesaria de un sistema CentOS/RHEL 8.El repositorio de Application Stream contiene dos tipos de contenido:Módulos y paquetes RPM tradicionales. Un módulo describe un conjunto de paquetes RPM que van juntos. Los módulos pueden contener varios flujos para que varias versiones de aplicaciones estén disponibles para su instalación. Habilitar un flujo de módulo le da al sistema acceso a los paquetes RPM dentro de ese flujo de módulo.
Módulos
Un módulo es un conjunto de paquetes RPM que son un conjunto coherente que se debe unir. Por lo general, esto se organiza en torno a una versión específica de una aplicación de software o lenguaje de programación. Un módulo típico puede contener paquetes con una aplicación, paquetes con las bibliotecas de dependencias específicas de la aplicación, paquetes con la documentación de la aplicación y paquetes con utilidades auxiliares.
Flujos de módulos
Cada módulo puede tener uno o más flujos de módulos, que contienen diferentes versiones del contenido. Cada uno de los flujos recibe actualizaciones de forma independiente. Piense en el flujo de módulos como un depósito virtual en el depósito físico de flujo de aplicaciones. Para cada módulo, solo se puede habilitar uno de sus flujos y proporcionar sus paquetes.
Perfiles de módulos
Cada módulo puede tener uno o más perfiles. Un perfil es una lista de ciertos paquetes que se instalarán juntos para un caso de uso particular, como un servidor, cliente, desarrollo, instalación mínima u otro. La instalación de un perfil de módulo en particular simplemente instala un conjunto particular de paquetes del flujo de módulos. Posteriormente, puede instalar o desinstalar paquetes normalmente. Si no especifica un perfil, el módulo instalará su perfil predeterminado.
Administración de módulos usando YUM
La versión 4 de Yum, nueva en CentOS/RHEL 8, agrega soporte para las nuevas características modulares de Application Stream. Para manejar el contenido modular, se agregó el comando yum module. De lo contrario, yum funciona con módulos como lo hace con paquetes normales.
Módulos de listado
Para mostrar una lista de módulos disponibles, use la lista de módulos yum:
[user@host ~]$ yum module list Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary 389-ds 1.4 default 389 Directory Server (base) ant 1.10 [d] common [d] Java build tool container-tools 1.0 [d] common [d] Common tools and dependencies for container runtimes ...output omitted... Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalledNota :use la sugerencia al final de la salida para ayudar a determinar qué flujos y perfiles están habilitados, deshabilitados, instalados, así como cuáles son los predeterminados.
Para enumerar los flujos de módulos para un módulo específico y recuperar su estado:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8 for x86_64 - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common [d], minimal Practical Extraction and Report Language perl 5.26 [d] common [d], minimal Practical Extraction and Report Language
Para enumerar los paquetes instalados por el flujo de módulo predeterminado:
[user@host ~]$ yum module info perl Name : perl Stream : 5.26 [d][a] Version : 820181219174508 Context : 9edba152 Profiles : common, minimal Default profiles : default Repo : rhel-8-fo r-x86_64-appstream-htb-rpms Summary : Practical Extraction and Report Language ...output omitted... Artifacts : perl-4:5.24.4-401.module+el8+2464+d274aed1.x86_64 : perl-Algorithm-Diff-0:1.1903-9.module+el8+2464+d274aed1.noarch : perl-Archive-Tar-0:2.30-1.module+el8+2464+d274aed1.noarch ...output omitted...
Nota :Sin especificar un flujo de módulo, la información del módulo yum muestra detalles del flujo de módulo predeterminado. Utilice el formato module-name:stream para ver un flujo de módulo específico. Agregue la opción –profile para mostrar información sobre los paquetes instalados por cada uno de los perfiles del módulo. Por ejemplo:
[user@host ~]$ yum module info --profile perl:5.24
Habilitación de flujos de módulos e instalación de módulos
Los flujos de módulos deben estar habilitados para instalar su módulo. Para simplificar este proceso, cuando se instala un módulo, habilita su flujo de módulos si es necesario. Los flujos de módulos se pueden habilitar manualmente usando yum module enable y proporcionando el nombre de la secuencia del módulo.
Nota :Solo se puede habilitar un flujo de módulo para un módulo determinado. Habilitar un flujo de módulo adicional deshabilitará el flujo de módulo original.Instale un módulo utilizando la secuencia y los perfiles predeterminados:
[user@host ~]$ sudo yum module install -y perl Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing group/module packages: perl x86_64 4:5.26.3-416.el8 rhel-8-for-x86_64-appstream-htb-rpms 72 k Installing dependencies: ...output omitted... Running transaction Preparing : 1/1 Installing : perl-Exporter-5.72-396.el8.noarch 1/155 Installing : perl-Carp-1.42-396.el8.noarch 2/155 ...output omitted... Installed: perl-4:5.26.3-416.el8.x86_64 perl-Encode-Locale-1.05-9.el8.noarch ...output omitted... Complete!Nota :Se podrían haber obtenido los mismos resultados ejecutando yum install @perl. La notación @ informa yum que el argumento es un nombre de módulo en lugar de un nombre de paquete.
Para verificar el estado del flujo del módulo y el perfil instalado:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common, minimal Practical Extraction and Report Language perl 5.26 [d][e] common [i], minimal Practical Extraction and Report Language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Eliminación de módulos y deshabilitación de secuencias de módulos
Al eliminar un módulo, se eliminan todos los paquetes instalados por los perfiles del flujo de módulos habilitado actualmente y cualquier otro paquete y módulo que dependa de estos. Los paquetes instalados desde esta secuencia de módulos que no figuran en ninguno de sus perfiles permanecen instalados en el sistema y se pueden eliminar manualmente.
Nota :Quitar módulos y cambiar flujos de módulos puede ser un poco complicado. Cambiar la transmisión habilitada para un módulo es equivalente a restablecer la transmisión actual y habilitar la nueva transmisión. No cambia automáticamente ningún paquete instalado. Tienes que hacer eso manualmente. No se recomienda instalar directamente un flujo de módulo que sea diferente al que está instalado actualmente, ya que es posible que se ejecuten secuencias de comandos de actualización durante la instalación que romperían las cosas con el flujo de módulo original. Eso podría conducir a la pérdida de datos u otros problemas de configuración. Proceda con precauciónPara eliminar un módulo instalado:
[user@host ~]$ sudo yum module remove -y perl Dependencies resolved. ===================================================================================================== Package ArchVersion Repository Size ===================================================================================================== Removing: perl x86_644:5.26.3-416.el8 @rhel-8-for-x86_64-appstream-htb-rpms 0 Removing unused dependencies: ...output omitted... Running transaction Preparing : 1/1 Erasing : perl-4:5.26.3-416.el8.x86_64 1/155 Erasing : perl-CPAN-2.18-397.el8.noarch 2/155 ...output omitted... Removed: perl-4:5.26.3-416.el8.x86_64 dwz-0.12-9.el8.x86_64 ...output omitted... Complete!
Después de eliminar el módulo, la secuencia del módulo aún está habilitada. Para verificar que la secuencia del módulo todavía está habilitada:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common [d], minimal Practical Extraction and Report Language perl 5.26 [d][e] common [d], minimal Practical Extraction and Report Language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[user@host ~]$ sudo yum module disable perl ...output omitted... Dependencies resolved. ================================================================================= Package Arch Version Repository Size ================================================================================= Disabling module streams: perl 5.26 Is this ok [y/N]: y Complete!
Flujos de módulos de conmutación
Cambiar flujos de módulos generalmente requiere actualizar o degradar el contenido a una versión diferente. Para garantizar un cambio limpio, primero debe eliminar los módulos proporcionados por el flujo de módulos. Eso eliminará todos los paquetes instalados por los perfiles del módulo, y cualquier módulo y paquete de los que esos paquetes tengan dependencias.
Para habilitar un flujo de módulo diferente e instalar el módulo:
[user@host ~]$ sudo yum module install perl:5.24
Se habilitará la nueva transmisión del módulo y se deshabilitará la transmisión actual. Puede ser necesario actualizar o degradar paquetes del flujo de módulos anterior que no se enumeran en el nuevo perfil. Use yum distro-sync para realizar esta tarea si es necesario. También puede haber paquetes que permanezcan instalados desde el flujo de módulos anterior. Elimina los que usan yum remove.