Red Hat Training

A Red Hat training course is available for RHEL 8

Instalação, gerenciamento e remoção de componentes de espaço do usuário

Red Hat Enterprise Linux 8

Uma introdução ao AppStream e ao BaseOS no Red Hat Enterprise Linux 8

Resumo

Este documento descreve a busca, descoberta, instalação e uso do conteúdo nos repositórios AppStream e BaseOS no Red Hat Enterprise Linux 8. Isto inclui uma descrição de como usar módulos, fluxos de aplicações e perfis.

Tornando o código aberto mais inclusivo

A Red Hat tem o compromisso de substituir a linguagem problemática em nosso código, documentação e propriedades da web. Estamos começando com estes quatro termos: master, slave, blacklist e whitelist. Por causa da enormidade deste esforço, estas mudanças serão implementadas gradualmente ao longo de vários lançamentos futuros. Para mais detalhes, veja a mensagem de nosso CTO Chris Wright.

Fornecendo feedback sobre a documentação da Red Hat

Agradecemos sua contribuição em nossa documentação. Por favor, diga-nos como podemos melhorá-la. Para fazer isso:

  • Para comentários simples sobre passagens específicas:

    1. Certifique-se de que você está visualizando a documentação no formato Multi-page HTML. Além disso, certifique-se de ver o botão Feedback no canto superior direito do documento.
    2. Use o cursor do mouse para destacar a parte do texto que você deseja comentar.
    3. Clique no pop-up Add Feedback que aparece abaixo do texto destacado.
    4. Siga as instruções apresentadas.
  • Para enviar comentários mais complexos, crie um bilhete Bugzilla:

    1. Ir para o site da Bugzilla.
    2. Como Componente, use Documentation.
    3. Preencha o campo Description com sua sugestão de melhoria. Inclua um link para a(s) parte(s) relevante(s) da documentação.
    4. Clique em Submit Bug.

Capítulo 1. Usando o AppStream

As seções seguintes fornecem uma visão geral dos conceitos relacionados ao repositório AppStream no Red Hat Enterprise Linux 8.

1.1. Distribuição do conteúdo no RHEL 8

O conteúdo da RHEL 8 é distribuído através dos dois repositórios principais: BaseOS e AppStream.

BaseOS
O conteúdo no repositório BaseOS destina-se a fornecer o conjunto central da funcionalidade do SO subjacente que fornece a base para todas as instalações. Este conteúdo está disponível no formato RPM e está sujeito a termos de suporte similares aos de versões anteriores do Red Hat Enterprise Linux.
AppStream
O conteúdo no repositório AppStream inclui aplicações adicionais de espaço do usuário, linguagens de tempo de execução e bancos de dados em apoio às diversas cargas de trabalho e casos de uso. O conteúdo no AppStream está disponível em um dos dois formatos - o familiar formato RPM e uma extensão para o formato RPM chamada modules.
Importante

Os conjuntos de conteúdo BaseOS e AppStream são necessários para uma instalação básica da RHEL, e estão disponíveis com todas as assinaturas RHEL. Para instruções de instalação, consulte o documento Executando uma instalação padrão RHEL.

1.2. Fluxos de aplicação

O Red Hat Enterprise Linux 8 introduz o conceito de Application Streams - versões de componentes de espaço do usuário. Múltiplas versões destes componentes são agora entregues e atualizadas mais freqüentemente do que os pacotes do sistema operacional principal. Isto proporciona maior flexibilidade para personalizar o Red Hat Enterprise Linux sem impactar a estabilidade subjacente da plataforma ou implementações específicas.

Os componentes disponibilizados como Application Streams podem ser empacotados como módulos ou pacotes RPM, e são entregues através do repositório AppStream no Red Hat Enterprise Linux 8. Cada Application Stream tem um determinado ciclo de vida, seja o mesmo que o RHEL 8 ou mais curto, mais adequado para a aplicação em particular. Os fluxos de aplicações com um ciclo de vida mais curto são listados na página do Red Hat Enterprise Linux 8 Application Streams Life Cycle Cycle.

Nota

Nem todos os módulos são Fluxos de Aplicação. As dependências de outros módulos não são consideradas Fluxos de Aplicação.

1.3. Métodos de embalagem no RHEL 8

O repositório AppStream contém conteúdo embalado de duas maneiras:

