

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizando AL2023
<a name="updating"></a>

É importante manter-se atualizado com os AL2023 lançamentos para que você possa se beneficiar das atualizações de segurança e dos novos recursos. Com AL2023, você pode garantir a consistência entre as versões e atualizações do pacote em seu ambiente por meio de[Atualizações determinísticas por meio de repositórios versionados em AL2023](deterministic-upgrades.md).

**Atenção**  
 A execução de `dnf --releasever=latest update` não é uma prática recomendada e provavelmente resultará no primeiro teste de uma atualização do sistema operacional em produção.   
 Em vez de usar`latest`, use uma versão AL2023 de lançamento específica. Isso garante que você esteja implantando as mesmas alterações em todas as instâncias de produção que testou anteriormente. Por exemplo, sempre `dnf --releasever=2023.10.20260325 update` atualizará para a versão 2023.10.20260325.   
 Para obter mais informações, consulte a AL2023 seção [Atualização](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) no [Guia AL2023 do usuário](https://docs.aws.amazon.com/linux/al2023/ug/). 

**Topics**
+ [Práticas recomendadas para implantar atualizações de forma segura](updating-best-practice.md)
+ [Receber notificações sobre novas atualizações](receive-update-notification.md)
+ [Atualizações determinísticas por meio de repositórios versionados em AL2023](deterministic-upgrades.md)
+ [Gerencie atualizações de pacotes e sistemas operacionais no AL2023](managing-repos-os-updates.md)
+ [Aplicação de patches do kernel em tempo real no AL2023](live-patching.md)
+ [Atualizando o kernel Linux em AL2023](kernel-update.md)

# Práticas recomendadas para implantar atualizações de forma segura
<a name="updating-best-practice"></a>

 O Amazon Linux 2023 (AL2023) tem vários recursos projetados para ajudar na implantação segura de atualizações no sistema operacional e na capacidade de saber o que mudou entre as atualizações e, se necessário, reverter facilmente para a versão mais antiga. Esta seção explora as lições aprendidas em mais AWS de uma década de uso interno e externo do Amazon Linux. 

**Atenção**  
 A execução de `dnf --releasever=latest update` não é uma prática recomendada e provavelmente resultará no primeiro teste de uma atualização do sistema operacional em produção.   
 Em vez de usar`latest`, use uma versão AL2023 de lançamento específica. Isso garante que você esteja implantando as mesmas alterações em todas as instâncias de produção que testou anteriormente. Por exemplo, sempre `dnf --releasever=2023.10.20260325 update` atualizará para a versão 2023.10.20260325.   
 Para obter mais informações, consulte a AL2023 seção [Atualização](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) no [Guia AL2023 do usuário](https://docs.aws.amazon.com/linux/al2023/ug/). 

 Sem planejar a segurança da implantação das atualizações do sistema operacional, o impacto de uma interação negativa inesperada entre você application/service e uma atualização do sistema operacional pode ser significativamente maior, incluindo uma interrupção total. Como acontece com qualquer problema de software, quanto mais cedo o problema for detectado, menor será o impacto que ele poderá ter sobre os usuários finais. 

 É importante não cair na armadilha de acreditar em duas coisas que fundamentalmente não são verdadeiras: 

1. O fornecedor do sistema operacional nunca cometerá um erro em uma atualização do sistema operacional.

1. O comportamento específico ou a interface com o sistema operacional em que você confia corresponde ao comportamento e às interfaces que o fornecedor do sistema operacional consideraria confiáveis.

   Ou seja, tanto o fornecedor do sistema operacional quanto você concordariam que houve um problema com a atualização.

 Não confie em boas intenções, implemente sistemas para garantir que a segurança da implantação *inclua* qualquer atualização do sistema operacional. 

 Não é recomendável testar novas atualizações do sistema operacional implantando-as em ambientes de produção. É uma prática recomendada considerar o sistema operacional como outra parte de sua implantação e pensar em aplicar os mesmos mecanismos de segurança de implantação que você considera adequados para qualquer outra alteração em um ambiente de produção. 

 É uma prática recomendada testar toda e qualquer atualização do sistema operacional antes de implantar nos sistemas de produção. Durante a implantação, são recomendadas implementações graduais combinadas com um bom monitoramento. As implementações em etapas podem garantir que, se ocorrer um problema, mesmo que não seja imediato, o impacto seja restrito a um subconjunto da frota, e a implantação da atualização possa ser interrompida enquanto se realiza uma investigação mais aprofundada e se tomam medidas de mitigação. 

 A mitigação de qualquer impacto negativo causado pela atualização do sistema operacional costuma ser a primeira prioridade, seguida pela resolução do problema, onde quer que ele esteja. Quando a introdução de uma atualização do sistema operacional está correlacionada a um impacto negativo, a capacidade de reverter para a versão anterior do sistema operacional, que se sabe ser boa, é uma ferramenta poderosa. 

 O Amazon Linux 2023 apresenta [Atualizações determinísticas por meio de repositórios com versionamento](deterministic-upgrades.md), um novo recurso poderoso para garantir que qualquer alteração na versão do sistema operacional (ou pacotes individuais) seja repetível. Assim, se ocorrer algum problema ao mudar de uma versão do sistema operacional para a seguinte, existem mecanismos simples de usar disponíveis para manter a versão do sistema operacional que funciona corretamente enquanto se resolve o problema. 

 Com isso AL2023, sempre que lançamos novas atualizações de pacotes, há uma nova versão para bloquear e um novo AMIs bloqueio para essa versão. As [notas AL2023 de lançamento](https://docs.aws.amazon.com/linux/al2023/release-notes/) abordam as mudanças em cada versão e [Consultorias de segurança do Amazon Linux para AL2023](alas.md) abordam os problemas de segurança abordados nas atualizações do pacote. 

 [Por exemplo, se você foi afetado pelo problema presente na versão [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html), você poderia imediatamente voltar a usar as imagens de contêiner da versão anterior, 2023.6.20241010. AMIs ](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html) Nesse caso, havia um bug em um pacote que foi corrigido no lançamento subsequente [2023.6.20241031](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241031.html), mas com [Atualizações determinísticas por meio de repositórios com versionamento](deterministic-upgrades.md) qualquer pessoa afetada poderia tomar *imediatamente* uma medida simples para mitigar o problema: bastava usar as imagens anteriores. 

 [Atualizações determinísticas por meio de repositórios com versionamento](deterministic-upgrades.md)também garante que qualquer implantação em andamento de uma atualização do sistema operacional, seja no local ou por meio do lançamento de imagens novas AMIs ou de contêiner, não seja afetada pelas atualizações do sistema operacional lançadas posteriormente. 

 No nosso primeiro exemplo, a frota A é uma grande frota que está no meio da implantação da atualização de [2023.5.20241001](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20241001.html) para [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html) quando [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html) é lançada. [Atualizações determinísticas por meio de repositórios com versionamento](deterministic-upgrades.md) significam que a implementação para a frota A continua sem qualquer alteração nas atualizações que está aplicando. 

 O objetivo das estratégias de implantação baseadas em ondas ou em fases, como implantar primeiro em 1% de uma frota, depois em 5%, 10%, 20% e 40%, até atingir 100%, é poder testar uma mudança de forma limitada antes de implementá-la mais amplamente. Esse tipo de estratégia de implantação geralmente é considerado a prática recomendada para implantar qualquer alteração em produção. 

 Com uma estratégia de implantação baseada em ondas e a atualização da frota A para [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html) em um estágio em que está sendo implantada em muitos hosts ao mesmo tempo, o fato de [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html) ter sido lançada *não tem impacto na implantação em andamento* graças ao uso de [Atualizações determinísticas por meio de repositórios com versionamento](deterministic-upgrades.md). 

 Se a frota B estivesse executando uma versão mais antiga, digamos [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), e tivesse começado a implantar a atualização para [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html), e a frota B fosse afetada pelo problema nessa versão, isso seria percebido no início da implantação. Nesse momento, pode-se decidir se é necessário pausar qualquer implementação até que uma correção para esse problema esteja disponível ou se, entretanto, é necessário iniciar uma implantação da mesma versão que a frota A estava executando, [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html), para que a frota B receba todas as atualizações entre [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html) e [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html). 

 É importante observar que *não* instalar as atualizações do sistema operacional prontamente pode causar problemas. Novas atualizações provavelmente contêm correções de bugs e segurança que podem ser relevantes para o seu ambiente. Para obter mais informações, consulte [Segurança e compatibilidade no Amazon Linux 2023](security.md) e [Gerencie atualizações de pacotes e sistemas operacionais no AL2023](managing-repos-os-updates.md). 

 É importante configurar seus sistemas de implantação para instalar facilmente novas atualizações do sistema operacional, testá-las antes da implantação em produção e usar mecanismos, como implantações baseadas em ondas, para minimizar qualquer impacto negativo. Para poder mitigar qualquer impacto negativo de uma atualização do sistema operacional, é importante saber como fazer com que seus sistemas de implantação apontem para uma versão anterior em boas condições do sistema operacional e, depois que o problema for resolvido, não ficar preso a essa versão antiga, mas sim mudar para uma nova versão em boas condições. 

## Preparar-se para atualizações secundárias
<a name="prepare-for-minor-updates"></a>

 A preparação para atualizações menores do sistema operacional, como uma nova versão pontual do AL2023, deve ser limitada a zero esforço. Não deixe de ler as [notas AL2023 de lançamento](https://docs.aws.amazon.com/linux/al2023/release-notes/) para ver as próximas alterações. 

 O fim do [período de suporte de um pacote](https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-support-statement.html) pode envolver a mudança para uma versão mais recente do runtime da linguagem (como no caso de [PHPem AL2 023](php.md)). É uma prática recomendada se preparar para isso com antecedência, migrando para novas versões de runtime da linguagem com bastante antecedência do término do período de suporte. 

 Para pacotes como [`pcre` versão 1](deprecated-al2023.md#deprecated-pcre), também há a oportunidade de planejar com antecedência e migrar qualquer código para seu substituto, que neste caso é `pcre` versão 2. É recomendável fazer isso o quanto antes, para ter tempo suficiente para lidar com eventuais contratempos. 

 Onde não há substituição direta, como no caso de [Berkeley DB (`libdb`)](deprecated-al2023.md#deprecated-bdb), talvez seja necessário fazer uma escolha com base no seu caso de uso. 

## Preparar-se para atualizações principais
<a name="prepare-for-major-updates"></a>

 A atualização para uma nova versão principal de um sistema operacional é quase universalmente vista como algo que requer planejamento, trabalho para se adaptar a funcionalidades alteradas ou descontinuadas e também testes antes da implantação. Não é incomum poder se preparar para a próxima versão principal do Amazon Linux 2023 de forma mais incremental, como resolver qualquer uso de funcionalidades descontinuadas ou removidas antes de prosseguir com a migração para a próxima versão principal. 

 Por exemplo, ao passar de AL2 para AL2023, a leitura da [Funcionalidade obsoleta e removida em AL2 AL2023](deprecated-al2.md) seção pode resultar em várias etapas pequenas e seguras que podem ocorrer enquanto ainda são usadas AL2 para se preparar AL2023. Por exemplo, qualquer uso de [O Python 2.7 foi substituído pelo Python 3](python2.7-no-more.md) (fora do uso do sistema operacional, como no gerenciador de pacotes `yum`) pode ser migrado para o Python 3 em preparação para o uso de [Pythonem AL2023](python.md). Se estiver usando [PHP](php.md), ambos AL2 (por meio do PHP 8.2 [AL2 Extra](https://docs.aws.amazon.com/linux/al2/ug/al2-extras.html)) e AL2023 lançam o PHP 8.2 e, portanto, a migração da versão do PHP e a migração do sistema operacional não precisam ocorrer simultaneamente. 

 Ao usar AL2023, também é possível se preparar para a próxima versão principal do Amazon Linux 2023 hoje, enquanto estiver usando AL2023. A [Descontinuações no AL2023](deprecated-al2023.md) seção aborda recursos e pacotes que estão obsoletos AL2023 e devem ser removidos. 

 Por exemplo, migrar qualquer uso restante de [System V init (`sysvinit`)](deprecated-al2023.md#deprecated-sysv-init), como scripts `init`, para seus equivalentes de `systemd` preparará você para o futuro, além de permitir que use o conjunto completo de recursos de `systemd` para monitorar o serviço, como e se deve reiniciá-lo, quais outros serviços ele precisa e se alguma restrição de recurso ou permissão deve ser aplicada. 

 Para recursos como suporte a 32 bits, a descontinuação pode abranger várias versões principais do sistema operacional. Para 32 bits, o Amazon Linux 1 (AL1) está obsoleto[AMIs x86 (i686) de 32 bits](deprecated-al1.md#deprecated-32bit-amis), o Amazon Linux 2 está obsoleto e o Amazon Linux 2023 está [Pacotes x86 (i686) de 32 bits](deprecated-al2.md#deprecated-32bit-rpms) obsoleto. [Suporte ao runtime x86 (i686) de 32 bits](deprecated-al2023.md#deprecated-32bit) A transição do [IMDSv1](deprecated-al2023.md#deprecated-imdsv1) também abrange várias versões principais do sistema operacional. Para esses tipos de mudanças, entende-se que alguns clientes precisam de mais tempo para se adaptar a elas, portanto, há uma grande margem de manobra antes que a funcionalidade não esteja mais disponível no Amazon Linux 2023. 

 A lista de funcionalidades descontinuadas é atualizada durante a vida útil do sistema operacional, e é recomendável acompanhar as alterações feitas nela. 

# Receber notificações sobre novas atualizações
<a name="receive-update-notification"></a>

Você pode receber notificações sempre que uma nova AMI do AL2023 for lançada. As notificações são publicadas com o [Amazon SNS](https://aws.amazon.com/sns/) usando o tópico a seguir.

```
arn:aws:sns:us-east-1:137112412989:amazon-linux-2023-ami-updates
```

As mensagens são publicadas aqui quando uma nova AMI AL2023 é publicada. A versão da AMI será incluída na mensagem.

Essas mensagens podem ser recebidas usando vários métodos diferentes. Recomendamos que você use o método a seguir.

1. Abra o console do [Amazon SNS](https://console.aws.amazon.com/sns/v3/home).

1. Na barra de navegação, altere a Região da AWS para **Leste dos EUA (N. da Virgínia)**, se necessário. É necessário selecionar esta região onde a notificação do SNS que está assinando foi criada nesta região.

1. No painel de navegação, escolha **Assinaturas**, **Criar assinatura**.

1. Na caixa de diálogo **Create subscription**, faça o seguinte:

   1. Em **ARN do tópico**, copie e cole o seguinte **nome do recurso da Amazon (ARN)**: **arn:aws:sns:us-east-1:137112412989:amazon-linux-2023-ami-updates**. 

   1. Em **Protocol (Protocolo)**, escolha **Email**.

   1. Em **Endpoint**, insira um endereço de e-mail que possa ser usado para receber notificações.

   1. Selecione **Create subscription**.

1. Você receberá um e-mail de confirmação com o assunto "Notificação da AWS – confirmação de assinatura". Abra o e-mail e escolha **Confirm subscription** para concluir a assinatura.

# Atualizações determinísticas por meio de repositórios versionados em AL2023
<a name="deterministic-upgrades"></a>

**nota**  
Por padrão, sua AL2023 instância não recebe automaticamente atualizações de segurança adicionais críticas e importantes na inicialização. Sua instância contém inicialmente as atualizações que estavam disponíveis na versão AL2023 e na AMI escolhida.

## Controle as atualizações recebidas de versões principais e secundárias
<a name="controlling-release-updates"></a>

Com AL2023, você pode garantir a consistência entre as versões e atualizações do pacote em seu ambiente. Você também pode garantir a consistência de várias instâncias da mesma Imagem de máquina da Amazon (AMI). Com as atualizações determinísticas através do recurso de repositórios de versão, que é ativado por padrão, você pode aplicar atualizações com base em um cronograma que atenda às suas necessidades específicas.

Sempre que lançamos novas atualizações de pacotes, há uma nova versão para bloquear e um novo AMIs bloqueio para essa versão.

AL2023 bloqueia uma versão específica do seu repositório. Isso é compatível com versões principais ou secundárias. A AL2023 AMI, exposta por meio de nossos parâmetros SSM, é sempre a versão mais recente. Ele tem a maioria dos up-to-date pacotes e atualizações, incluindo atualizações de segurança críticas e importantes.

Se você iniciar uma instância em uma AMI existente, as atualizações não são aplicadas automaticamente. Todos os pacotes adicionais instalados como parte do seu aprovisionamento são mapeados para a versão do repositório da AMI existente. 

Com esse recurso, você é responsável por garantir a consistência entre as versões e atualizações do pacote em seu ambiente. Esse é particularmente o caso se você estiver executando várias instâncias da mesma AMI. É possível aplicar atualizações baseadas em um cronograma que atenda às suas necessidades. Você também pode aplicar um conjunto específico de atualizações no lançamento, pois elas também podem ser bloqueadas em uma versão específica do repositório.

## Diferenças entre atualizações de versão menor e principal
<a name="differences-updates-upgrades"></a>

As versões principais do AL2023 incluem atualizações em grande escala e podem adicionar, excluir ou atualizar pacotes. Para garantir a compatibilidade, atualize sua instância para uma nova versão principal somente depois de testar seu aplicativo nessa versão. 

As versões secundárias do AL2023 incluem atualizações de recursos e segurança, mas não incluem alterações de pacote. Isso garante que os recursos do Linux e a API da biblioteca do sistema permaneçam disponíveis em novas versões. Não é necessário testar o aplicativo antes da atualização. 

## Como saber quando há atualizações disponíveis
<a name="knowing-when-to-update"></a>

 Para aplicar uma atualização, é necessário saber se há uma disponível e saber como implantá-la. 

 Para compilações derivadas AMIs quando novas AL2023 AMIs são lançadas, o [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder pode criar, corrigir e AMIs testar automaticamente. Para acionar seus próprios pipelines de construção de AMI ou usar a base AMIs, você pode[Receber notificações sobre novas atualizações](receive-update-notification.md). 

 Para a aplicação de patches no local, você pode usar ferramentas, como o [Gerenciador de Patches do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html), para orquestrar a aplicação de atualizações em uma frota. 

 Para outros públicos, AMIs com base em AL2023, os fornecedores desses AMIs podem ter seu próprio cronograma de lançamentos e métodos de notificação. Ao usar imagens derivadas AMIs ou de contêiner, verifique a documentação do editor para saber quando as atualizações serão lançadas. 

 As mudanças em cada versão estão documentadas nas [notas AL2023 de lançamento](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html). As atualizações de segurança são publicadas no [Amazon Linux Security Center (ALAS)](https://alas.aws.amazon.com). 

## Controle as atualizações de pacotes disponíveis nos AL2023 repositórios
<a name="control-package-updates"></a>

Quando publicamos uma nova versão dos AL2023 repositórios, todas as versões anteriores ainda estão disponíveis. Por padrão, o plug-in para gerenciar versões do repositório se fixa na mesma versão usada para criar a AMI. Se pretende controlar as atualizações do pacote, siga estas etapas.

1. Descubra as versões disponíveis do repositório ao executar o comando a seguir.

   ```
   $ sudo dnf check-release-update
   ```

1. O comando a seguir pode ser executado para verificar.

   ```
   $ sudo dnf upgrade --releasever=version
   ```

Esse comando inicia uma atualização usando `dnf` a partir da versão atual de lançamento Amazon Linux para a versão de lançamento que é especificada na linha de comando. Uma lista das atualizações do pacote é apresentada por `dnf`. Antes que a atualização seja processada, você deve confirmar a atualização. Depois que a atualização for concluída, a nova versão de lançamento se tornará a versão de lançamento padrão que `dnf` usa para todas as atividades futuras. 

Para obter mais informações, consulte [Gerencie atualizações de pacotes e sistemas operacionais no AL2023](managing-repos-os-updates.md).

# Atualizações determinísticas por meio da substituição de instâncias
<a name="security-instance-replacement"></a>

 O recurso de [Atualizações determinísticas por meio de repositórios versionados em AL2023](deterministic-upgrades.md) do Amazon Linux 2023 torna a substituição de instâncias uma maneira fácil de implementar versões atualizadas do AL2023 de forma determinística e segura. As atualizações determinísticas significam que, à medida que uma nova versão é lançada de forma progressiva, se algum problema for encontrado, será simples reverter para a AMI anterior e determinar a causa do problema. 

 O uso da substituição de instâncias em vez da aplicação de patches no local garante atualizações mais determinísticas e previsíveis, pois o lançamento de novas capacidades pode ser um caminho de código bem testado com estados A e B claros. Cada um dos estados antes e depois pode ser bem testado em um sistema de CI/CD antes do início da implantação. 

 Ao aplicar patches no local, há muitos estados intermediários entre antes e depois da aplicação das atualizações, o que é mais difícil de testar para todas as combinações de estados. 

 Uma estratégia de atualização do sistema operacional que usa a substituição de instâncias com atualizações determinísticas é ideal para modelos de implantação azul/verde ou de implantação baseada em ondas e fases. 

# Usar atualizações determinísticas por meio de repositórios com versionamento
<a name="deterministic-upgrades-usage"></a>

**Topics**
+ [Usando um sistema determinístico atualizado](#using-a-deterministic-upgraded-system)
+ [Atualização seletiva de um sistema determinístico atualizado](#deterministic-upgrade-selective-update)
+ [Usando a substituição persistente com atualização determinística](#deterministic-upgrade-override-persist)

## Usando um sistema determinístico atualizado
<a name="using-a-deterministic-upgraded-system"></a>

**nota**  
 O comportamento padrão do gerenciador de pacotes mudou de AL2. 

 As atualizações determinísticas são uma forma poderosa de garantir que todas as mudanças nos ambientes de produção possam ser totalmente testadas antes de uma ampla implantação. Cada nova AL2023 AMI está bloqueada para uma versão específica do AL2023. Isso fornece um comportamento determinístico de quais versões dos pacotes de sistema operacional são instaladas ao inicializar a AMI específica. As atualizações no local podem ser para uma versão de lançamento específica, garantindo um comportamento determinístico em toda a frota. Ao migrar para versões de atualização novas AMIs ou in-loco, você pode testar cada uma em seu CI/CD pipeline, detectando possíveis problemas antes de implantá-la em ambientes de produção. 

 Você pode usar ferramentas, como o [Gerenciador de Patches do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html), para orquestrar a aplicação de atualizações em uma frota. Para compilações derivadas AMIs quando novas AL2023 AMIs são lançadas, o [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder pode criar, corrigir e AMIs testar automaticamente, ou você [Receber notificações sobre novas atualizações](receive-update-notification.md) pode saber quando uma nova AMIs base está disponível ou acionar seus próprios pipelines de criação de AMI. 

 Para obter informações sobre como restringir as atualizações às de uma recomendação específica, consulte [Aplicar atualizações de segurança no local](security-inplace-update.md). 

 Para aplicar patches no local, você pode usar o gerenciador de pacotes `dnf`. Quando você executa o comando `dnf upgrade`, o sistema verifica se há atualizações no repositório que a variável `releasever` especifica. Uma versão válida `releasever` é uma *latest* ou uma versão com carimbo de data, como. *2023.10.20260325*

É possível alterar o valor de `releasever` usando um dos métodos a seguir. Esses métodos estão listados em prioridade decrescente do sistema. Isso significa que o método 1 substitui os métodos 2 e 3, e o método 2 substitui o método 3.

1. O valor no sinalizador da linha de comando, `--releasever=latest`, se for usado.

1. O valor especificado no arquivo da variável de substituição, `/etc/dnf/vars/releasever`, se estiver definido.

1. A versão atualmente instalada do pacote `system-release`.

No exemplo a seguir, a versão é*2023.0.20230210*:

```
$ rpm -q system-release
system-release-2023.0.20230210-0.amzn2023.noarch
```

Em um sistema recém-instalado, a variável de substituição não está presente. Nenhuma atualização está disponível porque o sistema está bloqueado para a versão instalada do `system-release`.

```
$ cat /etc/dnf/vars/releasever
cat: /etc/dnf/vars/releasever: No such file or directory
```

```
$ sudo dnf upgrade
Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 06:14:12 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!
```

Você pode obter pacotes de uma versão específica usando o sinalizador `releasever` para fornecer a versão desejada.

```
$ rpm -q system-release
system-release-2023.0.20230222-0.amzn2023.noarch
```

```
$ sudo dnf upgrade --releasever=2023.0.20230329
Amazon Linux 2023 repository                     26 MB/s |  12 MB     00:00
Dependencies resolved.
================================================================================
 Package                 Arch    Version                      Repository   Size
================================================================================
Installing:
 kernel                   aarch64 6.1.21-1.45.amzn2023        amazonlinux  26 M
Upgrading:
 amazon-linux-repo-s3     noarch  2023.0.20230329-0.amzn2023  amazonlinux  18 k
 ca-certificates          noarch  2023.2.60-1.0.amzn2023.0.1  amazonlinux 828 k
 cloud-init               noarch  22.2.2-1.amzn2023.1.7       amazonlinux 1.1 M

         ... [ list edited for clarity ]

 system-release           noarch  2023.0.20230329-0.amzn2023  amazonlinux  29 k

         ... [ list edited for clarity ]
          
 vim-data                 noarch  2:9.0.1403-1.amzn2023.0.1   amazonlinux  25 k
 vim-minimal              aarch64 2:9.0.1403-1.amzn2023.0.1   amazonlinux 753 k

Transaction Summary
================================================================================
Install    1 Package
Upgrade   42 Packages

Total download size: 56 M
```

Como a opção `--releasever` substitui ambas `system-release` e `/etc/dnf/vars/releasever`, o resultado dessa atualização é o seguinte:

1. A atualização substitui todos os pacotes instalados que foram alterados entre a versão anterior e a nova.

1. A atualização bloqueia o sistema no repositório da nova versão do `system-release`.

 Ao sempre especificar para qual `releasever` (ou seja, AL2023 versão) atualizar, você tem um conjunto determinístico de mudanças em uma frota. Você lançou a versão*A*, atualizou para *B* e depois atualizou para*C*. 

## Atualização seletiva de um sistema determinístico atualizado
<a name="deterministic-upgrade-selective-update"></a>

**nota**  
 Recomendamos instalar todas as atualizações em um novo lançamento, em vez de selecionar atualizações específicas. Aplicar apenas parte de uma atualização ao sistema operacional deve ser uma exceção à prática padrão de realizar a atualização inteira. 

Talvez você queira instalar pacotes selecionados de uma versão recente, deixando o sistema bloqueado para a versão original.

É possível usar `dnf check-update` para identificar os pacotes que você deseja atualizar.

```
$ sudo dnf check-update --releasever=latest --security
Amazon Linux 2023 repository                     13 MB/s |  10 MB     00:00
Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 02:52:21 AM UTC.

bind-libs.aarch64                  32:9.16.27-1.amzn2023.0.1         amazonlinux
bind-license.noarch                32:9.16.27-1.amzn2023.0.1         amazonlinux
bind-utils.aarch64                 32:9.16.27-1.amzn2023.0.1         amazonlinux
cryptsetup.aarch64                 2.4.3-2.amzn2023.0.1              amazonlinux
cryptsetup-libs.aarch64            2.4.3-2.amzn2023.0.1              amazonlinux
curl-minimal.aarch64               7.85.0-1.amzn2023.0.1             amazonlinux
glibc.aarch64                      2.34-40.amzn2023.0.2              amazonlinux
glibc-all-langpacks.aarch64        2.34-40.amzn2023.0.2              amazonlinux
glibc-common.aarch64               2.34-40.amzn2023.0.2              amazonlinux
glibc-locale-source.aarch64        2.34-40.amzn2023.0.2              amazonlinux
gmp.aarch64                        1:6.2.1-2.amzn2023.0.1            amazonlinux
gnupg2-minimal.aarch64             2.3.7-1.amzn2023.0.2              amazonlinux
gzip.aarch64                       1.10-5.amzn2023.0.1               amazonlinux
kernel.aarch64                     6.1.12-17.42.amzn2023             amazonlinux
kernel-tools.aarch64               6.1.12-17.42.amzn2023             amazonlinux
libarchive.aarch64                 3.5.3-2.amzn2023.0.1              amazonlinux
libcurl-minimal.aarch64            7.85.0-1.amzn2023.0.1             amazonlinux
libsepol.aarch64                   3.4-3.amzn2023.0.2                amazonlinux
libsolv.aarch64                    0.7.22-1.amzn2023.0.1             amazonlinux
libxml2.aarch64                    2.9.14-1.amzn2023.0.1             amazonlinux
logrotate.aarch64                  3.20.1-2.amzn2023.0.2             amazonlinux
lua-libs.aarch64                   5.4.4-3.amzn2023.0.1              amazonlinux
lz4-libs.aarch64                   1.9.4-1.amzn2023.0.1              amazonlinux
openssl.aarch64                    1:3.0.5-1.amzn2023.0.3            amazonlinux
openssl-libs.aarch64               1:3.0.5-1.amzn2023.0.3            amazonlinux
pcre2.aarch64                      10.40-1.amzn2023.0.1              amazonlinux
pcre2-syntax.noarch                10.40-1.amzn2023.0.1              amazonlinux
rsync.aarch64                      3.2.6-1.amzn2023.0.2              amazonlinux
vim-common.aarch64                 2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-data.noarch                    2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-enhanced.aarch64               2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-filesystem.noarch              2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-minimal.aarch64                2:9.0.475-1.amzn2023.0.1          amazonlinux
xz.aarch64                         5.2.5-9.amzn2023.0.1              amazonlinux
xz-libs.aarch64                    5.2.5-9.amzn2023.0.1              amazonlinux
zlib.aarch64                       1.2.11-32.amzn2023.0.3            amazonlinux
```

Instale os pacotes que você deseja atualizar. Use `sudo dnf upgrade --releasever=latest` e os nomes dos pacotes para garantir que o pacote `system-release` permaneça inalterado.

```
$ sudo dnf upgrade --releasever=latest openssl openssl-libs
Last metadata expiration check: 0:01:28 ago on Wed 15 Feb 2023 02:52:21 AM UTC.
Dependencies resolved.
================================================================================
 Package          Arch        Version                     Repository       Size
================================================================================
Upgrading:
 openssl          aarch64     1:3.0.5-1.amzn2023.0.3      amazonlinux     1.1 M
 openssl-libs     aarch64     1:3.0.5-1.amzn2023.0.3      amazonlinux     2.1 M

Transaction Summary
================================================================================
Upgrade  2 Packages

Total download size: 3.2 M
```

**nota**  
O uso de `sudo dnf upgrade --releasever=latest` atualiza todos os pacotes, inclusive `system-release`. Em seguida, a versão permanece bloqueada para o novo `system-release`, a menos que você defina a substituição persistente.

## Usando a substituição persistente com atualização determinística
<a name="deterministic-upgrade-override-persist"></a>

**nota**  
 Com atualizações determinísticas, você pode integrar as alterações do sistema operacional ao seu CI/CD pipeline. A desativação das atualizações determinísticas elimina a capacidade de testar antes da implantação. 

Em vez de adicionar`--releasever=latest`, você pode usar a substituição persistente para *desbloquear* o sistema definindo o valor da variável como*latest*. Ao sempre usar`latest`, isso reverte o comportamento do AL2023 modelo de AL2 atualização, em que qualquer chamada para o gerenciador de pacotes *sempre* examinará a versão mais recente e não estará bloqueada em nenhuma versão específica do sistema operacional.

**Atenção**  
 Ao desvincular o gerenciador de pacotes usando uma substituição persistente de atualizações determinísticas, você corre o risco de descobrir possíveis incompatibilidades entre sua aplicação e uma atualização do sistema operacional em produção.   
 Embora as incompatibilidades *sejam* raras, uma atualização do sistema operacional integra novas alterações de código em seu ambiente, e os testes de integração podem impedir a implantação de alterações de código que tenham um impacto negativo nos ambientes de produção. 

```
$ echo latest | sudo tee /etc/dnf/vars/releasever
latest
```

```
$ sudo dnf upgrade
Last metadata expiration check: 0:03:36 ago on Wed 15 Feb 2023 02:52:21 AM UTC.
Dependencies resolved.
================================================================================
 Package                 Arch    Version                      Repository   Size
================================================================================
Installing:
 kernel                  aarch64 6.1.73-45.135.amzn2023       amazonlinux  24 M
Upgrading:
 acl                     aarch64 2.3.1-2.amzn2023.0.1         amazonlinux  72 k
 alternatives            aarch64 1.15-2.amzn2023.0.1          amazonlinux  36 k
 amazon-ec2-net-utils    noarch  2.3.0-1.amzn2023.0.1         amazonlinux  16 k
 at                      aarch64 3.1.23-6.amzn2023.0.1        amazonlinux  60 k
 attr                    aarch64 2.5.1-3.amzn2023.0.1         amazonlinux  59 k
 audit                   aarch64 3.0.6-1.amzn2023.0.1         amazonlinux 249 k
 audit-libs              aarch64 3.0.6-1.amzn2023.0.1         amazonlinux 116 k
 aws-c-auth-libs         aarch64 0.6.5-6.amzn2023.0.2         amazonlinux  79 k
 aws-c-cal-libs          aarch64 0.5.12-7.amzn2023.0.2        amazonlinux  34 k
 aws-c-common-libs       aarch64 0.6.14-6.amzn2023.0.2        amazonlinux 119 k
 aws-c-compression-libs  aarch64 0.2.14-5.amzn2023.0.2        amazonlinux  22 k
 aws-c-event-stream-libs aarch64 0.2.7-5.amzn2023.0.2         amazonlinux  47 k
 aws-c-http-libs         aarch64 0.6.8-6.amzn2023.0.2         amazonlinux 147 k
 aws-c-io-libs           aarch64 0.10.12-5.amzn2023.0.6       amazonlinux 109 k
 aws-c-mqtt-libs         aarch64 0.7.8-7.amzn2023.0.2         amazonlinux  61 k
 aws-c-s3-libs           aarch64 0.1.27-5.amzn2023.0.3        amazonlinux  54 k
 aws-c-sdkutils-libs     aarch64 0.1.1-5.amzn2023.0.2         amazonlinux  26 k
 aws-checksums-libs      aarch64 0.1.12-5.amzn2023.0.2        amazonlinux  50 k
 awscli-2                noarch  2.7.8-1.amzn2023.0.4         amazonlinux 7.3 M
 basesystem              noarch  11-11.amzn2023.0.1           amazonlinux 7.8 k
 bash                    aarch64 5.1.8-2.amzn2023.0.1         amazonlinux 1.6 M
 bash-completion         noarch  1:2.11-2.amzn2023.0.1        amazonlinux 292 k
 bc                      aarch64 1.07.1-14.amzn2023.0.1       amazonlinux 120 k
 bind-libs               aarch64 32:9.16.27-1.amzn2023.0.1    amazonlinux 1.2 M
 bind-license            noarch  32:9.16.27-1.amzn2023.0.1    amazonlinux  14 k
 bind-utils              aarch64 32:9.16.27-1.amzn2023.0.1    amazonlinux 206 k
 binutils                aarch64 2.38-20.amzn2023.0.3         amazonlinux 4.6 M
 boost-filesystem        aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  55 k
 boost-system            aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  14 k
 boost-thread            aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  54 k
 bzip2                   aarch64 1.0.8-6.amzn2023.0.1         amazonlinux  53 k
 bzip2-libs              aarch64 1.0.8-6.amzn2023.0.1         amazonlinux  44 k
 c-ares                  aarch64 1.17.2-1.amzn2023.0.1        amazonlinux 107 k
 ca-certificates         noarch  2021.2.50-1.0.amzn2023.0.3   amazonlinux 343 k
 checkpolicy             aarch64 3.4-3.amzn2023.0.1           amazonlinux 345 k
 chkconfig               aarch64 1.15-2.amzn2023.0.1          amazonlinux 162 k
 chrony                  aarch64 4.2-7.amzn2023.0.4           amazonlinux 314 k
 cloud-init              noarch  22.2.2-1.amzn2023.1.7        amazonlinux 1.1 M
 cloud-utils-growpart    aarch64 0.31-8.amzn2023.0.2          amazonlinux  31 k
 coreutils               aarch64 8.32-30.amzn2023.0.2         amazonlinux 1.1 M
 coreutils-common        aarch64 8.32-30.amzn2023.0.2         amazonlinux 2.0 M
 cpio                    aarch64 2.13-10.amzn2023.0.1         amazonlinux 269 k
 cracklib                aarch64 2.9.6-27.amzn2023.0.1        amazonlinux  83 k
 cracklib-dicts          aarch64 2.9.6-27.amzn2023.0.1        amazonlinux 3.6 M
 crontabs                noarch  1.11-24.20190603git.amzn2023.0.1
                                                              amazonlinux  19 k
 crypto-policies         noarch  20230128-1.gitdfb10ea.amzn2023.0.1
                                                              amazonlinux  61 k
 crypto-policies-scripts noarch  20230128-1.gitdfb10ea.amzn2023.0.1
                                                              amazonlinux  81 k
...
Installing dependencies:
 amazon-linux-repo-cdn   noarch  2023.0.20230210-0.amzn2023   amazonlinux  16 k
 xxhash-libs             aarch64 0.8.0-3.amzn2023.0.1         amazonlinux  32 k
Installing weak dependencies:
 amazon-chrony-config    noarch  4.2-7.amzn2023.0.4           amazonlinux  14 k
 gawk-all-langpacks      aarch64 5.1.0-3.amzn2023.0.1         amazonlinux 207 k

Transaction Summary
================================================================================
Install    5 Packages
Upgrade  413 Packages

Total download size: 199 M
```

**nota**  
Se você usou a variável de substituição `/etc/dnf/vars/releasever`, use o comando a seguir para restaurar o comportamento de bloqueio padrão apagando o valor de substituição.  

```
$ sudo rm /etc/dnf/vars/releasever
```

 O uso de uma substituição persistente ao uso, `latest` em vez de uma versão específica, é semelhante ao comportamento padrão do. AL2 Existem serviços criados AMIs com base nos AL2 quais desabilitam esse comportamento e bloqueiam versões de pacotes específicas, como as que você usa por padrão AL2023. 

 Em vez de desabilitar as atualizações determinísticas, recomendamos substituir as instâncias por aquelas inicializadas de uma nova AMI. Se a substituição de instâncias não for uma opção, recomendamos o uso de ferramentas, como o [Gerenciador de Patches do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html), para orquestrar a aplicação de atualizações em uma frota. [O EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder também pode criar, corrigir e testar automaticamente suas AMIs próprias imagens AL2023 derivadas de imagens básicas. Você também pode [Receber notificações sobre novas atualizações](receive-update-notification.md), o que pode ser usado para acionar seus próprios pipelines de desenvolvimento de AMIs. 

 O uso de `latest` em um ambiente de pré-produção e, depois, a implantação em produção usando `latest` *não* oferece proteção contra nenhum problema entre uma atualização do sistema operacional e sua aplicação. Uma nova AL2023 versão pode ocorrer a qualquer momento e, portanto, todos os usos `latest` na produção acarretam riscos. 

# Gerencie atualizações de pacotes e sistemas operacionais no AL2023
<a name="managing-repos-os-updates"></a>

Diferentemente das versões anteriores do Amazon Linux, AL2023 AMIs estão bloqueadas em uma versão específica do repositório Amazon Linux. Para aplicar correções de segurança e de erros a uma AL2023 instância, atualize a DNF configuração para a versão mais recente disponível. Como alternativa, execute uma AL2023 instância mais nova. 

 Esta seção descreve como gerenciar pacotes e repositórios de DNF em uma instância em execução. Também descreve como configurar DNF a partir de um script de dados do usuário para habilitar o repositório Amazon Linux mais recente disponível no momento do lançamento. Para obter mais informações, consulte [Referência de comandos da DNF](https://dnf.readthedocs.io/en/latest/command_ref.html). 

 É recomendável aplicar *todas as* atualizações disponíveis em uma nova AL2023 versão. Escolher apenas atualizações de segurança ou apenas atualizações específicas deve ser a exceção, e não a regra. Para listar quais [Recomendações de segurança](alas.md) são relevantes para uma instância específica, consulte [Listar recomendações aplicáveis](listing-applicable-advisories.md). Para obter informações sobre como instalar *somente* atualizações relevantes para uma [recomendação](alas.md) específica, consulte [Aplicar atualizações de segurança no local](security-inplace-update.md). 

**Importante**  
 Se você quiser denunciar uma vulnerabilidade ou tiver uma preocupação de segurança em relação a serviços em AWS nuvem ou projetos de código aberto, entre em contato com a AWS Segurança usando a [página Relatórios de vulnerabilidades](https://aws.amazon.com/security/vulnerability-reporting/) 

**Topics**
+ [Verificar as atualizações de pacotes disponíveis](#dnf-package-updates)
+ [Aplicar atualizações de segurança usando DNF e versões do repositório](#apply-security-updates)
+ [Reinício automático do serviço após atualizações (de segurança)](#automatic-restart-services)
+ [Quando é necessário reinicializar para aplicar as atualizações de segurança?](#reboot)
+ [Lançamento de uma instância com a versão mais recente do repositório ativada](#launch-an-instance-repo-version)
+ [Obtendo informações de suporte do pacote](#dnf-support-info-plugin)
+ [Verificar versões mais recentes do repositório com `dnf check-release-update`](#dnf-repository-updates)
+ [Adicionar, habilitar ou desabilitar novos repositórios](#dnf-repo-addition)
+ [Adicionando repositórios com cloud-init](#cloud-init-repo-update)

## Verificar as atualizações de pacotes disponíveis
<a name="dnf-package-updates"></a>

Você pode usar o comando `dnf check-update` para verificar se há atualizações no seu sistema. Para isso AL2023, recomendamos que você adicione a `--releasever=version-number` opção ao comando.

Ao adicionar essa opção, DNF verifica também se há atualizações para uma versão posterior do repositório. Por exemplo, depois de executar o comando `dnf check-update`, use a última versão retornada como o valor para o `version-number`.

Se a instância for atualizada para usar a versão mais recente do repositório, a saída incluirá uma lista de todos os pacotes a serem atualizados.

**nota**  
Se você não especificar a versão de lançamento com o sinalizador opcional no comando `dnf check-update`, somente a versão do repositório atualmente configurada será verificada. Isso significa que os pacotes na versão posterior do repositório não são verificados.

------
#### [ Updates in a specific version ]

 Neste exemplo, veremos quais atualizações estão disponíveis no lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) ao inicializar um contêiner do lançamento [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

**nota**  
 Este exemplo usa as versões [2023.0.20230315 e [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html)](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html), e essas *não são* as versões mais recentes do AL2023 Consulte as [notas](https://docs.aws.amazon.com/linux/al2023/release-notes/) de lançamento das versões mais recentes, que contêm as AL2023 atualizações de segurança mais recentes. 

 Neste exemplo, começaremos com uma imagem de contêiner para o lançamento [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

 Primeiro, buscamos essa imagem de contêiner no registro de contêineres. O trecho `.0` no final indica a versão da imagem para um lançamento específico, e essa versão da imagem geralmente é 0. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  2023.0.20230315.0: Pulling from amazonlinux/amazonlinux
b76f3b09316a: Pull complete
Digest: sha256:94e7183b0739140dbd5b639fb7600f0a2299cec5df8780c26d9cb409da5315a9
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
```

 Agora podemos gerar um shell dentro do contêiner, por meio do qual verificaremos se há atualizações. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  bash-5.2#
```

 O comando `dnf check-update` agora é usado para verificar as atualizações disponíveis no lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html). 

**nota**  
 A aplicação de atualizações de pacotes é uma operação privilegiada. Embora normalmente não seja necessário elevar privilégios ao executar em um contêiner, se estiver executando em um ambiente sem contêineres, como uma instância do Amazon EC2, você poderá *verificar* se há atualizações sem elevar os privilégios. 

```
$ dnf check-update --releasever=2023.1.20230628
Amazon Linux 2023 repository                      60 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:02 ago on Mon Jul 22 17:25:34 2024.

amazon-linux-repo-cdn.noarch        2023.1.20230628-0.amzn2023        amazonlinux
ca-certificates.noarch              2023.2.60-1.0.amzn2023.0.2        amazonlinux
curl-minimal.x86_64                 8.0.1-1.amzn2023                  amazonlinux
glib2.x86_64                        2.74.7-688.amzn2023.0.1           amazonlinux
glibc.x86_64                        2.34-52.amzn2023.0.3              amazonlinux
glibc-common.x86_64                 2.34-52.amzn2023.0.3              amazonlinux
glibc-minimal-langpack.x86_64       2.34-52.amzn2023.0.3              amazonlinux
gnupg2-minimal.x86_64               2.3.7-1.amzn2023.0.4              amazonlinux
keyutils-libs.x86_64                1.6.3-1.amzn2023                  amazonlinux
libcap.x86_64                       2.48-2.amzn2023.0.3               amazonlinux
libcurl-minimal.x86_64              8.0.1-1.amzn2023                  amazonlinux
libgcc.x86_64                       11.3.1-4.amzn2023.0.3             amazonlinux
libgomp.x86_64                      11.3.1-4.amzn2023.0.3             amazonlinux
libstdc++.x86_64                    11.3.1-4.amzn2023.0.3             amazonlinux
libxml2.x86_64                      2.10.4-1.amzn2023.0.1             amazonlinux
ncurses-base.noarch                 6.2-4.20200222.amzn2023.0.4       amazonlinux
ncurses-libs.x86_64                 6.2-4.20200222.amzn2023.0.4       amazonlinux
openssl-libs.x86_64                 1:3.0.8-1.amzn2023.0.3            amazonlinux
python3-rpm.x86_64                  4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm.x86_64                          4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm-build-libs.x86_64               4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm-libs.x86_64                     4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm-sign-libs.x86_64                4.16.1.3-12.amzn2023.0.6          amazonlinux
system-release.noarch               2023.1.20230628-0.amzn2023        amazonlinux
tzdata.noarch                       2023c-1.amzn2023.0.1              amazonlinux
bash-5.2#
```

 A versão do pacote `system-release` mostra o lançamento para o qual um comando `dnf upgrade` faria a atualização, que é o lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) solicitado no comando `dnf check-update --releasever=2023.1.20230628`. 

------
#### [ Updates in the latest version ]

 Neste exemplo, veremos quais atualizações estão disponíveis na versão de AL2023 se lançarmos um contêiner da `latest` versão [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). No momento em que este artigo foi escrito, o lançamento `latest` era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), portanto, as atualizações listadas neste exemplo serão as desse lançamento. 

**nota**  
 Este exemplo usa os lançamentos [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) e [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), sendo que este é o lançamento mais recente *no momento em que este artigo foi escrito*. Para obter mais informações sobre as versões mais recentes, consulte as [Notas AL2023 de versão](https://docs.aws.amazon.com/linux/al2023/release-notes/). 

 Neste exemplo, começaremos com uma imagem de contêiner para o lançamento [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). 

 Primeiro, buscamos essa imagem de contêiner no registro de contêineres. O trecho `.1` no final indica a versão da imagem para um lançamento específico. Embora a versão da imagem geralmente seja 0, este exemplo usa um lançamento em que a versão da imagem é 1. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  2023.4.20240319.1: Pulling from amazonlinux/amazonlinux
6de065fda9a2: Pull complete
Digest: sha256:b4838c4cc9211d966b6ea158dacc9eda7433a16ba94436508c2d9f01f7658b4e
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
```

 Agora podemos gerar um shell dentro do contêiner, por meio do qual verificaremos se há atualizações. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  bash-5.2#
```

 O comando `dnf check-update` agora é usado para verificar as atualizações disponíveis no lançamento `latest` que, *no momento em que este artigo foi escrito*, era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html). 

**nota**  
 A aplicação de atualizações de pacotes é uma operação privilegiada. Embora normalmente não seja necessário elevar privilégios ao executar em um contêiner, se estiver executando em um ambiente sem contêineres, como uma instância do Amazon EC2, você poderá *verificar* se há atualizações sem elevar os privilégios. 

```
$ dnf --releasever=latest check-update
Amazon Linux 2023 repository                      78 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 17:39:13 2024.

amazon-linux-repo-cdn.noarch        2023.5.20240708-1.amzn2023        amazonlinux
curl-minimal.x86_64                 8.5.0-1.amzn2023.0.4              amazonlinux
dnf.noarch                          4.14.0-1.amzn2023.0.5             amazonlinux
dnf-data.noarch                     4.14.0-1.amzn2023.0.5             amazonlinux
expat.x86_64                        2.5.0-1.amzn2023.0.4              amazonlinux
glibc.x86_64                        2.34-52.amzn2023.0.10             amazonlinux
glibc-common.x86_64                 2.34-52.amzn2023.0.10             amazonlinux
glibc-minimal-langpack.x86_64       2.34-52.amzn2023.0.10             amazonlinux
krb5-libs.x86_64                    1.21-3.amzn2023.0.4               amazonlinux
libblkid.x86_64                     2.37.4-1.amzn2023.0.4             amazonlinux
libcurl-minimal.x86_64              8.5.0-1.amzn2023.0.4              amazonlinux
libmount.x86_64                     2.37.4-1.amzn2023.0.4             amazonlinux
libnghttp2.x86_64                   1.59.0-3.amzn2023.0.1             amazonlinux
libsmartcols.x86_64                 2.37.4-1.amzn2023.0.4             amazonlinux
libuuid.x86_64                      2.37.4-1.amzn2023.0.4             amazonlinux
openssl-libs.x86_64                 1:3.0.8-1.amzn2023.0.12           amazonlinux
python3.x86_64                      3.9.16-1.amzn2023.0.8             amazonlinux
python3-dnf.noarch                  4.14.0-1.amzn2023.0.5             amazonlinux
python3-libs.x86_64                 3.9.16-1.amzn2023.0.8             amazonlinux
system-release.noarch               2023.5.20240708-1.amzn2023        amazonlinux
yum.noarch                          4.14.0-1.amzn2023.0.5             amazonlinux
bash-5.2#
```

 A versão do pacote `system-release` mostra o lançamento para o qual um comando `dnf upgrade` seria atualizado. 

------

Para esse comando, se houver pacotes mais novos disponíveis, o código de retorno será 100. Se não houver pacotes mais novos disponíveis, o código de retorno será 0. Além disso, a saída também lista todos os pacotes a serem atualizados. 

## Aplicar atualizações de segurança usando DNF e versões do repositório
<a name="apply-security-updates"></a>

Novas atualizações de pacotes e atualizações de segurança são disponibilizadas somente para novas versões do repositório. Para instâncias que você executou a partir de versões anteriores da AL2023 AMI, você deve atualizar a versão do repositório antes de poder instalar as atualizações de segurança. O comando `dnf check-release-update` inclui um exemplo de comando update que atualiza todos os pacotes instalados no sistema para versões em um repositório mais novo.

**nota**  
 Se você não especificar a versão de lançamento com o sinalizador opcional no comando `dnf check-update`, somente a versão do repositório atualmente configurada será verificada. Isso significa que nenhuma atualização dos pacotes instalados presentes em qualquer versão posterior do repositório será aplicada.

 Esta seção aborda o caminho de atualização recomendado para aplicar todas as atualizações disponíveis em vez de escolher atualizações individuais ou somente aquelas marcadas como atualizações de segurança. Ao aplicar todas as atualizações, as instâncias existentes são movidas para o mesmo conjunto de pacotes que a inicialização de uma AMI atualizada. Essa consistência reduz a variação das versões de pacotes em uma frota. Para saber mais sobre como aplicar atualizações específicas, consulte [Aplicar atualizações de segurança no local](security-inplace-update.md). 

------
#### [ Applying updates in a specific version ]

 Neste exemplo, aplicaremos as atualizações disponíveis no lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) ao inicializar um contêiner do lançamento [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

**nota**  
 Este exemplo usa as versões [2023.0.20230315 e [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html)](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html), e essas *não são* as versões mais recentes do AL2023 Consulte as [notas](https://docs.aws.amazon.com/linux/al2023/release-notes/) de lançamento das versões mais recentes, que contêm as AL2023 atualizações de segurança mais recentes. 

 Neste exemplo, começaremos com uma imagem de contêiner para o lançamento [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

 Primeiro, buscamos essa imagem de contêiner no registro de contêineres. O trecho `.0` no final indica a versão da imagem para um lançamento específico, e essa versão da imagem geralmente é 0. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  2023.0.20230315.0: Pulling from amazonlinux/amazonlinux
b76f3b09316a: Pull complete
Digest: sha256:94e7183b0739140dbd5b639fb7600f0a2299cec5df8780c26d9cb409da5315a9
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
```

 Agora podemos gerar um shell dentro do contêiner, por meio do qual aplicaremos as atualizações. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  bash-5.2#
```

 O comando `dnf upgrade` agora é usado para aplicar todas as atualizações presentes no lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html). 

**nota**  
 A aplicação de atualizações de pacotes é uma operação privilegiada. Embora normalmente não seja necessário elevar privilégios ao executar em um contêiner, se estiver executando em um ambiente sem contêineres, como uma instância do Amazon EC2, você precisará executar o comando `dnf upgrade` como usuário `root`. Isso pode ser feito utilizando os comandos `sudo` ou `su`. 

```
$ dnf upgrade --releasever=2023.1.20230628
Amazon Linux 2023 repository                      38 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:02 ago on Mon Jul 22 17:49:08 2024.
Dependencies resolved.
=================================================================================
 Package                 Arch    Version                      Repository    Size
=================================================================================
Upgrading:
 amazon-linux-repo-cdn   noarch  2023.1.20230628-0.amzn2023   amazonlinux   18 k
 ca-certificates         noarch  2023.2.60-1.0.amzn2023.0.2   amazonlinux  829 k
 curl-minimal            x86_64  8.0.1-1.amzn2023             amazonlinux  150 k
 glib2                   x86_64  2.74.7-688.amzn2023.0.1      amazonlinux  2.7 M
 glibc                   x86_64  2.34-52.amzn2023.0.3         amazonlinux  1.9 M
 glibc-common            x86_64  2.34-52.amzn2023.0.3         amazonlinux  307 k
 glibc-minimal-langpack  x86_64  2.34-52.amzn2023.0.3         amazonlinux   35 k
 gnupg2-minimal          x86_64  2.3.7-1.amzn2023.0.4         amazonlinux  421 k
 keyutils-libs           x86_64  1.6.3-1.amzn2023             amazonlinux   33 k
 libcap                  x86_64  2.48-2.amzn2023.0.3          amazonlinux   67 k
 libcurl-minimal         x86_64  8.0.1-1.amzn2023             amazonlinux  249 k
 libgcc                  x86_64  11.3.1-4.amzn2023.0.3        amazonlinux  105 k
 libgomp                 x86_64  11.3.1-4.amzn2023.0.3        amazonlinux  280 k
 libstdc++               x86_64  11.3.1-4.amzn2023.0.3        amazonlinux  744 k
 libxml2                 x86_64  2.10.4-1.amzn2023.0.1        amazonlinux  706 k
 ncurses-base            noarch  6.2-4.20200222.amzn2023.0.4  amazonlinux   60 k
 ncurses-libs            x86_64  6.2-4.20200222.amzn2023.0.4  amazonlinux  328 k
 openssl-libs            x86_64  1:3.0.8-1.amzn2023.0.3       amazonlinux  2.2 M
 python3-rpm             x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux   88 k
 rpm                     x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux  486 k
 rpm-build-libs          x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux   90 k
 rpm-libs                x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux  309 k
 rpm-sign-libs           x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux   21 k
 system-release          noarch  2023.1.20230628-0.amzn2023   amazonlinux   29 k
 tzdata                  noarch  2023c-1.amzn2023.0.1         amazonlinux  433 k

Transaction Summary
=================================================================================
Upgrade  25 Packages

Total download size: 12 M
Is this ok [y/N]:
```

 A versão do pacote `system-release` mostra o lançamento para o qual um comando `dnf upgrade` faria a atualização, que é o lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) solicitado no comando `dnf upgrade --releasever=2023.1.20230628`. 

 Por padrão, `dnf` solicitará que você confirme se deseja aplicar as atualizações. Você pode ignorar esse prompt usando o sinalizador `-y` para `dnf`. Neste exemplo, o comando `dnf upgrade -y --releasever=2023.1.20230628` não solicitará confirmação antes de aplicar as atualizações. Isso é útil em scripts ou outros ambientes de automação. 

 Depois de confirmar que deseja aplicar as atualizações, `dnf` as aplica. 

```
Is this ok [y/N]:y
	  Downloading Packages:
(1/25): libcap-2.48-2.amzn2023.0.3.x86_64.rpm    1.5 MB/s |  67 kB     00:00
(2/25): python3-rpm-4.16.1.3-12.amzn2023.0.6.x86 2.1 MB/s |  88 kB     00:00
(3/25): libcurl-minimal-8.0.1-1.amzn2023.x86_64. 2.6 MB/s | 249 kB     00:00
(4/25): glib2-2.74.7-688.amzn2023.0.1.x86_64.rpm  26 MB/s | 2.7 MB     00:00
(5/25): glibc-minimal-langpack-2.34-52.amzn2023. 1.3 MB/s |  35 kB     00:00
(6/25): rpm-build-libs-4.16.1.3-12.amzn2023.0.6. 2.8 MB/s |  90 kB     00:00
(7/25): rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64 6.6 MB/s | 309 kB     00:00
(8/25): libgcc-11.3.1-4.amzn2023.0.3.x86_64.rpm  3.9 MB/s | 105 kB     00:00
(9/25): glibc-common-2.34-52.amzn2023.0.3.x86_64  11 MB/s | 307 kB     00:00
(10/25): glibc-2.34-52.amzn2023.0.3.x86_64.rpm    31 MB/s | 1.9 MB     00:00
(11/25): rpm-sign-libs-4.16.1.3-12.amzn2023.0.6. 877 kB/s |  21 kB     00:00
(12/25): gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86  15 MB/s | 421 kB     00:00
(13/25): openssl-libs-3.0.8-1.amzn2023.0.3.x86_6  35 MB/s | 2.2 MB     00:00
(14/25): libxml2-2.10.4-1.amzn2023.0.1.x86_64.rp  14 MB/s | 706 kB     00:00
(15/25): curl-minimal-8.0.1-1.amzn2023.x86_64.rp 4.2 MB/s | 150 kB     00:00
(16/25): rpm-4.16.1.3-12.amzn2023.0.6.x86_64.rpm  11 MB/s | 486 kB     00:00
(17/25): libgomp-11.3.1-4.amzn2023.0.3.x86_64.rp 7.0 MB/s | 280 kB     00:00
(18/25): libstdc++-11.3.1-4.amzn2023.0.3.x86_64.  14 MB/s | 744 kB     00:00
(19/25): keyutils-libs-1.6.3-1.amzn2023.x86_64.r 1.6 MB/s |  33 kB     00:00
(20/25): ncurses-libs-6.2-4.20200222.amzn2023.0.  10 MB/s | 328 kB     00:00
(21/25): tzdata-2023c-1.amzn2023.0.1.noarch.rpm   11 MB/s | 433 kB     00:00
(22/25): amazon-linux-repo-cdn-2023.1.20230628-0 781 kB/s |  18 kB     00:00
(23/25): ca-certificates-2023.2.60-1.0.amzn2023.  16 MB/s | 829 kB     00:00
(24/25): system-release-2023.1.20230628-0.amzn20 1.5 MB/s |  29 kB     00:00
(25/25): ncurses-base-6.2-4.20200222.amzn2023.0. 3.1 MB/s |  60 kB     00:00
---------------------------------------------------------------------------------
Total                                             28 MB/s |  12 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                         1/1
  Upgrading        : libgcc-11.3.1-4.amzn2023.0.3.x86_64                    1/50
  Running scriptlet: libgcc-11.3.1-4.amzn2023.0.3.x86_64                    1/50
  Upgrading        : system-release-2023.1.20230628-0.amzn2023.noarch       2/50
  Upgrading        : amazon-linux-repo-cdn-2023.1.20230628-0.amzn2023.no    3/50
  Upgrading        : ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch        4/50
  Upgrading        : tzdata-2023c-1.amzn2023.0.1.noarch                     5/50
  Upgrading        : glibc-common-2.34-52.amzn2023.0.3.x86_64               6/50
  Running scriptlet: glibc-2.34-52.amzn2023.0.3.x86_64                      7/50
  Upgrading        : glibc-2.34-52.amzn2023.0.3.x86_64                      7/50
  Running scriptlet: glibc-2.34-52.amzn2023.0.3.x86_64                      7/50
  Upgrading        : glibc-minimal-langpack-2.34-52.amzn2023.0.3.x86_64     8/50
  Upgrading        : libcap-2.48-2.amzn2023.0.3.x86_64                      9/50
  Upgrading        : gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86_64            10/50
  Upgrading        : libgomp-11.3.1-4.amzn2023.0.3.x86_64                  11/50
  Running scriptlet: ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     12/50
  Upgrading        : ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     12/50
  Running scriptlet: ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     12/50
  Upgrading        : openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64            13/50
  Upgrading        : libcurl-minimal-8.0.1-1.amzn2023.x86_64               14/50
  Upgrading        : curl-minimal-8.0.1-1.amzn2023.x86_64                  15/50
  Upgrading        : rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64              16/50
  Upgrading        : rpm-4.16.1.3-12.amzn2023.0.6.x86_64                   17/50
  Upgrading        : rpm-build-libs-4.16.1.3-12.amzn2023.0.6.x86_64        18/50
  Upgrading        : rpm-sign-libs-4.16.1.3-12.amzn2023.0.6.x86_64         19/50
  Upgrading        : python3-rpm-4.16.1.3-12.amzn2023.0.6.x86_64           20/50
  Upgrading        : glib2-2.74.7-688.amzn2023.0.1.x86_64                  21/50
  Upgrading        : libxml2-2.10.4-1.amzn2023.0.1.x86_64                  22/50
  Upgrading        : libstdc++-11.3.1-4.amzn2023.0.3.x86_64                23/50
  Upgrading        : keyutils-libs-1.6.3-1.amzn2023.x86_64                 24/50
  Upgrading        : ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64       25/50
  Cleanup          : glib2-2.73.2-680.amzn2023.0.3.x86_64                  26/50
  Cleanup          : libstdc++-11.3.1-4.amzn2023.0.2.x86_64                27/50
  Cleanup          : libxml2-2.10.3-2.amzn2023.0.1.x86_64                  28/50
  Cleanup          : python3-rpm-4.16.1.3-12.amzn2023.0.5.x86_64           29/50
  Cleanup          : rpm-build-libs-4.16.1.3-12.amzn2023.0.5.x86_64        30/50
  Cleanup          : rpm-sign-libs-4.16.1.3-12.amzn2023.0.5.x86_64         31/50
  Cleanup          : rpm-libs-4.16.1.3-12.amzn2023.0.5.x86_64              32/50
  Cleanup          : libcap-2.48-2.amzn2023.0.2.x86_64                     33/50
  Cleanup          : gnupg2-minimal-2.3.7-1.amzn2023.0.3.x86_64            34/50
  Cleanup          : ncurses-libs-6.2-4.20200222.amzn2023.0.3.x86_64       35/50
  Cleanup          : libgomp-11.3.1-4.amzn2023.0.2.x86_64                  36/50
  Cleanup          : rpm-4.16.1.3-12.amzn2023.0.5.x86_64                   37/50
  Cleanup          : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64             38/50
  Cleanup          : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64          39/50
  Cleanup          : openssl-libs-1:3.0.8-1.amzn2023.0.1.x86_64            40/50
  Cleanup          : keyutils-libs-1.6.1-2.amzn2023.0.2.x86_64             41/50
  Cleanup          : amazon-linux-repo-cdn-2023.0.20230315-1.amzn2023.no   42/50
  Cleanup          : system-release-2023.0.20230315-1.amzn2023.noarch      43/50
  Cleanup          : ca-certificates-2023.2.60-1.0.amzn2023.0.1.noarch     44/50
  Cleanup          : ncurses-base-6.2-4.20200222.amzn2023.0.3.noarch       45/50
  Cleanup          : glibc-minimal-langpack-2.34-52.amzn2023.0.2.x86_64    46/50
  Cleanup          : glibc-2.34-52.amzn2023.0.2.x86_64                     47/50
  Cleanup          : glibc-common-2.34-52.amzn2023.0.2.x86_64              48/50
  Cleanup          : tzdata-2022g-1.amzn2023.0.1.noarch                    49/50
  Cleanup          : libgcc-11.3.1-4.amzn2023.0.2.x86_64                   50/50
  Running scriptlet: libgcc-11.3.1-4.amzn2023.0.2.x86_64                   50/50
  Running scriptlet: ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     50/50
  Running scriptlet: rpm-4.16.1.3-12.amzn2023.0.6.x86_64                   50/50
  Running scriptlet: libgcc-11.3.1-4.amzn2023.0.2.x86_64                   50/50
  Verifying        : libcurl-minimal-8.0.1-1.amzn2023.x86_64                1/50
  Verifying        : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           2/50
  Verifying        : libcap-2.48-2.amzn2023.0.3.x86_64                      3/50
  Verifying        : libcap-2.48-2.amzn2023.0.2.x86_64                      4/50
  Verifying        : glib2-2.74.7-688.amzn2023.0.1.x86_64                   5/50
  Verifying        : glib2-2.73.2-680.amzn2023.0.3.x86_64                   6/50
  Verifying        : python3-rpm-4.16.1.3-12.amzn2023.0.6.x86_64            7/50
  Verifying        : python3-rpm-4.16.1.3-12.amzn2023.0.5.x86_64            8/50
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.3.x86_64     9/50
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.2.x86_64    10/50
  Verifying        : rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64              11/50
  Verifying        : rpm-libs-4.16.1.3-12.amzn2023.0.5.x86_64              12/50
  Verifying        : rpm-build-libs-4.16.1.3-12.amzn2023.0.6.x86_64        13/50
  Verifying        : rpm-build-libs-4.16.1.3-12.amzn2023.0.5.x86_64        14/50
  Verifying        : glibc-2.34-52.amzn2023.0.3.x86_64                     15/50
  Verifying        : glibc-2.34-52.amzn2023.0.2.x86_64                     16/50
  Verifying        : libgcc-11.3.1-4.amzn2023.0.3.x86_64                   17/50
  Verifying        : libgcc-11.3.1-4.amzn2023.0.2.x86_64                   18/50
  Verifying        : glibc-common-2.34-52.amzn2023.0.3.x86_64              19/50
  Verifying        : glibc-common-2.34-52.amzn2023.0.2.x86_64              20/50
  Verifying        : rpm-sign-libs-4.16.1.3-12.amzn2023.0.6.x86_64         21/50
  Verifying        : rpm-sign-libs-4.16.1.3-12.amzn2023.0.5.x86_64         22/50
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64            23/50
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.1.x86_64            24/50
  Verifying        : gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86_64            25/50
  Verifying        : gnupg2-minimal-2.3.7-1.amzn2023.0.3.x86_64            26/50
  Verifying        : libxml2-2.10.4-1.amzn2023.0.1.x86_64                  27/50
  Verifying        : libxml2-2.10.3-2.amzn2023.0.1.x86_64                  28/50
  Verifying        : curl-minimal-8.0.1-1.amzn2023.x86_64                  29/50
  Verifying        : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64             30/50
  Verifying        : rpm-4.16.1.3-12.amzn2023.0.6.x86_64                   31/50
  Verifying        : rpm-4.16.1.3-12.amzn2023.0.5.x86_64                   32/50
  Verifying        : libstdc++-11.3.1-4.amzn2023.0.3.x86_64                33/50
  Verifying        : libstdc++-11.3.1-4.amzn2023.0.2.x86_64                34/50
  Verifying        : libgomp-11.3.1-4.amzn2023.0.3.x86_64                  35/50
  Verifying        : libgomp-11.3.1-4.amzn2023.0.2.x86_64                  36/50
  Verifying        : keyutils-libs-1.6.3-1.amzn2023.x86_64                 37/50
  Verifying        : keyutils-libs-1.6.1-2.amzn2023.0.2.x86_64             38/50
  Verifying        : ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64       39/50
  Verifying        : ncurses-libs-6.2-4.20200222.amzn2023.0.3.x86_64       40/50
  Verifying        : ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     41/50
  Verifying        : ca-certificates-2023.2.60-1.0.amzn2023.0.1.noarch     42/50
  Verifying        : tzdata-2023c-1.amzn2023.0.1.noarch                    43/50
  Verifying        : tzdata-2022g-1.amzn2023.0.1.noarch                    44/50
  Verifying        : amazon-linux-repo-cdn-2023.1.20230628-0.amzn2023.no   45/50
  Verifying        : amazon-linux-repo-cdn-2023.0.20230315-1.amzn2023.no   46/50
  Verifying        : system-release-2023.1.20230628-0.amzn2023.noarch      47/50
  Verifying        : system-release-2023.0.20230315-1.amzn2023.noarch      48/50
  Verifying        : ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch       49/50
  Verifying        : ncurses-base-6.2-4.20200222.amzn2023.0.3.noarch       50/50

Upgraded:
  amazon-linux-repo-cdn-2023.1.20230628-0.amzn2023.noarch
  ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch
  curl-minimal-8.0.1-1.amzn2023.x86_64
  glib2-2.74.7-688.amzn2023.0.1.x86_64
  glibc-2.34-52.amzn2023.0.3.x86_64
  glibc-common-2.34-52.amzn2023.0.3.x86_64
  glibc-minimal-langpack-2.34-52.amzn2023.0.3.x86_64
  gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86_64
  keyutils-libs-1.6.3-1.amzn2023.x86_64
  libcap-2.48-2.amzn2023.0.3.x86_64
  libcurl-minimal-8.0.1-1.amzn2023.x86_64
  libgcc-11.3.1-4.amzn2023.0.3.x86_64
  libgomp-11.3.1-4.amzn2023.0.3.x86_64
  libstdc++-11.3.1-4.amzn2023.0.3.x86_64
  libxml2-2.10.4-1.amzn2023.0.1.x86_64
  ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch
  ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64
  openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64
  python3-rpm-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-build-libs-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-sign-libs-4.16.1.3-12.amzn2023.0.6.x86_64
  system-release-2023.1.20230628-0.amzn2023.noarch
  tzdata-2023c-1.amzn2023.0.1.noarch

  Complete!
bash-5.2#
```

------
#### [ Updates in the latest version ]

 Neste exemplo, aplicaremos as atualizações disponíveis na versão de AL2023 se lançarmos um contêiner da `latest` versão [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). No momento em que este artigo foi escrito, o lançamento `latest` era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), portanto, as atualizações listadas neste exemplo serão as desse lançamento. 

**nota**  
 Este exemplo usa os lançamentos [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) e [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), sendo que este é o lançamento mais recente *no momento em que este artigo foi escrito*. Para obter mais informações sobre as versões mais recentes, consulte as [Notas AL2023 de versão](https://docs.aws.amazon.com/linux/al2023/release-notes/). 

 Neste exemplo, começaremos com uma imagem de contêiner para o lançamento [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). 

 Primeiro, buscamos essa imagem de contêiner no registro de contêineres. O trecho `.1` no final indica a versão da imagem para um lançamento específico. Embora a versão da imagem geralmente seja 0, este exemplo usa um lançamento em que a versão da imagem é 1. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  2023.4.20240319.1: Pulling from amazonlinux/amazonlinux
6de065fda9a2: Pull complete
Digest: sha256:b4838c4cc9211d966b6ea158dacc9eda7433a16ba94436508c2d9f01f7658b4e
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
```

 Agora podemos gerar um shell dentro do contêiner, por meio do qual aplicaremos as atualizações. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  bash-5.2#
```

 O comando `dnf upgrade` agora é usado para aplicar as atualizações disponíveis no lançamento `latest` que, *no momento em que este artigo foi escrito*, era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html). 

**nota**  
 A aplicação de atualizações de pacotes é uma operação privilegiada. Embora normalmente não seja necessário elevar privilégios ao executar em um contêiner, se estiver executando em um ambiente sem contêineres, como uma instância do Amazon EC2, você precisará executar o comando `dnf upgrade` como usuário `root`. Isso pode ser feito utilizando os comandos `sudo` ou `su`. 

 Por padrão, `dnf` solicitará que você confirme se deseja aplicar as atualizações. Neste exemplo, ignoramos esse prompt usando o sinalizador `-y` para `dnf`. 

```
$ dnf -y --releasever=latest update
Amazon Linux 2023 repository                      75 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 18:00:10 2024.
Dependencies resolved.
=================================================================================
 Package                 Arch    Version                      Repository    Size
=================================================================================
Upgrading:
 amazon-linux-repo-cdn   noarch  2023.5.20240708-1.amzn2023   amazonlinux   17 k
 curl-minimal            x86_64  8.5.0-1.amzn2023.0.4         amazonlinux  160 k
 dnf                     noarch  4.14.0-1.amzn2023.0.5        amazonlinux  460 k
 dnf-data                noarch  4.14.0-1.amzn2023.0.5        amazonlinux   34 k
 expat                   x86_64  2.5.0-1.amzn2023.0.4         amazonlinux  117 k
 glibc                   x86_64  2.34-52.amzn2023.0.10        amazonlinux  1.9 M
 glibc-common            x86_64  2.34-52.amzn2023.0.10        amazonlinux  295 k
 glibc-minimal-langpack  x86_64  2.34-52.amzn2023.0.10        amazonlinux   23 k
 krb5-libs               x86_64  1.21-3.amzn2023.0.4          amazonlinux  758 k
 libblkid                x86_64  2.37.4-1.amzn2023.0.4        amazonlinux  105 k
 libcurl-minimal         x86_64  8.5.0-1.amzn2023.0.4         amazonlinux  275 k
 libmount                x86_64  2.37.4-1.amzn2023.0.4        amazonlinux  132 k
 libnghttp2              x86_64  1.59.0-3.amzn2023.0.1        amazonlinux   79 k
 libsmartcols            x86_64  2.37.4-1.amzn2023.0.4        amazonlinux   62 k
 libuuid                 x86_64  2.37.4-1.amzn2023.0.4        amazonlinux   26 k
 openssl-libs            x86_64  1:3.0.8-1.amzn2023.0.12      amazonlinux  2.2 M
 python3                 x86_64  3.9.16-1.amzn2023.0.8        amazonlinux   27 k
 python3-dnf             noarch  4.14.0-1.amzn2023.0.5        amazonlinux  409 k
 python3-libs            x86_64  3.9.16-1.amzn2023.0.8        amazonlinux  7.3 M
 system-release          noarch  2023.5.20240708-1.amzn2023   amazonlinux   28 k
 yum                     noarch  4.14.0-1.amzn2023.0.5        amazonlinux   32 k

 Transaction Summary
=================================================================================
Upgrade  21 Packages

Total download size: 14 M
Downloading Packages:
(1/21): amazon-linux-repo-cdn-2023.5.20240708-1. 345 kB/s |  17 kB     00:00
(2/21): dnf-4.14.0-1.amzn2023.0.5.noarch.rpm     6.8 MB/s | 460 kB     00:00
(3/21): dnf-data-4.14.0-1.amzn2023.0.5.noarch.rp 1.6 MB/s |  34 kB     00:00
(4/21): expat-2.5.0-1.amzn2023.0.4.x86_64.rpm    4.6 MB/s | 117 kB     00:00
(5/21): glibc-2.34-52.amzn2023.0.10.x86_64.rpm    38 MB/s | 1.9 MB     00:00
(6/21): glibc-common-2.34-52.amzn2023.0.10.x86_6 8.8 MB/s | 295 kB     00:00
(7/21): glibc-minimal-langpack-2.34-52.amzn2023. 1.7 MB/s |  23 kB     00:00
(8/21): curl-minimal-8.5.0-1.amzn2023.0.4.x86_64 998 kB/s | 160 kB     00:00
(9/21): libblkid-2.37.4-1.amzn2023.0.4.x86_64.rp 4.1 MB/s | 105 kB     00:00
(10/21): krb5-libs-1.21-3.amzn2023.0.4.x86_64.rp  16 MB/s | 758 kB     00:00
(11/21): libmount-2.37.4-1.amzn2023.0.4.x86_64.r 7.9 MB/s | 132 kB     00:00
(12/21): libnghttp2-1.59.0-3.amzn2023.0.1.x86_64 5.6 MB/s |  79 kB     00:00
(13/21): libsmartcols-2.37.4-1.amzn2023.0.4.x86_ 4.4 MB/s |  62 kB     00:00
(14/21): libcurl-minimal-8.5.0-1.amzn2023.0.4.x8 7.1 MB/s | 275 kB     00:00
(15/21): libuuid-2.37.4-1.amzn2023.0.4.x86_64.rp 1.1 MB/s |  26 kB     00:00
(16/21): python3-3.9.16-1.amzn2023.0.8.x86_64.rp 1.5 MB/s |  27 kB     00:00
(17/21): python3-dnf-4.14.0-1.amzn2023.0.5.noarc  19 MB/s | 409 kB     00:00
(18/21): system-release-2023.5.20240708-1.amzn20 1.9 MB/s |  28 kB     00:00
(19/21): yum-4.14.0-1.amzn2023.0.5.noarch.rpm    1.6 MB/s |  32 kB     00:00
(20/21): openssl-libs-3.0.8-1.amzn2023.0.12.x86_  26 MB/s | 2.2 MB     00:00
(21/21): python3-libs-3.9.16-1.amzn2023.0.8.x86_  59 MB/s | 7.3 MB     00:00
---------------------------------------------------------------------------------
Total                                             34 MB/s |  14 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                         1/1
  Upgrading        : glibc-common-2.34-52.amzn2023.0.10.x86_64              1/42
  Upgrading        : glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64    2/42
  Running scriptlet: glibc-2.34-52.amzn2023.0.10.x86_64                     3/42
  Upgrading        : glibc-2.34-52.amzn2023.0.10.x86_64                     3/42
  Running scriptlet: glibc-2.34-52.amzn2023.0.10.x86_64                     3/42
  Upgrading        : libuuid-2.37.4-1.amzn2023.0.4.x86_64                   4/42
  Upgrading        : openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64            5/42
  Upgrading        : krb5-libs-1.21-3.amzn2023.0.4.x86_64                   6/42
  Upgrading        : libblkid-2.37.4-1.amzn2023.0.4.x86_64                  7/42
  Running scriptlet: libblkid-2.37.4-1.amzn2023.0.4.x86_64                  7/42
  Upgrading        : expat-2.5.0-1.amzn2023.0.4.x86_64                      8/42
  Upgrading        : python3-3.9.16-1.amzn2023.0.8.x86_64                   9/42
  Upgrading        : python3-libs-3.9.16-1.amzn2023.0.8.x86_64             10/42
  Upgrading        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64               11/42
  Upgrading        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64           12/42
  Upgrading        : system-release-2023.5.20240708-1.amzn2023.noarch      13/42
  Upgrading        : amazon-linux-repo-cdn-2023.5.20240708-1.amzn2023.no   14/42
  Upgrading        : dnf-data-4.14.0-1.amzn2023.0.5.noarch                 15/42
  Upgrading        : python3-dnf-4.14.0-1.amzn2023.0.5.noarch              16/42
  Upgrading        : dnf-4.14.0-1.amzn2023.0.5.noarch                      17/42
  Running scriptlet: dnf-4.14.0-1.amzn2023.0.5.noarch                      17/42
  Upgrading        : yum-4.14.0-1.amzn2023.0.5.noarch                      18/42
  Upgrading        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64              19/42
  Upgrading        : libmount-2.37.4-1.amzn2023.0.4.x86_64                 20/42
  Upgrading        : libsmartcols-2.37.4-1.amzn2023.0.4.x86_64             21/42
  Cleanup          : yum-4.14.0-1.amzn2023.0.4.noarch                      22/42
  Running scriptlet: dnf-4.14.0-1.amzn2023.0.4.noarch                      23/42
  Cleanup          : dnf-4.14.0-1.amzn2023.0.4.noarch                      23/42
  Running scriptlet: dnf-4.14.0-1.amzn2023.0.4.noarch                      23/42
  Cleanup          : python3-dnf-4.14.0-1.amzn2023.0.4.noarch              24/42
  Cleanup          : amazon-linux-repo-cdn-2023.4.20240319-1.amzn2023.no   25/42
  Cleanup          : libmount-2.37.4-1.amzn2023.0.3.x86_64                 26/42
  Cleanup          : curl-minimal-8.5.0-1.amzn2023.0.2.x86_64              27/42
  Cleanup          : libcurl-minimal-8.5.0-1.amzn2023.0.2.x86_64           28/42
  Cleanup          : krb5-libs-1.21-3.amzn2023.0.3.x86_64                  29/42
  Cleanup          : libblkid-2.37.4-1.amzn2023.0.3.x86_64                 30/42
  Cleanup          : libnghttp2-1.57.0-1.amzn2023.0.1.x86_64               31/42
  Cleanup          : libsmartcols-2.37.4-1.amzn2023.0.3.x86_64             32/42
  Cleanup          : system-release-2023.4.20240319-1.amzn2023.noarch      33/42
  Cleanup          : dnf-data-4.14.0-1.amzn2023.0.4.noarch                 34/42
  Cleanup          : python3-3.9.16-1.amzn2023.0.6.x86_64                  35/42
  Cleanup          : python3-libs-3.9.16-1.amzn2023.0.6.x86_64             36/42
  Cleanup          : openssl-libs-1:3.0.8-1.amzn2023.0.11.x86_64           37/42
  Cleanup          : libuuid-2.37.4-1.amzn2023.0.3.x86_64                  38/42
  Cleanup          : expat-2.5.0-1.amzn2023.0.3.x86_64                     39/42
  Cleanup          : glibc-2.34-52.amzn2023.0.8.x86_64                     40/42
  Cleanup          : glibc-minimal-langpack-2.34-52.amzn2023.0.8.x86_64    41/42
  Cleanup          : glibc-common-2.34-52.amzn2023.0.8.x86_64              42/42
  Running scriptlet: glibc-common-2.34-52.amzn2023.0.8.x86_64              42/42
  Verifying        : amazon-linux-repo-cdn-2023.5.20240708-1.amzn2023.no    1/42
  Verifying        : amazon-linux-repo-cdn-2023.4.20240319-1.amzn2023.no    2/42
  Verifying        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64               3/42
  Verifying        : curl-minimal-8.5.0-1.amzn2023.0.2.x86_64               4/42
  Verifying        : dnf-4.14.0-1.amzn2023.0.5.noarch                       5/42
  Verifying        : dnf-4.14.0-1.amzn2023.0.4.noarch                       6/42
  Verifying        : dnf-data-4.14.0-1.amzn2023.0.5.noarch                  7/42
  Verifying        : dnf-data-4.14.0-1.amzn2023.0.4.noarch                  8/42
  Verifying        : expat-2.5.0-1.amzn2023.0.4.x86_64                      9/42
  Verifying        : expat-2.5.0-1.amzn2023.0.3.x86_64                     10/42
  Verifying        : glibc-2.34-52.amzn2023.0.10.x86_64                    11/42
  Verifying        : glibc-2.34-52.amzn2023.0.8.x86_64                     12/42
  Verifying        : glibc-common-2.34-52.amzn2023.0.10.x86_64             13/42
  Verifying        : glibc-common-2.34-52.amzn2023.0.8.x86_64              14/42
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64   15/42
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.8.x86_64    16/42
  Verifying        : krb5-libs-1.21-3.amzn2023.0.4.x86_64                  17/42
  Verifying        : krb5-libs-1.21-3.amzn2023.0.3.x86_64                  18/42
  Verifying        : libblkid-2.37.4-1.amzn2023.0.4.x86_64                 19/42
  Verifying        : libblkid-2.37.4-1.amzn2023.0.3.x86_64                 20/42
  Verifying        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64           21/42
  Verifying        : libcurl-minimal-8.5.0-1.amzn2023.0.2.x86_64           22/42
  Verifying        : libmount-2.37.4-1.amzn2023.0.4.x86_64                 23/42
  Verifying        : libmount-2.37.4-1.amzn2023.0.3.x86_64                 24/42
  Verifying        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64               25/42
  Verifying        : libnghttp2-1.57.0-1.amzn2023.0.1.x86_64               26/42
  Verifying        : libsmartcols-2.37.4-1.amzn2023.0.4.x86_64             27/42
  Verifying        : libsmartcols-2.37.4-1.amzn2023.0.3.x86_64             28/42
  Verifying        : libuuid-2.37.4-1.amzn2023.0.4.x86_64                  29/42
  Verifying        : libuuid-2.37.4-1.amzn2023.0.3.x86_64                  30/42
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64           31/42
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.11.x86_64           32/42
  Verifying        : python3-3.9.16-1.amzn2023.0.8.x86_64                  33/42
  Verifying        : python3-3.9.16-1.amzn2023.0.6.x86_64                  34/42
  Verifying        : python3-dnf-4.14.0-1.amzn2023.0.5.noarch              35/42
  Verifying        : python3-dnf-4.14.0-1.amzn2023.0.4.noarch              36/42
  Verifying        : python3-libs-3.9.16-1.amzn2023.0.8.x86_64             37/42
  Verifying        : python3-libs-3.9.16-1.amzn2023.0.6.x86_64             38/42
  Verifying        : system-release-2023.5.20240708-1.amzn2023.noarch      39/42
  Verifying        : system-release-2023.4.20240319-1.amzn2023.noarch      40/42
  Verifying        : yum-4.14.0-1.amzn2023.0.5.noarch                      41/42
  Verifying        : yum-4.14.0-1.amzn2023.0.4.noarch                      42/42

Upgraded:
  amazon-linux-repo-cdn-2023.5.20240708-1.amzn2023.noarch
  curl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  dnf-4.14.0-1.amzn2023.0.5.noarch
  dnf-data-4.14.0-1.amzn2023.0.5.noarch
  expat-2.5.0-1.amzn2023.0.4.x86_64
  glibc-2.34-52.amzn2023.0.10.x86_64
  glibc-common-2.34-52.amzn2023.0.10.x86_64
  glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64
  krb5-libs-1.21-3.amzn2023.0.4.x86_64
  libblkid-2.37.4-1.amzn2023.0.4.x86_64
  libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  libmount-2.37.4-1.amzn2023.0.4.x86_64
  libnghttp2-1.59.0-3.amzn2023.0.1.x86_64
  libsmartcols-2.37.4-1.amzn2023.0.4.x86_64
  libuuid-2.37.4-1.amzn2023.0.4.x86_64
  openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64
  python3-3.9.16-1.amzn2023.0.8.x86_64
  python3-dnf-4.14.0-1.amzn2023.0.5.noarch
  python3-libs-3.9.16-1.amzn2023.0.8.x86_64
  system-release-2023.5.20240708-1.amzn2023.noarch
  yum-4.14.0-1.amzn2023.0.5.noarch

Complete!
bash-5.2#
```

------

Para descobrir AL2023 atualizações, faça um ou mais dos seguintes:
+  Execute o comando `dnf check-update`. Isso verifica se há atualizações não aplicadas na versão do Amazon Linux com a qual você tem vínculo. Isso pode mostrar atualizações se você atualizou apenas o pacote `system-release`, movendo a versão dos repositórios à qual a instância está vinculada, mas sem aplicar nenhuma das atualizações disponíveis nela. 
+ Inscreva-se no tópico SNS de atualização do repositório Amazon Linux (`arn:aws:sns:us-east-1:137112412989:amazon-linux-2023-ami-updates`). Para obter instruções, consulte [Assinatura de um tópico do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.
+ Consulte regularmente as [notas AL2023 de lançamento](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html).
+  Descubra novas versões ao [Verificar versões mais recentes do repositório com `dnf check-release-update`](#dnf-repository-updates). 

**Importante**  
 Novas versões das atualizações de segurança AL2023 que contêm são lançadas com frequência. Fique por dentro dos patches de segurança relevantes. 

## Reinício automático do serviço após atualizações (de segurança)
<a name="automatic-restart-services"></a>

O Amazon Linux agora é distribuído com o pacote [smart-restart](https://github.com/amazonlinux/smart-restart). `Smart-restart` reinicia os serviços de systemd nas atualizações do sistema sempre que um pacote é instalado ou excluído usando o gerenciador de pacotes do sistema. Isso ocorre sempre que `dnf (update|upgrade|downgrade)` é executado.

`Smart-restart` usa o pacote `needs-restarting` de `dnf-utils` e um mecanismo personalizado de lista de negações para determinar quais serviços precisam ser reiniciados e se a reinicialização do sistema é recomendada. Se uma reinicialização do sistema for recomendada, um arquivo marcador de dica de reinicialização será gerado (`/run/smart-restart/reboot-hint-marker`).

**Para instalar o `smart-restart`**  
Execute o comando de DNF a seguir (da mesma forma que você executaria em outros pacotes).

```
$ sudo dnf install smart-restart
```

Após a instalação, as transações subsequentes acionarão a lógica `smart-restart`.

**Lista de negações**  
`Smart-restart` pode ser instruído a impedir que determinados serviços sejam reiniciados. Os serviços bloqueados não contribuirão para a decisão de necessidade de reinicialização. Para bloquear serviços adicionais, adicione um arquivo com o sufixo `-denylist` em `/etc/smart-restart-conf.d/`, conforme mostrado no exemplo a seguir.

```
$ cat /etc/smart-restart-conf.d/custom-denylist
# Some comments
myservice.service
```

**nota**  
Todos os arquivos `*-denylist` são lidos e avaliados ao decidir se uma reinicialização é necessária.

**Hooks personalizados**  
Além da lista de negações, `smart-restart` fornece um mecanismo para executar scripts personalizados antes e depois das tentativas de reiniciar o serviço. Os scripts personalizados podem ser usados para executar manualmente as etapas de preparação ou para informar outros componentes sobre uma reinicialização pendente ou concluída.

Todos os scripts em `/etc/smart-restart-conf.d/` com o sufixo `-pre-restart` ou `-post-restart` são executados. Se a ordem for importante, coloque um número antes de todos os scripts para garantir a ordem de execução, conforme mostrado no exemplo a seguir.

```
$ ls /etc/smart-restart-conf.d/*-pre-restart
001-my-script-pre-restart
002-some-other-script-pre-restart
```

## Quando é necessário reinicializar para aplicar as atualizações de segurança?
<a name="reboot"></a>

Em algumas situações, o Amazon Linux exige uma reinicialização para aplicar as atualizações:
+ As atualizações do pacote de kernel do Linux exigem uma reinicialização para ativar o novo kernel com as atualizações de segurança mais recentes. A aplicação de patches do kernel em tempo real pode permitir que você adie as atualizações de segurança por um período limitado. Para obter detalhes, consulte [Aplicação de patches do kernel em tempo real no AL2023](live-patching.md). 
+ Nas instâncias EC2 Metal, o Amazon Linux fornece atualizações de microcódigo (por meio do `microcode_ctl` pacote para Intel CPUs e do `amd-ucode-firmware` pacote para CPUs AMD). Essas atualizações de microcódigo só serão ativadas nas reinicializações subsequentes da instância. Para instâncias do EC2 virtualizadas, o [AWS Nitro System](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/security-design-of-aws-nitro-system.html) lida com as atualizações de microcódigo para você. 
+ Alguns serviços de systemd em execução só funcionarão corretamente após a reinicialização completa do sistema. O mecanismo `smart-restart` informará você sobre essas situações apresentando dicas de reinicialização. Consulte [Reinício automático do serviço após atualizações (de segurança)](#automatic-restart-services). 

## Lançamento de uma instância com a versão mais recente do repositório ativada
<a name="launch-an-instance-repo-version"></a>

Você pode adicionar comandos DNF a um script de dados do usuário para controlar quais pacotes RPM são instalados em um Amazon Linux AMI quando ele é lançado. No exemplo a seguir, um script de dados de usuário é usado para garantir que qualquer instância iniciada com o script de dados de usuário tenha as mesmas atualizações de pacote instaladas.

```
#!/bin/bash
dnf upgrade --releasever=2023.0.20230210
# Additional setup and install commands below
dnf install httpd php7.4 mysql80
```

Você deve executar esse script como superusuário (raiz). Para fazer isso, execute o comando a seguir.

```
$ sudo sh -c "bash nameofscript.sh"
```

Para saber mais, consulte [Dados de usuário e scripts de shell](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts) no *Guia do usuário do Amazon EC2*.

**nota**  
Em vez de usar um script de dados do usuário, inicie a Amazon Linux AMI mais recente ou uma AMI personalizada baseada na Amazon Linux AMI. O Amazon Linux AMI mais recente tem todas as atualizações necessárias instaladas e está configurado para apontar para uma versão específica do repositório.

## Obtendo informações de suporte do pacote
<a name="dnf-support-info-plugin"></a>

AL2023 incorpora muitos projetos diferentes de software de código aberto. Cada um desses projetos é gerenciado de forma independente do Amazon Linux e tem end-of-support lançamentos e cronogramas diferentes. Para fornecer informações específicas do Amazon Linux sobre esses diferentes pacotes, o plug-in DNF `supportinfo` fornece metadados sobre um pacote. No exemplo a seguir, o comando **dnf supportinfo** retorna metadados para o pacote `glibc`.

```
$ sudo dnf supportinfo --pkg glibc 
Last metadata expiration check: 0:07:56 ago on Wed Mar  1 23:21:49 2023.
Name                 : glibc
Version              : 2.34-52.amzn2023.0.2
State                : installed
Support Status       : supported
Support Periods      : from 2023-03-15      : supported
                     : from 2028-03-15      : unsupported
Support Statement    : Amazon Linux 2023 End Of Life
Link                 : https://aws.amazon.com/amazon-linux-ami/faqs/
Other Info           : This is the support statement for AL2023. The
     ...: end of life of Amazon Linux 2023 would be March 2028.
     ...: From this point, the Amazon Linux 2023 packages (listed
  ...: below) will no longer, receive any updates from AWS.
```

 As informações de suporte do Package também estão disponíveis na seção de [declarações de suporte](https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-support-statement.html) das [Notas de AL2023 Lançamento](https://docs.aws.amazon.com/linux/al2023/release-notes/). 

## Verificar versões mais recentes do repositório com `dnf check-release-update`
<a name="dnf-repository-updates"></a>

 Em uma AL2023 instância, você pode usar o DNF utilitário para gerenciar repositórios e aplicar RPM pacotes atualizados. Esses pacotes estão disponíveis nos repositórios do Amazon Linux. Você pode usar o comando `dnf check-release-update` do DNF para verificar novas versões do repositório DNF. 

**nota**  
 AL2023 Por padrão, as imagens de contêiner não incluem o `dnf check-release-update` comando.   

```
$ dnf check-release-update
No such command: check-release-update. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(check-release-update)'"
```
 Quando `dnf install 'dnf-command(check-release-update)'` for executado, `dnf` instalará o pacote que fornece o comando `check-release-update`, que é o pacote `dnf-plugin-release-notification`. No exemplo abaixo, o argumento `-q` é fornecido a `dnf` para que ele tenha uma saída silenciosa.   

```
$ dnf -y -q install 'dnf-command(check-release-update)'
Installed:
  dnf-plugin-release-notification-1.2-1.amzn2023.0.2.noarch
```

 Em ambientes sem contêineres, como uma instância do Amazon EC2, o comando `check-release-update` é incluído por padrão. 

```
$ sudo dnf check-release-update
WARNING:
  A newer release of "Amazon Linux" is available.

  Available Versions:

  Version 2023.0.20230210:
    Run the following command to update to 2023.0.20230210:

      dnf upgrade --releasever=2023.0.20230210

    Release notes:
     https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
```

Isso retorna uma lista completa de todas as versões mais recentes dos repositórios DNF que estão disponíveis. Se nada for retornado, isso significa que DNF está atualmente configurado para usar a versão mais recente disponível. A versão do pacote `system-release` instalado atualmente define a variável `releasever` DNF. Para verificar a versão atual do repositório, execute o comando a seguir.

```
$ rpm -q system-release --qf "%{VERSION}\n"
```

Quando você executa transações de pacotes DNF (como comandos de instalação, atualização ou remoção), uma mensagem de aviso o notifica sobre qualquer nova versão do repositório. Por exemplo, se você instalar o `httpd` pacote em uma instância que foi executada a partir de uma versão mais antiga do AL2023, a saída a seguir será retornada.

```
$ sudo dnf install httpd -y
Last metadata expiration check: 0:16:52 ago on Wed Mar  1 23:21:49 2023.
Dependencies resolved.
====================================================================
 Package            Arch   Version                Repository   Size
====================================================================
Installing:
 httpd              x86_64 2.4.54-3.amzn2023.0.4  amazonlinux  46 k
Installing dependencies:
 apr                x86_64 1.7.2-2.amzn2023.0.2   amazonlinux 129 k
 apr-util           x86_64 1.6.3-1.amzn2023.0.1   amazonlinux  98 k
 generic-logos-httpd
                    noarch 18.0.0-12.amzn2023.0.3 amazonlinux  19 k
 httpd-core         x86_64 2.4.54-3.amzn2023.0.4  amazonlinux 1.3 M
 httpd-filesystem   noarch 2.4.54-3.amzn2023.0.4  amazonlinux  13 k
 httpd-tools        x86_64 2.4.54-3.amzn2023.0.4  amazonlinux  80 k
 libbrotli          x86_64 1.0.9-4.amzn2023.0.2   amazonlinux 315 k
 mailcap            noarch 2.1.49-3.amzn2023.0.3  amazonlinux  33 k
Installing weak dependencies:
 apr-util-openssl   x86_64 1.6.3-1.amzn2023.0.1   amazonlinux  17 k
 mod_http2          x86_64 1.15.24-1.amzn2023.0.3 amazonlinux 152 k
 mod_lua            x86_64 2.4.54-3.amzn2023.0.4  amazonlinux  60 k

Transaction Summary
====================================================================
Install  12 Packages

Total download size: 2.3 M
Installed size: 6.8 M
Downloading Packages:
(1/12): apr-util-openssl-1.6.3-1.am 212 kB/s |  17 kB     00:00
(2/12): apr-1.7.2-2.amzn2023.0.2.x8 1.1 MB/s | 129 kB     00:00
(3/12): httpd-core-2.4.54-3.amzn202 8.9 MB/s | 1.3 MB     00:00
(4/12): mod_http2-1.15.24-1.amzn202 1.9 MB/s | 152 kB     00:00
(5/12): apr-util-1.6.3-1.amzn2023.0 1.7 MB/s |  98 kB     00:00
(6/12): mod_lua-2.4.54-3.amzn2023.0 1.4 MB/s |  60 kB     00:00
(7/12): httpd-2.4.54-3.amzn2023.0.4 1.5 MB/s |  46 kB     00:00
(8/12): libbrotli-1.0.9-4.amzn2023. 4.4 MB/s | 315 kB     00:00
(9/12): mailcap-2.1.49-3.amzn2023.0 753 kB/s |  33 kB     00:00
(10/12): httpd-tools-2.4.54-3.amzn2 978 kB/s |  80 kB     00:00
(11/12): httpd-filesystem-2.4.54-3. 210 kB/s |  13 kB     00:00
(12/12): generic-logos-httpd-18.0.0 439 kB/s |  19 kB     00:00
--------------------------------------------------------------------
Total                               6.6 MB/s | 2.3 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                            1/1
  Installing       : apr-1.7.2-2.amzn2023.0.2.x86_64           1/12
  Installing       : apr-util-openssl-1.6.3-1.amzn2023.0.1.    2/12
  Installing       : apr-util-1.6.3-1.amzn2023.0.1.x86_64      3/12
  Installing       : mailcap-2.1.49-3.amzn2023.0.3.noarch      4/12
  Installing       : httpd-tools-2.4.54-3.amzn2023.0.4.x86_    5/12
  Installing       : generic-logos-httpd-18.0.0-12.amzn2023    6/12
  Running scriptlet: httpd-filesystem-2.4.54-3.amzn2023.0.4    7/12
  Installing       : httpd-filesystem-2.4.54-3.amzn2023.0.4    7/12
  Installing       : httpd-core-2.4.54-3.amzn2023.0.4.x86_6    8/12
  Installing       : mod_http2-1.15.24-1.amzn2023.0.3.x86_6    9/12
  Installing       : libbrotli-1.0.9-4.amzn2023.0.2.x86_64    10/12
  Installing       : mod_lua-2.4.54-3.amzn2023.0.4.x86_64     11/12
  Installing       : httpd-2.4.54-3.amzn2023.0.4.x86_64       12/12
  Running scriptlet: httpd-2.4.54-3.amzn2023.0.4.x86_64       12/12
  Verifying        : apr-1.7.2-2.amzn2023.0.2.x86_64           1/12
  Verifying        : apr-util-openssl-1.6.3-1.amzn2023.0.1.    2/12
  Verifying        : httpd-core-2.4.54-3.amzn2023.0.4.x86_6    3/12
  Verifying        : mod_http2-1.15.24-1.amzn2023.0.3.x86_6    4/12
  Verifying        : apr-util-1.6.3-1.amzn2023.0.1.x86_64      5/12
  Verifying        : mod_lua-2.4.54-3.amzn2023.0.4.x86_64      6/12
  Verifying        : libbrotli-1.0.9-4.amzn2023.0.2.x86_64     7/12
  Verifying        : httpd-2.4.54-3.amzn2023.0.4.x86_64        8/12
  Verifying        : httpd-tools-2.4.54-3.amzn2023.0.4.x86_    9/12
  Verifying        : mailcap-2.1.49-3.amzn2023.0.3.noarch     10/12
  Verifying        : httpd-filesystem-2.4.54-3.amzn2023.0.4   11/12
  Verifying        : generic-logos-httpd-18.0.0-12.amzn2023   12/12

Installed:
  apr-1.7.2-2.amzn2023.0.2.x86_64
  apr-util-1.6.3-1.amzn2023.0.1.x86_64
  apr-util-openssl-1.6.3-1.amzn2023.0.1.x86_64
  generic-logos-httpd-18.0.0-12.amzn2023.0.3.noarch
  httpd-2.4.54-3.amzn2023.0.4.x86_64
  httpd-core-2.4.54-3.amzn2023.0.4.x86_64
  httpd-filesystem-2.4.54-3.amzn2023.0.4.noarch
  httpd-tools-2.4.54-3.amzn2023.0.4.x86_64
  libbrotli-1.0.9-4.amzn2023.0.2.x86_64
  mailcap-2.1.49-3.amzn2023.0.3.noarch
  mod_http2-1.15.24-1.amzn2023.0.3.x86_64
  mod_lua-2.4.54-3.amzn2023.0.4.x86_64

Complete!
```

## Adicionar, habilitar ou desabilitar novos repositórios
<a name="dnf-repo-addition"></a>

**Atenção**  
 Adicione somente repositórios projetados para serem usados com AL2023.   
 Embora os repositórios projetados para outras distribuições possam funcionar atualmente, não há garantia de que continuarão funcionando com qualquer atualização de pacote AL2023 ou com o repositório não projetado para uso. AL2023 

Para instalar um pacote de um repositório diferente dos repositórios padrão do Amazon Linux, você precisará configurar o sistema de gerenciamento de pacotes `DNF` para saber onde está o repositório.

 Para informar ao `dnf` sobre um repositório de pacotes, adicione as informações do repositório a um arquivo de configuração para esse repositório no diretório `/etc/yum.repos.d/`. Muitos repositórios de terceiros fornecem o conteúdo do arquivo de configuração ou um pacote instalável que inclui o arquivo de configuração. 

**nota**  
 Embora os repositórios possam ser configurados diretamente no arquivo `/etc/dnf/dnf.conf`, isso não é recomendado. É recomendável que cada repositório seja configurado em seu próprio arquivo em `/etc/yum.repos.d/`. 

**Para descobrir quais repositórios estão atualmente habilitados, você pode executar o seguinte comando:**

```
$ dnf repolist all --verbose
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, release-notification, repoclosure, repodiff, repograph, repomanage, reposync, supportinfo
DNF version: 4.12.0
cachedir: /var/cache/dnf
Last metadata expiration check: 0:00:02 ago on Wed Mar  1 23:40:15 2023.
Repo-id            : amazonlinux
Repo-name          : Amazon Linux 2023 repository
Repo-status        : enabled
Repo-revision      : 1677203368
Repo-updated       : Fri Feb 24 01:49:28 2023
Repo-pkgs          : 12632
Repo-available-pkgs: 12632
Repo-size          : 12 G
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/mirrors/2023.0.20230222/x86_64/mirror.list
Repo-baseurl       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/guids/cf9296325a6c46ff40c775a8e2d632c4c3fd9d9164014ce3304715d61b90ca8e/x86_64/
                   : (0 more)
Repo-expire        : 172800 second(s) (last: Wed Mar  1 23:40:15
                   : 2023)
Repo-filename      : /etc/yum.repos.d/amazonlinux.repo

Repo-id            : amazonlinux-debuginfo
Repo-name          : Amazon Linux 2023 repository - Debug
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/mirrors/2023.0.20230222/debuginfo/x86_64/mirror.list
Repo-expire        : 21600 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/amazonlinux.repo

Repo-id            : amazonlinux-source
Repo-name          : Amazon Linux 2023 repository - Source packages
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/mirrors/2023.0.20230222/SRPMS/mirror.list
Repo-expire        : 21600 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/amazonlinux.repo

Repo-id            : kernel-livepatch
Repo-name          : Amazon Linux 2023 Kernel Livepatch repository
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/kernel-livepatch/mirrors/al2023/x86_64/mirror.list
Repo-expire        : 172800 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/kernel-livepatch.repo

Repo-id            : kernel-livepatch-source
Repo-name          : Amazon Linux 2023 Kernel Livepatch repository -
                   : Source packages
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/kernel-livepatch/mirrors/al2023/SRPMS/mirror.list
Repo-expire        : 21600 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/kernel-livepatch.repo
Total packages: 12632
```

**nota**  
Se você não adicionar o sinalizador de opção `--verbose`, a saída incluirá somente as informações de `Repo-id`, `Repo-name` e `Repo-status`.

**Para adicionar um repositório `yum` ao diretório `/etc/yum.repos.d`:**

1. Encontre a localização do arquivo `.repo`. Neste exemplo, o arquivo `.repo` está em `https://www.example.com/repository.repo`.

1. Adicione um repositório com o comando `dnf config-manager`.

```
$ sudo dnf config-manager --add-repo https://www.example.com/repository.repo
Loaded plugins: priorities, update-motd, upgrade-helper
adding repo from: https://www.example.com/repository.repo
grabbing file https://www.example.com/repository.repo to /etc/yum.repos.d/repository.repo
repository.repo                                      | 4.0 kB     00:00
repo saved to /etc/yum.repos.d/repository.repo
```

Após instalar um repositório, é necessário habilitá-lo como descrito no próximo procedimento.

****Para habilitar um `yum` repositório`/etc/yum.repos.d`, use o `dnf config-manager` comando com a `--enable` bandeira e o *repository* nome.

```
$ sudo dnf config-manager --enable repository
```

**nota**  
Para desativar um repositório, use a mesma sintaxe de comando, mas substitua `--enable` por `--disable` no comando.

## Adicionando repositórios com cloud-init
<a name="cloud-init-repo-update"></a>

Além de adicionar um repositório usando o método anterior, você também pode adicionar um novo repositório usando a estrutura de `cloud-init`.

Para adicionar um novo repositório de pacotes, recomendamos o uso do modelo a seguir. Considere salvar esse arquivo localmente.

```
#cloud-config
yum_repos: 
  repository.repo: 
    baseurl: https://www.example.com/
    enabled: true
    gpgcheck: true
    gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EXAMPLE
    name: Example Repository
```

**nota**  
Uma vantagem de usar `cloud-init` é que você pode adicionar uma seção de `packages:` ao seu arquivo de configuração. Nesta seção, você pode incluir os nomes dos pacotes que você deseja instalar. Você pode instalar pacotes do repositório padrão ou do novo repositório que você adicionou ao arquivo `cloud-config`.  
Para obter informações mais específicas sobre a estrutura do arquivo YAML, consulte [Adicionar um repositório YUM](https://cloudinit.readthedocs.io/en/22.2.2/topics/examples.html#adding-a-yum-repository) na *Documentação do `cloud-init`*.

Depois de configurar o arquivo no formato YAML, você pode executá-lo na estrutura do `cloud-init` na AWS CLI. Certifique-se de incluir a opção `--userdata` e o nome do arquivo `.yml` para chamar as operações desejadas.

```
$ aws ec2 run-instances \
  --image-id \
    resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 \
  --instance-type m5.xlarge \
  --region us-east-1 \
  --key-name aws-key-us-east-1 \
  --security-group-ids sg-004a7650 \
  --user-data file://cloud-config.yml
```

# Aplicação de patches do kernel em tempo real no AL2023
<a name="live-patching"></a>

Você pode usar a aplicação de patches do kernel em tempo real para o AL2023 a fim de aplicar patches específicos para vulnerabilidades de segurança e bugs críticos a um kernel do Linux em execução, sem reiniciar ou interromper as aplicações que estão em execução. Além disso, a aplicação de patches do kernel em tempo real pode ajudar a melhorar a disponibilidade da aplicação, ao mesmo tempo em que aplica essas correções até que o sistema possa ser reinicializado.

A AWS disponibiliza dois tipos de patches do kernel em tempo real para o AL2023:
+ **Security updates** (Atualizações de segurança): contêm atualizações para vulnerabilidades e exposições comuns (CVEs) do Linux. Normalmente, essas atualizações são classificadas como *importantes* ou *críticas* de acordo com as classificações do Boletim de segurança do Amazon Linux. Geralmente, elas são mapeadas com uma pontuação 7 ou maior do Common Vulnerability Scoring System (CVSS – Sistema de pontuação de vulnerabilidades comuns). Em alguns casos, a AWS pode fornecer atualizações antes da atribuição de CVE. Nesses casos, os patches podem aparecer como correções de erros.
+ **Correções de erros**: contêm correções de erros críticos e problemas de estabilidade que não estão associados às CVEs.

A AWS oferece patches do kernel em tempo real para uma versão do kernel do AL2023 por até 3 meses depois de seu lançamento. Após esse período, é necessário fazer a atualização para uma versão posterior do kernel para continuar a receber patches ao vivo do kernel.

Os patches ao vivo do kernel para o AL2023 são disponibilizados como pacotes RPM assinados nos repositórios existentes do AL2023. Os patches podem ser instalados em instâncias individuais usando fluxos de trabalho de **gerenciamento de pacotes DNF** existentes. Ou podem ser instalados em um grupo de instâncias gerenciadas usando o AWS Systems Manager.

O Kernel Live Patching no AL2023 é fornecido sem custo adicional.

**Topics**
+ [Limitações](#live-patching-limitations)
+ [Configurações e pré-requisitos compatíveis](#live-patching-prereq)
+ [Trabalhar com o Kernel Live Patching](#working-with-live-patching)

## Limitações
<a name="live-patching-limitations"></a>

Ao aplicar um patch ao vivo no kernel, você não pode executar a hibernação, usar ferramentas avançadas de depuração (como `SystemTap`, `kprobes` e ferramentas baseadas em `eBPF`) ou acessar arquivos de saída `ftrace` usados pela infraestrutura do Kernel Live Patching.

**nota**  
Devido a limitações técnicas, alguns problemas não podem ser resolvidos com a aplicação de patches em tempo real. Por causa disso, essas correções não serão distribuídas no pacote de patch do kernel em tempo real, mas somente na atualização do pacote nativo do kernel. Você pode instalar o pacote nativo do kernel e [atualizar e reinicializar](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) o sistema para ativar os patches normalmente.

## Configurações e pré-requisitos compatíveis
<a name="live-patching-prereq"></a>

O Kernel Live Patching pode ser usado nas instâncias do Amazon EC2 e nas máquinas virtuais locais que executam o AL2023.

Para usar o Kernel Live Patching no AL2023, você deve usar o seguinte:
+ Um `x86_64` de 64 bits ou arquitetura `ARM64`
+ Versão `6.1` ou `6.12` do kernel

### Requisitos de política
<a name="policy-requirements"></a>

Para baixar pacotes dos repositórios do AL2023, o Amazon EC2 precisa acessar os buckets do Amazon S3 pertencentes ao serviço. Se estiver usando um endpoint do Amazon Virtual Private Cloud (VPC) para o Amazon S3 em seu ambiente, garanta que sua política de endpoint da VPC permita acesso a esses buckets públicos. A tabela a seguir descreve o bucket do Amazon S3 que o Amazon EC2 pode precisar acessar para a aplicação de patches do kernel em tempo real.


| ARN do bucket do S3 | Descrição | 
| --- | --- | 
|  arn:aws:s3:::al2023-repos-*region*-de612dc2/\$1  |  Bucket do Amazon S3 contendo repositórios do AL2023  | 

## Trabalhar com o Kernel Live Patching
<a name="working-with-live-patching"></a>

Você pode habilitar e usar o Kernel Live Patching em instâncias individuais usando a linha de comando na própria instância. Como alternativa, você pode habilitar e usar o Kernel Live Patching em um grupo de instâncias gerenciadas usando o AWS Systems Manager.

As seções a seguir explicam como habilitar e usar o Kernel Live Patching em instâncias individuais usando a linha de comando.

Para obter mais informações sobre como habilitar e usar o Kernel Live Patching em um grupo de instâncias gerenciadas, consulte [Use Kernel Live Patching on AL2023 instances](https://docs.aws.amazon.com/systems-manager/latest/userguide/kernel-live-patching.html) no *Guia do usuário do AWS Systems Manager*.

**Topics**
+ [Habilitar o Kernel Live Patching](#live-patching-enable)
+ [Visualizar os patches ao vivo do kernel disponíveis](#live-patching-view-available)
+ [Aplicar patches ao vivo do kernel](#live-patching-apply)
+ [Visualizar os patches ao vivo do kernel aplicados](#live-patching-view)
+ [Desabilitar o Kernel Live Patching](#live-patching-disable)

### Habilitar o Kernel Live Patching
<a name="live-patching-enable"></a>

O Kernel Live Patching está desabilitado por padrão no AL2023. Para usar patches ao vivo, você deve instalar o plug-in **DNF** para patches ao vivo do kernel e ativar a funcionalidade de patching ao vivo.

**Como habilitar o Kernel Live Patching**

1. Os patches ao vivo do kernel estão disponíveis para AL2023 com a versão `6.1` do kernel. Para verificar a versão do kernel, execute o comando a seguir.

   ```
   $ sudo dnf list kernel
   ```

1. Instale o plug-in **DNF** para o Kernel Live Patching.

   ```
   $ sudo dnf install -y kpatch-dnf
   ```

1. Habilite o plug-in **DNF** para o Kernel Live Patching.

   ```
   $ sudo dnf kernel-livepatch -y auto
   ```

   Este comando também instala a versão mais recente de RPM do patch ao vivo do kernel a partir dos repositórios configurados.

1. Para confirmar se o plug-in **DNF** para a aplicação de patches ao vivo no kernel foi instalado com êxito, execute o comando a seguir.

   Quando você habilita o Kernel Live Patching, um RPM de patch ao vivo do kernel vazio é aplicado automaticamente. Se a aplicação de patches do kernel em tempo real tiver sido habilitada com êxito, este comando retornará uma lista que inclui o RPM de patch do kernel em tempo real vazio inicial (e outro RPM que configura o repositório DNF contendo os patches em tempo real).

   ```
   $ sudo rpm -qa | grep kernel-livepatch
   kernel-livepatch-repo-s3-2023.7.20250428-0.amzn2023.noarch
   kernel-livepatch-6.1.134-150.224-1.0-0.amzn2023.x86_64
   ```

1. Instale o pacote **kpatch**.

   ```
   $ sudo dnf install -y kpatch-runtime
   ```

1. Atualize o serviço **kpatch**, caso tenha sido instalado anteriormente. 

   ```
   $ sudo dnf upgrade kpatch-runtime
   ```

1. Inicie o serviço **kpatch**. Este serviço carrega todos os patches ao vivo do kernel durante ou após a inicialização. 

   ```
   $ sudo systemctl enable kpatch.service && sudo systemctl start kpatch.service
   ```

### Visualizar os patches ao vivo do kernel disponíveis
<a name="live-patching-view-available"></a>

Os alertas de segurança do Amazon Linux são publicados no Centro de segurança do Amazon Linux. Para obter mais informações sobre os alertas de segurança do AL2023, que incluem alertas para patches ao vivo do kernel, consulte o [Centro de segurança do Amazon Linux](https://alas.aws.amazon.com/alas2023.html). Os patches ao vivo do kernel são prefixados com `ALASLIVEPATCH`. O Centro de segurança do Amazon Linux pode não listar patches ao vivo do kernel que resolvam erros.

Também é possível descobrir os patches ao vivo do kernel disponíveis para recomendações e CVEs usando a linha de comando.

**Como listar todos os patches ao vivo do kernel disponíveis para recomendações**  
Use o seguinte comando.

```
$ sudo dnf updateinfo list
Last metadata expiration check: 1:06:23 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
ALAS2LIVEPATCH-2021-123   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
ALAS2LIVEPATCH-2022-124   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

**Como listar todos os patches ao vivo do kernel disponíveis para CVEs**  
Use o seguinte comando.

```
$ sudo dnf updateinfo list cves
Last metadata expiration check: 1:07:26 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
CVE-2022-0123    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
CVE-2022-3210    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

### Aplicar patches ao vivo do kernel
<a name="live-patching-apply"></a>

Aplique patches ao vivo do kernel usando o gerenciador de pacotes **DNF** da mesma maneira que você aplicaria atualizações regulares. O plug-in **DNF** para a aplicação de patches do kernel em tempo real gerencia os patches do kernel em tempo real que estão disponíveis para aplicação.

**dica**  
Recomendamos que você atualize seu kernel regularmente usando a aplicação de patches do kernel em tempo real para garantir que ele receba correções de segurança específicas importantes e críticas até que o sistema possa ser reinicializado. Verifique também se foram disponibilizadas correções adicionais para o pacote do kernel nativo que não podem ser implementadas como patches em tempo real e, nesses casos, [atualize e reinicie](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) o kernel.

É possível optar por aplicar um patch ao vivo do kernel específico, ou aplicar qualquer patch ao vivo do kernel disponível com suas atualizações de segurança regulares.

**Como aplicar um patch ao vivo do kernel específico**

1. Obtenha a versão do patch ao vivo do kernel usando um dos comandos descritos em [Visualizar os patches ao vivo do kernel disponíveis](#live-patching-view-available).

1. Aplique o patch ao vivo do kernel no kernel do AL2023.

   ```
   $ sudo dnf install kernel-livepatch-kernel_version-package_version.amzn2023.x86_64
   ```

   Por exemplo, o comando a seguir aplica um patch ao vivo do kernel para a versão `6.1.12-17.42` AL2023 do kernel .

   ```
   $ sudo dnf install kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
   ```

**Como aplicar patches ao vivo do kernel disponíveis com as atualizações de segurança regulares**  
Use o seguinte comando.

```
$ sudo dnf upgrade --security
```

Omita a opção `--security` para incluir correções de erros.

**Importante**  
A versão do kernel não é atualizada após a aplicação de patches ao vivo do kernel. A versão só é atualizada para a nova versão depois da reinicialização da instância.
Um kernel AL2023 recebe patches de kernel ao vivo por 3 meses. Após esse período, nenhum novo patch ativo do kernel será lançado para essa versão do kernel.
Para continuar a receber patches ao vivo do kernel após 3 meses, você deve reinicializar a instância para migrar para a nova versão do kernel. A instância continua recebendo patches ativos do kernel pelos próximos 3 meses após a atualização.
Para verificar a janela de suporte para a versão do kernel, execute o seguinte comando.  

  ```
  $ sudo dnf kernel-livepatch support
  The current version of the Linux kernel you are running will no longer receive live patches after 2025-07-22.
  ```

### Visualizar os patches ao vivo do kernel aplicados
<a name="live-patching-view"></a>

**Como visualizar os patches ao vivo do kernel aplicados**  
Use o seguinte comando.

```
$ sudo kpatch list
Loaded patch modules:
livepatch_CVE_2022_36946 [enabled]

Installed patch modules:
livepatch_CVE_2022_36946 (6.1.57-29.131.amzn2023.x86_64)
livepatch_CVE_2022_36946 (6.1.57-30.131.amzn2023.x86_64)
```

O comando retornará uma lista dos patches ao vivo do kernel de atualização de segurança carregados e instalados. A seguir está um exemplo de saída.

**nota**  
Um único patch ao vivo do kernel pode incluir e instalar vários patches ao vivo.

### Desabilitar o Kernel Live Patching
<a name="live-patching-disable"></a>

Se não precisar mais usar o Kernel Live Patching, é possível desabilitá-lo a qualquer momento.
+ Desabilite o uso de livepatches:

  1. Desabilite o plug-in: 

     ```
     $ sudo dnf kernel-livepatch manual
     ```

  1. Desabilite o serviço kpatch: 

     ```
     $ sudo systemctl disable --now kpatch.service
     ```
+ Remova totalmente as ferramentas livepatch:

  1. Remover o plug-in de:

     ```
     $ sudo dnf remove kpatch-dnf
     ```

  1. Remover kpatch-runtime:

     ```
     $ sudo dnf remove kpatch-runtime
     ```

  1. Remova qualquer livepatches instalado:

     ```
     $ sudo dnf remove kernel-livepatch\*
     ```

# Atualizando o kernel Linux em AL2023
<a name="kernel-update"></a>

**Topics**
+ [Versões do kernel Linux em AL2023](#al2023-kernels)
+ [Atualizando AL2023 para uma versão mais recente do kernel](#kernelup)
+ [AL2023 kernels - Perguntas frequentes](#al2023-kernel-faq)

## Versões do kernel Linux em AL2023
<a name="al2023-kernels"></a>

AL2023 inclui regularmente novas versões do kernel com base nas versões Long-Term Support (LTS) do kernel Linux.

AL2023 foi lançado originalmente em março de 2023 com o kernel 6.1.

Em abril de 2025, AL2023 adicionou suporte para o kernel Linux 6.12. Esse kernel adicionou novos recursos, incluindo agendamento EEVDF, I/O suporte à passagem do FUSE, uma nova API Futex e melhorias no eBPF. O kernel 6.12 também permite que um programa de espaço de usuário se proteja no runtime usando pilhas de sombras do espaço de usuário e vedação de memória.

Em março de 2026, AL2023 adicionou suporte para o kernel Linux 6.18. O kernel 6.18 atualizado traz melhorias adicionais no suporte, virtualização, segurança e desempenho do processador. Os recursos notáveis incluem recursos aprimorados de IOMMU em todas as arquiteturas e controles vetoriais de ataque para gerenciar as mitigações de vulnerabilidades da CPU. Os aprimoramentos de desempenho vêm por meio de otimizações de criptografia com operações mais rápidas do FSCRYPT, melhorias no gerenciamento de memória e a introdução do Sheaves como uma nova camada de cache opcional baseada em array por CPU. 

## Atualizando AL2023 para uma versão mais recente do kernel
<a name="kernelup"></a>

A partir de junho de 2026, AL2023 atualizará o kernel padrão anualmente. O [`al2023-ami-kernel-default`](ec2.md#launch-via-aws-cli)conjunto de AMIs será atualizado para o kernel LTS mais recente, para que as instâncias recém-lançadas apareçam automaticamente com a nova versão do kernel. Essa é a maneira mais simples de se manter atualizado com as últimas correções de segurança e melhorias de desempenho.

Se preferir escolher uma versão específica do kernel, você pode executar o AL2023 com o kernel 6.12 ou 6.18 selecionando uma AMI com o kernel desejado pré-instalado ou atualizando uma instância EC2 existente do AL2023.

### Executando uma AL2023 AMI com uma versão específica do kernel
<a name="kernelup-ami"></a>

Você pode optar por executar uma AL2023 AMI com um kernel específico pré-instalado por meio do AWS Console ou consultando o SSM para obter parâmetros específicos. As chaves do SSM para consulta começam com `/aws/service/ami-amazon-linux-latest/` seguido por um dos seguintes:

#### Para o kernel 6.12
<a name="kernel6.12-ami"></a>
+ `al2023-ami-kernel-6.12-arm64` para a arquitetura arm64
+ `al2023-ami-minimal-kernel-6.12-arm64` para arquitetura arm64 (AMI mínima)
+ `al2023-ami-kernel-6.12-x86_64` para a arquitetura x86\$164
+ `al2023-ami-minimal-kernel-6.12-x86_64` para a arquitetura x86\$164 (AMI mínima)

#### Para o kernel 6.18
<a name="kernel6.18-ami"></a>
+ `al2023-ami-kernel-6.18-arm64` para a arquitetura arm64
+ `al2023-ami-minimal-kernel-6.18-arm64` para arquitetura arm64 (AMI mínima)
+ `al2023-ami-kernel-6.18-x86_64` para a arquitetura x86\$164
+ `al2023-ami-minimal-kernel-6.18-x86_64` para a arquitetura x86\$164 (AMI mínima)

Consulte [Lançamento AL2023 usando o parâmetro SSM e AWS CLI](ec2.md#launch-via-aws-cli) para obter detalhes sobre a seleção AL2023 AMIs.

### Atualização de uma AL2023 instância para um kernel mais novo
<a name="kernel-ipu"></a>

Você pode atualizar localmente uma AL2023 instância em execução para o kernel 6.12 ou 6.18 com as seguintes etapas:

1. Detecte o kernel atual e defina a versão de destino:

   ```
   # Automatically detect current kernel version BEFORE upgrade
   $ CURRENT_KERNEL=$(uname -r)
   $ SOURCE_VERSION=""
   
   $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then
       SOURCE_VERSION="6.12"
   else
       SOURCE_VERSION=""
   fi
   
   # Save the source version to a persistent location for use after reboot
   $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
   ```

   ```
   # Set your target version (change this to your desired kernel: 6.12 or 6.18)
   $ TARGET_VERSION="6.12"
   ```

   ```
   $ echo "Current kernel: ${SOURCE_VERSION:-6.1}"
   $ echo "Upgrading to kernel ${TARGET_VERSION}"
   ```

1. Instale o pacote do kernel de destino:

   ```
   $ sudo dnf install -y kernel${TARGET_VERSION}
   ```

1. Obtenha a versão mais recente do pacote do kernel de destino:

   ```
   $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1) 
   ```

1. Torne o novo kernel seu kernel padrão:

   ```
   $ sudo grubby --set-default "/boot/vmlinuz-$version" 
   ```

1. Reinicialize o sistema:

   ```
   $ sudo reboot 
   ```

1. Desinstale o kernel anterior:

   ```
   # Read the source kernel version from the saved file
   $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version)
   
   # Uninstall the source kernel
   $ sudo dnf remove -y kernel${SOURCE_VERSION}
   ```

1. Substitua pacotes extras de kernel por seus equivalentes de kernel de destino:

   ```
   # Set your target version (change this to your desired kernel: 6.12 or 6.18)
   $ TARGET_VERSION="6.12"
   ```

   ```
   $ declare -A pkgs
   $ pkgs=(
   [bpftool${SOURCE_VERSION}]=bpftool${TARGET_VERSION}
   [kernel${SOURCE_VERSION}-debuginfo]=kernel${TARGET_VERSION}-debuginfo
   [kernel${SOURCE_VERSION}-debuginfo-common]=kernel${TARGET_VERSION}-debuginfo-common
   [kernel${SOURCE_VERSION}-headers]=kernel${TARGET_VERSION}-headers
   [kernel${SOURCE_VERSION}-libbpf]=kernel${TARGET_VERSION}-libbpf
   [kernel${SOURCE_VERSION}-libbpf-devel]=kernel${TARGET_VERSION}-libbpf-devel
   [kernel${SOURCE_VERSION}-libbpf-static]=kernel${TARGET_VERSION}-libbpf-static
   [kernel${SOURCE_VERSION}-modules-extra-common]=kernel${TARGET_VERSION}-modules-extra-common
   [kernel${SOURCE_VERSION}-tools]=kernel${TARGET_VERSION}-tools
   [kernel${SOURCE_VERSION}-tools-devel]=kernel${TARGET_VERSION}-tools-devel
   [perf${SOURCE_VERSION}]=perf${TARGET_VERSION}
   [python3-perf${SOURCE_VERSION}]=python3-perf${TARGET_VERSION}
   )
   $ for pkg in "${!pkgs[@]}"; do 
     rpm -q $pkg && sudo dnf -y swap $pkg "${pkgs["$pkg"]}" ;
   done
   ```

1. (Opcional) Desinstale o kernel-devel da versão anterior do kernel:

   ```
   $ rpm -q kernel${SOURCE_VERSION}-devel && sudo dnf remove -y kernel${SOURCE_VERSION}-devel 
   ```

### Fazendo o downgrade para uma versão anterior do kernel
<a name="kernel-downgrade"></a>

Se, em algum momento, você precisar fazer o downgrade para uma versão anterior do kernel, use as seguintes etapas:

1. Detecte o kernel atual e defina a versão de destino:

   ```
   # Automatically detect current kernel version BEFORE downgrade
   $ CURRENT_KERNEL=$(uname -r)
   $ SOURCE_VERSION=""
   
   $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then
       SOURCE_VERSION="6.12"
   elif [[ $CURRENT_KERNEL == *"6.18"* ]]; then
       SOURCE_VERSION="6.18"
   fi
   
   # Save the source version to a persistent location for use after reboot
   $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
   ```

   ```
   # Set your target version (change this to your desired kernel)
   # Use "" for kernel 6.1, "6.12" for kernel 6.12
   $ TARGET_VERSION=""
   ```

   ```
   $ echo "Downgrading from kernel ${SOURCE_VERSION:-6.1} to kernel ${TARGET_VERSION:-6.1}"
   ```

1. Substitua pacotes extras de kernel por seus equivalentes de kernel de destino:

   ```
   $ declare -A pkgs
   $ pkgs=(
   [bpftool${TARGET_VERSION}]=bpftool${SOURCE_VERSION}
   [kernel${TARGET_VERSION}-debuginfo]=kernel${SOURCE_VERSION}-debuginfo
   [kernel${TARGET_VERSION}-debuginfo-common]=kernel${SOURCE_VERSION}-debuginfo-common
   [kernel${TARGET_VERSION}-headers]=kernel${SOURCE_VERSION}-headers
   [kernel${TARGET_VERSION}-libbpf]=kernel${SOURCE_VERSION}-libbpf
   [kernel${TARGET_VERSION}-libbpf-devel]=kernel${SOURCE_VERSION}-libbpf-devel
   [kernel${TARGET_VERSION}-libbpf-static]=kernel${SOURCE_VERSION}-libbpf-static
   [kernel${TARGET_VERSION}-modules-extra-common]=kernel${SOURCE_VERSION}-modules-extra-common
   [kernel${TARGET_VERSION}-tools]=kernel${SOURCE_VERSION}-tools
   [kernel${TARGET_VERSION}-tools-devel]=kernel${SOURCE_VERSION}-tools-devel
   [perf${TARGET_VERSION}]=perf${SOURCE_VERSION}
   [python3-perf${TARGET_VERSION}]=python3-perf${SOURCE_VERSION}
   )
   $ for pkg in "${!pkgs[@]}"; do 
     rpm -q "${pkgs["$pkg"]}" && sudo dnf -y swap "${pkgs["$pkg"]}" $pkg ;
   done
   ```

1. Instale o pacote do kernel de destino:

   ```
   $ sudo dnf install -y kernel${TARGET_VERSION}
   ```

1. Obtenha a versão mais recente do pacote do kernel de destino:

   ```
   $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1) 
   ```

1. Torne o kernel de destino seu kernel padrão:

   ```
   $ sudo grubby --set-default "/boot/vmlinuz-$version" 
   ```

1. Reinicialize o sistema:

   ```
   $ sudo reboot 
   ```

1. Desinstale o kernel de origem:

   ```
   # Read the source kernel version from the saved file
   $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version)
   
   # Uninstall the source kernel
   $ sudo dnf remove -y kernel${SOURCE_VERSION}
   ```

## AL2023 kernels - Perguntas frequentes
<a name="al2023-kernel-faq"></a>

### 1. Preciso reinicializar após uma atualização do kernel?
<a name="w2aac37c19b9b3"></a>

Toda alteração no kernel em execução requer uma reinicialização.

### 2. Como faço para manter os kernels up-to-date em várias instâncias?
<a name="w2aac37c19b9b5"></a>

O Amazon Linux não fornece recursos para gerenciar frotas de instâncias. Recomendamos que você aplique patches em grandes frotas usando ferramentas como o [AWS Systems Manager](https://aws.amazon.com/systems-manager/).

### 3. Como faço para verificar qual versão do kernel está em execução no momento?
<a name="w2aac37c19b9b7"></a>

Execute esse comando na sua AL2023 instância:

```
$ uname -r 
```

### 4. Qual kernel me AL2023 recomenda usar?
<a name="w2aac37c19b9b9"></a>

É recomendável atualizar para o AL2023 kernel 6.18 mais recente enquanto todos os outros AL2023 kernels ainda são suportados. Recomenda-se que os clientes testem suas cargas de trabalho antes da atualização.

### 5. Meus aplicativos existentes funcionarão com qualquer AL2023 kernel?
<a name="w2aac37c19b9c11"></a>

AL2023 suporta um kernel mais novo (6.12 ou 6.18) da mesma forma que o kernel 6.1. Os aplicativos funcionarão e as melhorias estão acontecendo nos bastidores. Em qualquer caso, os clientes devem testar suas cargas de trabalho específicas antes de migrar para um kernel mais novo.

### 6. Como faço para instalar cabeçalhos do kernel, pacotes de desenvolvimento e módulos extras para o kernel 6.12 ou 6.18?
<a name="w2aac37c19b9c13"></a>

Execute o seguinte:

```
$ version=$(uname -r | grep -oP '^\d+\.\d+')
$ sudo dnf install -y kernel${version}-modules-extra-$(uname -r) kernel${version}-headers-$(uname -r) kernel${version}-devel-$(uname -r)
```

### 7. Por quanto tempo os kernels 6.12 e 6.18 serão suportados?
<a name="w2aac37c19b9c15"></a>

Os kernel 6.12 e 6.18 terão suporte até o final planejado da vida útil do Amazon Linux 2023, que é 30/06/2029.