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
Una introducción a AppStream y BaseOS en Red Hat Enterprise Linux 8
Resumen
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:
- 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.
- Utilice el cursor del ratón para resaltar la parte del texto que desea comentar.
- Haga clic en la ventana emergente Add Feedback que aparece debajo del texto resaltado.
- Siga las instrucciones mostradas.
Para enviar comentarios más complejos, cree un ticket de Bugzilla:
- Vaya al sitio web de Bugzilla.
- Como componente, utilice Documentation.
- Rellene el campo Description con su sugerencia de mejora. Incluya un enlace a la(s) parte(s) pertinente(s) de la documentación.
- 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.
- Sección 1.1, “Distribución de contenidos en RHEL 8” describe cómo el contenido de Red Hat Enterprise Linux 8 se divide en BaseOS y AppStream.
- Sección 1.2, “Flujos de aplicaciones” describe el concepto de flujos de aplicaciones.
- Sección 1.3, “Métodos de embalaje en RHEL 8” describe los tipos de contenido que ofrece AppStream.
- Sección 1.4, “Gestión de paquetes con YUM en RHEL 8” describe cómo el YUM gestor de paquetes proporcionado en Red Hat Enterprise Linux 8 combina las características tradicionales y modulares.
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.
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.
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:
- Streams - organización del contenido por versión. Para más detalles, consulte Sección 2.1, “Flujos de módulos”.
- Perfiles: organización de los contenidos por objetivos. Para más detalles, consulte Sección 2.2, “Perfiles 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
- Para más información sobre las dependencias modulares, consulte Sección 6.1, “Dependencias modulares y cambios de flujo”.
- Para obtener instrucciones sobre cómo actualizar los flujos de módulos, consulte Sección 6.5, “Cambiar a un flujo posterior”.
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 enhttpd
-
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.
- Sección 3.1, “Buscar un paquete” describe cómo buscar los paquetes que proporcionan el contenido deseado.
- enSección 3.2, “Listado de módulos disponibles” se describe cómo hacer una lista de los módulos disponibles y encontrar detalles sobre ellos.
- Ejemplo 3.1, “Averiguar los detalles de un módulo” contiene un ejemplo de los pasos necesarios para examinar un módulo con más detalle.
- Sección 3.3, “Comandos para listar el contenido” proporciona una referencia de los comandos útiles para inspeccionar el contenido.
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
Buscar un paquete con una cadena de texto, como el nombre de la aplicación:
$ yum search "text string"
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
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.
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
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
Muestra el estado actual de un módulo, incluyendo los flujos habilitados y los perfiles instalados:
$ yum module list module-name
Recursos adicionales
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.
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
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]nstalledExamine 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]ctiveComo no se especifica ningún flujo, se utilizan todos los flujos para el listado.
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-serverCada uno de los perfiles instala un conjunto diferente de paquetes, incluyendo sus dependencias.
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.
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]nstalledLa 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.
- Sección 4.1, “Instalación de un paquete” incluye los pasos para instalar un paquete.
- Sección 4.2, “Selección de un flujo antes de la instalación de los paquetes” describe cómo seleccionar un flujo para la instalación de paquetes.
- Sección 4.3, “Instalación de contenidos modulares” describe los pasos para instalar conjuntos de paquetes proporcionados por módulos, flujos y perfiles.
- Ejemplo 4.1, “Instalación de una corriente no predeterminada de una aplicación” muestra un ejemplo de los pasos necesarios para instalar un conjunto de paquetes en una versión no predeterminada.
- Sección 4.4, “Ejecución de los contenidos instalados” proporciona detalles para ejecutar el contenido instalado de RHEL 8.
- Sección 4.5, “Comandos para instalar el contenido de RHEL 8” proporciona una referencia de comandos útiles para instalar el contenido de RHEL 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
- Debe entender el concepto de active module stream.
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
- Debe entender el concepto de active module stream.
- No tiene ningún paquete instalado de otra corriente del mismo módulo.
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.
Recursos adicionales
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
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]nstalledLa salida muestra que el módulo postgresql está disponible con los flujos 9.6, 10 y 12. El flujo por defecto es 10.
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.
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ónAlgunos 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
- Para más información sobre los métodos tradicionales de instalación de software, consulte el capítulo Instalación de paquetes de software con yum en el documento Configuring basic system settings.
Recursos instalados
Para conocer los detalles de varios comandos de la herramienta
yum
, consulte la página del manualyum(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:
- Sección 5.1, “Eliminación de paquetes instalados” describe la eliminación de un paquete.
- Sección 5.2, “Eliminación de los contenidos modulares instalados” describe la eliminación del contenido instalado de un flujo de módulos o de un perfil.
- Sección 5.3, “Restablecimiento de los flujos de los módulos” describe el restablecimiento de los flujos del módulo al estado inicial.
- Sección 5.4, “Comandos para eliminar contenidos” resume los comandos para eliminar contenidos.
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.
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
- Se ha activado el flujo de módulos y se han instalado al menos algunos paquetes del flujo.
- Hay que entender la resolución modular de dependencias.
Procedimiento
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.
-
Compruebe la lista de paquetes en
Removing:
yRemoving unused dependencies:
antes de proceder a la operación de retirada. - 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
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
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 comandoyum install module-name:stream
comando. - Hay que entender la resolución modular de dependencias.
Procedimiento
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.
-
Compruebe la lista de paquetes en
Removing:
yRemoving 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
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
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.
- Sección 6.1, “Dependencias modulares y cambios de flujo” describe las reglas de dependencia modular.
- Sección 6.2, “Interacción de las dependencias modulares y no modulares” proporciona detalles sobre cómo las dependencias de los flujos de módulos afectan al manejo de las dependencias de los paquetes.
- Sección 6.3, “Restablecimiento de los flujos de los módulos” proporciona los pasos para restablecer los módulos a su estado inicial.
- Sección 6.4, “Desactivar todos los flujos de un módulo” proporciona los pasos para desactivar completamente un módulo y todos sus flujos.
- Sección 6.5, “Cambiar a un flujo posterior” proporciona los pasos para cambiar a una corriente posterior de un módulo.
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
- Debe entender el concepto de active module stream.
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.
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
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!NotaAl 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.Cambia el flujo activo por el posterior:
# yum module reset module-name # yum module enable module-name:new-stream
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óduloruby
, el comandonpm
del módulonodejs
, el comandocpan
del móduloperl
, o el comandopecl
del módulophp
. Para más información, consulte Cómo cambiar los flujos de Ruby en RHEL 8.
-
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
Alternativamente, elimine todo el contenido del módulo instalado en el flujo actual, reinicie el módulo e instale el nuevo flujo.