Pacotes individuais de RPM
Pacotes tradicionais de RPM disponíveis para instalação imediata.
Módulos
Os módulos são coleções de pacotes que representam uma unidade lógica: uma aplicação, uma pilha de idiomas, um banco de dados ou um conjunto de ferramentas. Estes pacotes são construídos, testados e lançados juntos.

1.4. Gerenciamento de pacotes usando YUM no RHEL 8

O YUM a ferramenta de gerenciamento de pacotes é agora baseada na tecnologia DNF e adiciona suporte para as novas características modulares.

Utilização de YUM não foi alterado no manuseio de pacotes individuais de RPM. Para lidar com o conteúdo modular, o comando yum module foi adicionado. Veja Capítulo 4, Instalando o conteúdo do RHEL 8 para detalhes adicionais.

Quando necessário, a funcionalidade modular seleciona automaticamente a combinação apropriada de módulos e fluxos para permitir a instalação de conjuntos lógicos de pacotes para uso conveniente.

Capítulo 2. Introdução aos módulos

Além dos pacotes individuais de RPM, o repositório AppStream contém módulos. Um módulo é um conjunto de pacotes RPM que representam um componente e são normalmente instalados juntos. Um módulo típico contém pacotes com uma aplicação, pacotes com as bibliotecas de dependências específicas da aplicação, pacotes com documentação para a aplicação, e pacotes com utilitários de ajuda.

As seções subseqüentes descrevem outras características de organização e manuseio de conteúdo dentro dos módulos:

2.1. Rios de módulos

Os fluxos de módulos são filtros que podem ser imaginados como repositórios virtuais no repositório físico AppStream. Os fluxos de módulos representam versões dos componentes do AppStream. Cada um dos fluxos recebe atualizações independentemente.

Os fluxos de módulos podem estar ativos ou inativos. Os fluxos ativos dão ao sistema acesso aos pacotes de RPM dentro do fluxo do módulo específico, permitindo a instalação da respectiva versão do componente. Os fluxos estão ativos ou se marcados como padrão ou se são explicitamente habilitados por uma ação do usuário.

Apenas um fluxo de um determinado módulo pode estar ativo em um determinado momento. Assim, apenas uma versão de um componente pode ser instalada em um sistema. Versões diferentes podem ser usadas em recipientes separados.

Cada módulo pode ter um fluxo padrão. Os fluxos padrão facilitam o consumo de pacotes RHEL da maneira usual, sem a necessidade de aprender sobre os módulos. O fluxo padrão está ativo, a menos que o módulo inteiro tenha sido desativado ou outro fluxo desse módulo ativado.

Certas correntes de módulos dependem de outras correntes de módulos. Por exemplo, os fluxos de módulos perl-App-cpanminus, perl-DBD-MySQL, perl-DBD-Pg, perl-DBD-SQLite, perl-DBI, perl-YAML, e freeradius dependem de certos fluxos de módulos perl.

Para selecionar um determinado fluxo para uma aplicação de usuário em tempo de execução ou uma aplicação de desenvolvedor, considere o seguinte:

  • Funcionalidade necessária e quais as versões de componentes que a suportam
  • Compatibilidade
  • Duração dociclo de vida e seu plano de atualização

Para uma lista de todos os módulos e fluxos disponíveis, veja o manifesto do pacote. Para mudanças por componente, veja as Notas de Lançamento.

Exemplo 2.1. postgresql módulos de fluxos

O módulo postgresql fornece o PostgreSQL versões 9.6, 10 e 12 dos bancos de dados nas respectivas correntes 9.6, 10, e 12. A corrente 10 é atualmente a corrente padrão. Isto significa que o sistema tentará instalar o postgresql-10.6 pacote, se solicitado postgresql.

Recursos adicionais

2.2. Perfis dos módulos

A profile é uma lista de pacotes recomendados para serem instalados juntos para um caso de uso particular, como para um servidor, cliente, desenvolvimento, instalação mínima, ou outro. Estas listas de pacotes podem conter pacotes fora do fluxo do módulo, geralmente do repositório BaseOS ou das dependências do fluxo.

A instalação de pacotes através de um perfil é uma ação única prevista para a conveniência do usuário. Ela não impede a instalação ou desinstalação de qualquer um dos pacotes fornecidos pelo módulo. Também é possível instalar pacotes usando múltiplos perfis do mesmo fluxo do módulo sem qualquer outra etapa preparatória.

Cada fluxo de módulos pode ter qualquer número de perfis, inclusive nenhum. Para qualquer fluxo de módulo, alguns de seus perfis podem ser marcados como default e são então usados para ações de instalação de perfis quando nenhum perfil é explicitamente especificado. Entretanto, a existência de um perfil padrão para um fluxo de módulos não é necessária.

Exemplo 2.2. httpd perfis dos módulos

O módulo httpd, que fornece o Apache oferece os seguintes perfis para instalação:

  • common - uma implantação endurecida pronta para a produção, o perfil padrão
  • devel - os pacotes necessários para fazer modificações em httpd
  • minimal - o menor conjunto de pacotes que irá fornecer um servidor web em funcionamento

Capítulo 3. Encontrando o conteúdo do RHEL 8

As seções seguintes descrevem como localizar e examinar o conteúdo nos repositórios AppStream e BaseOS no Red Hat Enterprise Linux 8.

3.1. Procura de um pacote

Esta seção descreve os passos necessários para encontrar um pacote que forneça uma determinada aplicação ou outro conteúdo.

Pré-requisitos

  • O nome da aplicação ou conteúdo desejado deve ser conhecido

Procedimento

  1. Procure um pacote com uma cadeia de texto, como o nome do aplicativo:

    Pesquisa de yum dólar "text string"
  2. Veja detalhes sobre um pacote:

    $ yum info package

3.2. Listagem dos módulos disponíveis

Esta seção descreve os passos necessários para encontrar quais módulos estão disponíveis e quais são seus detalhes.

Procedimento

  1. Liste os fluxos de módulos disponíveis para seu sistema:

    Lista de módulos $ yum

    A saída deste comando lista os fluxos do módulo com nome, fluxo, perfis e resumo em uma linha separada.

  2. Mostrar detalhes sobre um módulo, incluindo uma descrição, uma lista de todos os perfis, e uma lista de todos os pacotes fornecidos:

    Informações do módulo $ yum module-name
  3. Opcional: Você também pode listar quais destes pacotes são instalados por cada um dos perfis de módulo:

    Informações sobre o módulo $ yum - perfil module-name
  4. Exibir o status atual de um módulo, incluindo fluxos habilitados e perfis instalados:

    Lista de módulos $ yum module-name

Exemplo 3.1. Descobrindo detalhes sobre um módulo

Este exemplo mostra como localizar um módulo no repositório AppStream e como saber mais sobre seu conteúdo.

Nota

Os resultados neste exemplo foram editados por uma questão de brevidade. As saídas reais podem conter mais informações do que as mostradas aqui.

Procedimento

  1. Liste os módulos disponíveis:

    $ 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 os detalhes do 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 nenhum fluxo é especificado, todos os fluxos são utilizados para a listagem.

  3. Examine os perfis disponíveis no fluxo 10 do módulo postgresql:

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

    Cada um dos perfis instala um conjunto diferente de pacotes, incluindo suas dependências.

  4. Instale o módulo postgresql usando o fluxo padrão 10 e o 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
    (...)

    O fluxo 10 está habilitado e pacotes em seu perfil server instalados.

  5. Inspecione o status atual do 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

    A saída mostra que o fluxo padrão 10 está habilitado e seu perfil server está instalado.

3.3. Comandos para o conteúdo da listagem

A seguir estão os comandos comumente usados para encontrar o conteúdo e seus detalhes.

Lista de pacotes disponíveis
Lista de yum disponível
Pesquisar os repositórios YUM disponíveis para um pacote selecionado
US$ yum repoquery package
Procura de um pacote usando uma cadeia de texto arbitrária
Pesquisa de yum dólar "text string"
Mostrar detalhes para um pacote
$ yum info package
Descubra quais módulos fornecem um pacote
O módulo $ yum fornece package

Se o pacote estiver disponível fora de qualquer módulo, a saída deste comando estará vazia.

Lista de módulos disponíveis
Lista de módulos $ yum
Exibir detalhes de um módulo
Informações do módulo $ yum module-name
Listar pacotes instalados por perfis de um módulo usando o fluxo padrão
Informações sobre o módulo $ yum - perfil module-name
Exibir pacotes instalados por perfis de um módulo usando um fluxo especificado
Informações sobre o módulo $ yum - perfil module-namestream
Mostrar o status atual de um módulo
Lista de módulos $ yum module-name

Capítulo 4. Instalando o conteúdo do RHEL 8

As seções seguintes descrevem como instalar conteúdo no Red Hat Enterprise Linux 8.

4.1. Instalando um pacote

Esta seção descreve como instalar pacotes.

Procedimento

  • Instale o pacote:

    # instalação do yum package
    • Se o pacote não for fornecido por nenhum fluxo de módulos, este procedimento é idêntico ao procedimento usado nas versões anteriores do Red Hat Enterprise Linux.
    • Se o pacote for fornecido por um fluxo de módulos habilitado, o pacote é instalado sem qualquer outra manipulação.
    • Se o pacote for fornecido por um fluxo de módulos marcado como padrão, a ferramenta yum habilita automaticamente e de forma transparente esse fluxo de módulos antes de instalar este pacote.
    • Se o pacote for fornecido por um fluxo de módulos que não esteja ativo (nenhum dos casos acima), ele não será reconhecido até que você ative manualmente o respectivo fluxo de módulos.

4.2. Seleção de um fluxo antes da instalação de pacotes

Os fluxos de módulos padrão garantem que os usuários possam instalar pacotes sem se preocupar com as características modulares. Quando o usuário deseja pacotes com versão de um fluxo não predefinido, esse fluxo deve ser habilitado antes que os pacotes fornecidos por ele possam ser instalados.

Pré-requisitos

Procedimento

  • Habilitar o fluxo do módulo:

    # módulo yum habilitado module-namestream

    Substituir module-name e stream pelos nomes do módulo e do fluxo.

    yum pede confirmação e o fluxo está habilitado e ativo. Se outro fluxo do módulo estava anteriormente ativo porque era padrão, ele não está mais ativo.

4.3. Instalação de conteúdo modular

Esta seção descreve como instalar o conteúdo modular fornecido por um fluxo de módulos ou por um perfil.

Pré-requisitos

Procedimento

  • Instale um fluxo de módulo ativo (o padrão ou o que você habilitou):

    # instalação do módulo yum module-name
  • Instalar um fluxo de módulos selecionado:

    # instalação do módulo yum module-namestream

    O fluxo selecionado é ativado automaticamente. Se um perfil padrão for definido para o fluxo, este perfil é automaticamente instalado.

  • Instale um perfil selecionado do fluxo do módulo:

    # instalação do módulo yum module-name:stream/profile

    Isto permite o fluxo e instala o conjunto de pacotes recomendado para um determinado fluxo (versão) e perfil (finalidade) do módulo.

Exemplo 4.1. Instalação de um fluxo não inadimplente de uma aplicação

Este exemplo mostra como instalar uma aplicação a partir de um fluxo não inadimplente (versão).

Mais especificamente, este exemplo mostra como instalar o PostgreSQL servidor (pacote postgresql-server) na versão 9.6, enquanto o fluxo padrão fornece a versão 10.

Procedimento

  1. Liste os módulos que fornecem o postgresql-server pacote para ver quais fluxos estão disponíveis:

    $ 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

    A saída mostra que o módulo postgresql está disponível com os fluxos 9.6, 10 e 12. O fluxo padrão é 10.

  2. Instale os pacotes fornecidos pelo módulo postgresql no fluxo 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 o perfil de instalação não foi especificado, foi utilizado o perfil padrão server.

  3. Verificar a versão instalada de PostgreSQL:

    $ postgres --version
    postgres (PostgreSQL) 9.6.10

4.4. Executando o conteúdo instalado

Normalmente, depois de instalar o conteúdo dos repositórios RHEL 8, novos comandos serão habilitados. Se os comandos forem originados de um pacote RPM ou pacotes RPM habilitados por um módulo, a experiência de usar o comando não deve ser diferente. Para executar os novos comandos, use-os diretamente:

$ command

4.5. Comandos para a instalação do conteúdo RHEL 8

Esta seção lista os comandos comumente usados para instalar o conteúdo do RHEL 8.

Lista de comando

Instalar um pacote
# instalação do yum package

Se o pacote for fornecido por um fluxo de módulos, yum resolve o fluxo de módulos necessário e o habilita automaticamente durante a instalação deste pacote. Isto também acontece de forma recorrente para todas as dependências do pacote. Se mais fluxos de módulos satisfizerem a exigência, são utilizados os fluxos padrão.

Habilitar um módulo usando seu fluxo padrão
# Módulo yum habilitado module-name

Ative o módulo quando desejar disponibilizar os pacotes para o sistema, mas não deseje, neste momento, instalar nenhum deles.

Alguns módulos podem não definir os fluxos padrão. Nesse caso, é necessário especificar explicitamente o fluxo.

Habilitar um módulo usando um fluxo específico
# módulo yum habilitado module-namestream

Se o módulo definir um fluxo padrão, você pode omitir o fluxo e os dois pontos.

Instalar um módulo usando o fluxo padrão e os perfis
# instalação do módulo yum module-name

Alternativamente:

# yum install @module-name
Cuidado

Alguns módulos não definem os fluxos padrão.

Instalar um módulo usando um fluxo específico e perfis padrão
# instalação do módulo yum module-namestream

Alternativamente:

# yum install @module-namestream
Instalar um módulo usando um fluxo e um perfil específicos
# instalação do módulo yum module-name:stream/profile

Alternativamente:

# yum install @module-name:stream/profile

4.6. Recursos adicionais

Recursos on-line

Recursos instalados

  • Para obter detalhes de vários comandos de ferramentas yum, consulte a página do manual yum(8):

    R$ homem yum

Capítulo 5. Removendo o conteúdo do RHEL 8

As seções seguintes descrevem como remover conteúdo do Red Hat Enterprise Linux 8:

5.1. Remoção de pacotes instalados

Esta seção descreve como remover pacotes.

Procedimento

  • Retire o pacote:

    # yum remover package

    O pacote é removido junto com qualquer outro pacote dependente.

5.2. Remoção do conteúdo modular instalado

Ao remover o conteúdo modular instalado, você pode remover pacotes tanto de um perfil selecionado quanto de todo o fluxo.

Importante

YUM tentará remover todos os pacotes com um nome correspondente aos pacotes instalados com um perfil ou um fluxo, incluindo seus pacotes dependentes. Verifique sempre a lista de pacotes a serem removidos antes de prosseguir, especialmente se você tiver habilitado repositórios personalizados em seu sistema.

5.2.1. Remoção de todos os pacotes de um fluxo de módulos

Quando você remove pacotes instalados com um fluxo de módulos, todos os pacotes com um nome correspondente aos pacotes instalados pelo fluxo são removidos, incluindo suas dependências, com exceção dos pacotes requeridos por outros módulos.

Pré-requisitos

Procedimento

  1. Remover todos os pacotes de um fluxo selecionado:

    # yum módulo remover -- todo module-namestream

    Substitua module-name e stream pelo módulo e fluxo que você deseja desinstalar.

  2. Verifique a lista de pacotes em Removing: e Removing unused dependencies: antes de prosseguir com a transação de remoção.
  3. Opcionalmente, reiniciar ou desativar o fluxo.

Se você quiser remover apenas pacotes de um perfil selecionado, siga as instruções em Seção 5.2.2, “Remoção de pacotes de um perfil instalado”.

Exemplo 5.1. Remoção de pacotes de todo o fluxo

Este exemplo mostra como remover todos os pacotes do fluxo do módulo.

Procedimento

  1. Instale o fluxo do módulo php:7.3, incluindo todos os perfis disponíveis:

    [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. Remover todos os pacotes do fluxo do módulo 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. Remoção de pacotes de um perfil instalado

Quando você remove pacotes instalados com um perfil, todos os pacotes com um nome correspondente aos pacotes instalados pelo perfil são removidos, incluindo suas dependências, com exceção dos pacotes requeridos por um perfil diferente.

Pré-requisitos

  • O perfil selecionado foi instalado utilizando o yum module install module-name:stream/profile ou como um perfil padrão usando o comando yum install module-name:stream comando.
  • Você deve compreender a resolução de dependência modular.

Procedimento

  1. Desinstalar pacotes pertencentes ao perfil selecionado:

    # yum módulo remover module-name:stream/profile

    Substitua module-name, stream, e profile pelo módulo, fluxo e perfil que você deseja desinstalar.

    Alternativamente, desinstale os pacotes de todos os perfis instalados dentro de um fluxo:

    # yum módulo remover module-namestream

    Estas operações não removerão pacotes do fluxo que não pertençam a nenhum dos perfis.

  2. Verifique a lista de pacotes em Removing: e Removing unused dependencies: antes de prosseguir com a transação de remoção.

Para remover todos os pacotes de um fluxo selecionado, siga as instruções em Seção 5.2.1, “Remoção de todos os pacotes de um fluxo de módulos”.

Exemplo 5.2. Remoção de pacotes de um perfil selecionado

Este exemplo mostra como remover pacotes pertencentes apenas a um perfil selecionado.

Procedimento

  1. Instale o fluxo do módulo php:7.3, incluindo todos os perfis disponíveis:

    [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. Remover pacotes do 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. Reinicialização de fluxos de módulos

Reiniciar um módulo é uma ação que devolve todas as suas correntes ao seu estado inicial - nem habilitadas nem desabilitadas. Se o módulo tiver um fluxo padrão, esse fluxo se torna ativo como resultado da reinicialização do módulo.

Procedimento

  • Redefinir o estado do módulo:

    # reinicialização do módulo yum module-name

    O módulo é devolvido ao estado inicial. As informações sobre um fluxo habilitado e perfis instalados são apagadas, mas nenhum conteúdo instalado é removido.

5.4. Comandos para remoção de conteúdo

Esta seção lista comandos comumente usados para remover conteúdo.

Lista de comando

Remover um pacote
# yum remover package
Remover pacotes de um perfil instalado
# yum módulo remover module-name:stream/profile
Remover todas as embalagens de um fluxo ativo
# yum módulo remover -- todo module-namestream
Redefinir um módulo para o estado inicial
# reinicialização do módulo yum module-name
Desativar um módulo e todas as suas correntes
# módulo yum desativado module-name

Capítulo 6. Gerenciando versões do conteúdo do Application Stream

O conteúdo no repositório AppStream pode estar disponível em múltiplas versões, correspondendo a fluxos de módulos. Este capítulo descreve as operações que você precisa realizar ao alterar os fluxos de módulos habilitados de outras maneiras, além de habilitar apenas novos fluxos de módulos.

6.1. Dependências modulares e mudanças de fluxo

Tradicionalmente, os pacotes que fornecem conteúdo dependem de outros pacotes, e geralmente especificam as versões de dependência desejadas. Para pacotes contidos em módulos, este mecanismo também se aplica, mas o agrupamento de pacotes e suas versões particulares em módulos e fluxos fornece outras restrições. Além disso, os fluxos de módulos podem declarar dependências em fluxos de outros módulos, independentemente dos pacotes contidos e fornecidos por eles.

Após qualquer operação com pacotes ou módulos, toda a árvore de dependência de todos os pacotes subjacentes instalados deve satisfazer todas as condições que os pacotes declaram. Além disso, todas as dependências do fluxo de módulos devem ser satisfeitas.

Como resultado:

  • A habilitação de um fluxo de módulos pode exigir a habilitação de outros módulos.
  • A instalação de um perfil de fluxo de módulos ou a instalação de pacotes a partir de um fluxo pode exigir a habilitação de outros módulos e a instalação de outros pacotes.
  • A desativação de um fluxo de um módulo pode exigir a desativação de outros fluxos de módulos. Nenhum pacote será removido automaticamente.
  • A remoção de um pacote pode exigir a remoção de outros pacotes. Se estes pacotes forem fornecidos por módulos, os fluxos de módulos permanecem habilitados em preparação para instalação posterior, mesmo que nenhum pacote destes fluxos seja mais instalado. Isto espelha o comportamento de um repositório yum não utilizado.

Não é possível habilitar um fluxo de um módulo quando outro fluxo do mesmo módulo já está habilitado. Para mudar o fluxo, siga o procedimento em Seção 6.5, “Mudando para um fluxo posterior”. Alternativamente, reinicie o módulo, e então habilite o novo fluxo. A remoção de todos os pacotes instalados de um fluxo antes de mudar para um fluxo diferente impede que o sistema chegue a estados onde os pacotes possam ser instalados sem nenhum repositório ou fluxo que os forneça.

Tecnicamente, o módulo de reinicialização não altera automaticamente nenhum pacote instalado. A remoção dos pacotes fornecidos pelo fluxo anterior e quaisquer pacotes que dependam deles é uma operação manual explícita.

6.2. Interação de dependências modulares e não modulares

As dependências modulares são uma camada adicional em cima das dependências RPM regulares. As dependências modulares comportam-se de forma semelhante às dependências hipotéticas entre os repositórios. Isto significa que a instalação de diferentes pacotes requer não somente a resolução das dependências RPM, mas também as dependências modulares devem ser resolvidas de antemão.

O sistema sempre manterá as escolhas de módulo e fluxo, a menos que explicitamente instruído a mudá-las. Um pacote modular receberá atualizações contidas no fluxo atualmente habilitado do módulo que fornece este pacote, mas não irá atualizar para uma versão contida em um fluxo diferente.

6.3. Reinicialização de fluxos de módulos

Reiniciar um módulo é uma ação que devolve todas as suas correntes ao seu estado inicial - nem habilitadas nem desabilitadas. Se o módulo tiver um fluxo padrão, esse fluxo se torna ativo como resultado da reinicialização do módulo.

Procedimento

  • Redefinir o estado do módulo:

    # reinicialização do módulo yum module-name

    O módulo é devolvido ao estado inicial. As informações sobre um fluxo habilitado e perfis instalados são apagadas, mas nenhum conteúdo instalado é removido.

6.4. Desabilitando todos os fluxos de um módulo

Os módulos que têm um fluxo padrão terão sempre um fluxo ativo. Em situações onde o conteúdo de todos os fluxos de módulos não deve ser acessível, é possível desativar o módulo inteiro.

Pré-requisitos

Procedimento

  • Desativar o módulo:

    # módulo yum desativado module-name

    yum pede confirmação e depois desabilita o módulo com todas as suas correntes. Todos os fluxos do módulo ficam inativos. Nenhum conteúdo instalado é removido.

6.5. Mudando para um fluxo posterior

Quando você muda para um fluxo de módulos posterior, todos os pacotes do módulo são substituídos por suas versões posteriores.

Importante

Este procedimento só é viável sob as condições descritas abaixo.

Pré-requisitos

  • O sistema está totalmente atualizado.
  • Nenhum pacote instalado no sistema é mais novo do que os pacotes disponíveis no repositório.

Procedimento

  1. Execute o seguinte comando para determinar se seu sistema está preparado para mudar para um fluxo posterior:

    # yum distro-sync

    Este comando deve terminar com a mensagem Nothing to do. Complete!. Se, em vez disso, ele propõe mudanças e pede confirmação, reveja cuidadosamente estas mudanças e considere se você deseja prosseguir. Execute o comando yum distro-sync repetidamente, se necessário. Alternativamente, você pode recusar as mudanças sugeridas e modificar manualmente seu sistema para um estado em que o comando retorne Nothing to do. Complete!

    Nota

    Ao verificar o resultado yum distro-sync antes de mudar os fluxos, você evita fazer mudanças no sistema que não estejam relacionadas com a mudança do fluxo, pois é necessário o mesmo comando que a última etapa deste procedimento.

  2. Mude o fluxo ativo para o posterior:

    # yum module reset module-name
    # yum module enable module-name:new-stream
  3. Sincronizar os pacotes instalados para realizar a mudança entre os fluxos:

    # yum distro-sync

    Se esta ação sugerir mudanças no conteúdo fora das correntes, revise-as cuidadosamente.

    Nota
    • Se determinados pacotes instalados dependerem do fluxo anterior e não houver uma versão compatível no fluxo posterior, yum irá relatar um conflito de dependência. Neste caso, use a opção --allowerasing para remover tais pacotes porque eles não podem ser instalados junto com o fluxo posterior devido à falta de dependências.
    • Ao trocar os módulos Perl, a opção --allowerasing é sempre necessária porque certos pacotes na instalação base RHEL 8 dependem de Perl 5.26.
    • Extensões binárias (normalmente escritas em C ou C ) para idiomas interpretados precisam ser reinstaladas depois que o novo fluxo for ativado; por exemplo, certos pacotes instalados pelo comando gem do módulo ruby, o comando npm do módulo nodejs, o comando cpan do módulo perl, ou o comando pecl do módulo php. Para mais informações, veja Como trocar os fluxos Ruby no RHEL 8.

Alternativamente, remova todo o conteúdo do módulo instalado do fluxo atual, reinicie o módulo e instale o novo fluxo.