

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á.

# Gerencie o software na sua AL2 instância
<a name="managing-software"></a>

A distribuição básica do Amazon Linux contém os pacotes e utilitários de software que são necessários para operações básicas de servidor.

Essas informações se aplicam AL2 a. Para obter informações sobre isso AL2023, consulte [Gerenciar pacotes e atualizações do sistema operacional AL2023 no](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) *Guia do usuário do Amazon Linux 2023*.

É importante manter o software atualizado. Muitos pacotes em uma distribuição do Linux são atualizados frequentemente para corrigir erros, adicionar recursos e proteger contra exploits de segurança. Para obter mais informações, consulte [Atualize o software da instância na sua AL2 instância](install-updates.md).

Por padrão, AL2 as instâncias são iniciadas com os seguintes repositórios habilitados:
+ `amzn2-core`
+ `amzn2extra-docker`

Embora existam muitos pacotes disponíveis nesses repositórios que são atualizados pelo AWS, talvez haja um pacote que você queira instalar que esteja contido em outro repositório. Para obter mais informações, consulte [Adicionar repositórios em uma instância AL2](add-repositories.md). Para obter ajuda para encontrar e instalar pacotes nos repositórios habilitados, consulte [Encontre e instale pacotes de software em uma AL2 instância](find-install-software.md).

Nem todo software está disponível em pacotes de software armazenados em repositórios; alguns devem ser compilados em uma instância a partir do código-fonte. Para obter mais informações, consulte [Prepare-se para compilar o software em uma instância AL2](compile-software.md).

AL2 as instâncias gerenciam seu software usando o gerenciador de pacotes yum. O gerenciador de pacotes yum pode instalar, remover e atualizar software, bem como gerenciar todas as dependências para cada pacote.

**Topics**
+ [Atualize o software da instância na sua AL2 instância](install-updates.md)
+ [Adicionar repositórios em uma instância AL2](add-repositories.md)
+ [Encontre e instale pacotes de software em uma AL2 instância](find-install-software.md)
+ [Prepare-se para compilar o software em uma instância AL2](compile-software.md)

# Atualize o software da instância na sua AL2 instância
<a name="install-updates"></a>

É importante manter o software atualizado. Os pacotes em uma distribuição do Linux são atualizados frequentemente para corrigir erros, adicionar recursos e proteger contra exploits de segurança. Quando você executar e se conectar a uma instância do Amazon Linux pela primeira vez, talvez veja uma mensagem solicitando que atualize os pacotes de software para fins de segurança. Esta seção mostra como atualizar todo um sistema ou apenas um único pacote.

Essas informações se aplicam AL2 a. Para obter informações sobre isso AL2023, consulte [Gerenciar pacotes e atualizações do sistema operacional AL2023 no](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) *Guia do usuário do Amazon Linux 2023*.

Para obter informações sobre alterações e atualizações AL2, consulte as [notas AL2 de versão](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).

Para obter informações sobre alterações e atualizações AL2023, consulte as [notas AL2023 de versão](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html).

**Importante**  
Se você lançou uma instância do EC2 que usa uma AMI Amazon Linux 2 em uma IPv6 sub-rede somente, você deve se conectar à instância e executá-la. `sudo amazon-linux-https disable` Isso permite que sua AL2 instância se conecte ao yum repositório no S3 IPv6 usando o serviço de patch http.

**Para atualizar todos os pacotes em uma AL2 instância**

1. (Opcional) Inicie uma sessão de **screen** em sua janela de shell. Às vezes, pode haver uma interrupção de rede que pode desconectar a conexão de SSH com sua instância. Se isso acontecer durante uma atualização longa de software, poderá deixar a instância em um estado recuperável, embora confuso. Uma sessão de **screen** permite que você continue executando a atualização mesmo se sua conexão for interrompida, e será possível se reconectar à sessão posteriormente sem problemas.

   1. Execute o comando **screen** para iniciar a sessão.

      ```
      [ec2-user ~]$ screen
      ```

   1. Se a sessão for desconectada, se conecte novamente com sua instância e liste as telas disponíveis.

      ```
      [ec2-user ~]$ screen -ls
      There is a screen on:
      	17793.pts-0.ip-12-34-56-78	(Detached)
      1 Socket in /var/run/screen/S-ec2-user.
      ```

   1. Reconecte a tela usando o comando **screen -r** e o ID de processo do comando anterior.

      ```
      [ec2-user ~]$ screen -r 17793
      ```

   1. Quando terminar de usar **screen**, use o comando **exit** para fechar a sessão.

      ```
      [ec2-user ~]$ exit
      [screen is terminating]
      ```

1. Execute o comando **yum update**. Opcionalmente, é possível adicionar o sinalizador `--security` para aplicar apenas atualizações de segurança.

   ```
   [ec2-user ~]$ sudo yum update
   ```

1. Revise os pacotes relacionados, digite **y** e pressione Enter para aceitar as atualizações. A atualização de todos os pacotes em um sistema pode levar vários minutos. A saída **yum** mostra o status da atualização durante sua execução.

1. (Opcional) [Reinicie sua instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html) para garantir que você esteja usando os pacotes e bibliotecas mais recentes da sua atualização; as atualizações do kernel não são carregadas até que uma reinicialização ocorra. Também é necessário reinicializar após atualizações de bibliotecas `glibc`. Para atualizações de pacotes que controlam serviços, pode ser suficiente reiniciar os serviços para obter as atualizações, mas a reinicialização do sistema garante que todas as atualizações de pacotes e bibliotecas anteriores sejam concluídas.

**Para atualizar um único pacote em uma AL2 instância**

Use este procedimento para atualizar um único pacote (e suas dependências) e não o sistema inteiro.

1. Execute o comando **yum update** com o nome de pacote a ser atualizado.

   ```
   [ec2-user ~]$ sudo yum update openssl
   ```

1. Revise as informações de pacotes listadas, digite **y** e pressione Enter para aceitar a atualização ou atualizações. Às vezes, haverá mais de um pacote listado se houver dependências de pacotes que devem ser resolvidas. A saída **yum** mostra o status da atualização durante sua execução.

1. (Opcional) [Reinicie sua instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html) para garantir que você esteja usando os pacotes e bibliotecas mais recentes da sua atualização; as atualizações do kernel não são carregadas até que uma reinicialização ocorra. Também é necessário reinicializar após atualizações de bibliotecas `glibc`. Para atualizações de pacotes que controlam serviços, pode ser suficiente reiniciar os serviços para obter as atualizações, mas a reinicialização do sistema garante que todas as atualizações de pacotes e bibliotecas anteriores sejam concluídas.

# Adicionar repositórios em uma instância AL2
<a name="add-repositories"></a>

Essas informações se aplicam AL2 a. Para obter informações sobre isso AL2023, consulte [Atualizações determinísticas por meio de repositórios versionados no Guia AL2023 do usuário](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html) do *Amazon* Linux 2023.

Por padrão, AL2 as instâncias são iniciadas com os seguintes repositórios habilitados:
+ `amzn2-core`
+ `amzn2extra-docker`

Embora haja muitos pacotes disponíveis nesses repositórios que são atualizados pela Amazon Web Services, pode haver um pacote que você deseje instalar e que esteja contido em outro repositório.

Para instalar um pacote de um repositório diferente com **yum**, você precisa adicionar as informações do repositório ao arquivo `/etc/yum.conf` ou ao seu próprio arquivo `repository.repo` no diretório `/etc/yum.repos.d`. É possível fazer isso manualmente, mas a maioria dos repositórios yum fornece seu próprio arquivo `repository.repo` no URL do repositório.

**Para determinar quais repositórios yum já estão instalados**  
Liste os repositórios yum instalados com o seguinte comando:

```
[ec2-user ~]$ yum repolist all
```

A saída resultante lista os repositórios instalados e relata o status de cada um. Os repositórios habilitados exibem o número de pacotes que eles contêm.

**Para adicionar um repositório yum a /etc/yum.repos.d**

1. Encontre a localização do arquivo `.repo`. Isso varia dependendo do repositório que você está adicionando. Neste exemplo, o arquivo `.repo` está em `https://www.example.com/repository.repo`.

1. Adicione um repositório com o comando **yum-config-manager**.

   ```
   [ec2-user ~]$ sudo yum-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 repositório yum em /etc/yum.repos.d**  
Use o comando **yum-config-manager** com o sinalizador `--enable repository`. O comando a seguir habilita o repositório Extra Packages for Enterprise Linux (EPEL) do projeto Fedora. Por padrão, esse repositório está presente em `/etc/yum.repos.d` em instâncias do Amazon Linux AMI, mas não está habilitado.

```
[ec2-user ~]$ sudo yum-config-manager --enable epel
```

Para obter mais informações e baixar a versão mais recente desse pacote, consulte [https://fedoraproject. org/wiki/EPEL](https://fedoraproject.org/wiki/EPEL).

# Encontre e instale pacotes de software em uma AL2 instância
<a name="find-install-software"></a>

É possível usar uma ferramenta de gerenciamento de pacotes para encontrar e instalar pacotes de software. No Amazon Linux 2, a ferramenta padrão de gerenciamento de pacotes de software éYUM. Em AL2023, a ferramenta padrão de gerenciamento de pacotes de software éDNF. Para obter mais informações, consulte a [ferramenta de gerenciamento de pacotes](https://docs.aws.amazon.com/linux/al2023/ug/package-management.html) no *Guia do usuário do Amazon Linux 2023*.

## Encontre pacotes de software em uma AL2 instância
<a name="find-software"></a>

É possível usar o comando **yum search** para pesquisar as descrições de pacotes que estão disponíveis nos repositórios configurados. Isso é especialmente útil se você não souber o nome exato do pacote que deseja instalar. Basta acrescentar uma pesquisa de palavra-chave ao comando. Para pesquisar várias palavras, coloque a consulta da pesquisa entre aspas.

```
[ec2-user ~]$ yum search "find"
```

O seguinte é um exemplo de saída.

```
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
============================== N/S matched: find ===============================
findutils.x86_64 : The GNU versions of find utilities (find and xargs)
gedit-plugin-findinfiles.x86_64 : gedit findinfiles plugin
ocaml-findlib-devel.x86_64 : Development files for ocaml-findlib
perl-File-Find-Rule.noarch : Perl module implementing an alternative interface to File::Find
robotfindskitten.x86_64 : A game/zen simulation. You are robot. Your job is to find kitten.
mlocate.x86_64 : An utility for finding files by name
ocaml-findlib.x86_64 : Objective CAML package manager and build helper
perl-Devel-Cycle.noarch : Find memory cycles in objects
perl-Devel-EnforceEncapsulation.noarch : Find access violations to blessed objects
perl-File-Find-Rule-Perl.noarch : Common rules for searching for Perl things
perl-File-HomeDir.noarch : Find your home and other directories on any platform
perl-IPC-Cmd.noarch : Finding and running system commands made easy
perl-Perl-MinimumVersion.noarch : Find a minimum required version of perl for Perl code
texlive-xesearch.noarch : A string finder for XeTeX
valgrind.x86_64 : Tool for finding memory management bugs in programs
valgrind.i686 : Tool for finding memory management bugs in programs
```

Consultas de pesquisa de várias palavras entre aspas apenas retornam resultados que correspondem à consulta exata. Se você não vir o pacote esperado, simplifique a pesquisa usando uma palavra-chave e verifique os resultados. Também é possível tentar usar sinônimos da palavras-chave para ampliar a pesquisa.

Para obter mais informações sobre pacotes para AL2, consulte o seguinte:
+ [AL2 Biblioteca de extras](al2-extras.md)
+ [Repositório de pacotes](ec2.md#package-repository)

## Instalar pacotes de software em uma AL2 instância
<a name="install-software"></a>

Em AL2, a ferramenta de gerenciamento de pacotes yum pesquisa pacotes de software diferentes em todos os seus repositórios habilitados e lida com quaisquer dependências no processo de instalação do software. Para obter informações sobre a instalação de pacotes de software em AL2023, consulte [Gerenciamento de pacotes e atualizações do sistema operacional](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) no *Guia do usuário do Amazon Linux 2023*.

**Para instalar um pacote a partir de um repositório**  
Use o **yum install *package*** comando, *package* substituindo pelo nome do software a ser instalado. Por exemplo, para instalar o navegador da web baseado em texto **links**, insira o seguinte comando.

```
[ec2-user ~]$ sudo yum install links
```

**Para instalar arquivos de pacotes RPM que você obteve por download**  
Também é possível usar **yum install** para instalar arquivos de pacotes de RPM baixados da Internet. Para fazer isso, adicione o nome do caminho de um arquivo RPM ao comando de instalação em vez de um nome de pacote de repositório.

```
[ec2-user ~]$ sudo yum install my-package.rpm
```

**Para listar pacotes instalados**  
Para ver uma lista de pacotes instalados na instância, use o comando a seguir.

```
[ec2-user ~]$ yum list installed
```

# Prepare-se para compilar o software em uma instância AL2
<a name="compile-software"></a>

Há softwares de código aberto disponíveis na Internet que não foram pré-compilados e disponibilizados para download de um repositório de pacotes. É possível acabar descobrindo um pacote de software que precisa compilar por conta própria, do código-fonte. Para que seu sistema possa compilar software no AL2 Amazon Linux, você precisa instalar várias ferramentas de desenvolvimento, como **make****gcc**, e. **autoconf**

Como a compilação de software não é uma tarefa necessária para toda instância do Amazon EC2, essas ferramentas não são instaladas por padrão, mas elas estão disponíveis em um grupo de pacotes chamado "Development Tools", que é adicionado facilmente a uma instância com o comando **yum groupinstall**.

```
[ec2-user ~]$ sudo yum groupinstall "Development Tools"
```

Os pacotes de código-fonte de software geralmente estão disponíveis para download (em sites como [https://github.com/](https://github.com/)e [http://sourceforge.net/](https://sourceforge.net/)) como um arquivo compactado, chamado tarball. Esses tarballs geralmente têm a extensão de arquivo `.tar.gz`. É possível descompactar esses arquivos com o comando **tar**.

```
[ec2-user ~]$ tar -xzf software.tar.gz
```

Após descompactar e desarquivar o pacote do código-fonte, é necessário procurar um arquivo `README` ou `INSTALL` no diretório de código-fonte que pode fornecer instruções adicionais para compilar e instalar o código-fonte. 

**Como recuperar o código-fonte dos pacotes do Amazon Linux**  
A Amazon Web Services fornece o código-fonte para pacotes mantidos. É possível fazer download do código-fonte de todos os pacotes instalados com o comando **yumdownloader --source**.

Execute o **yumdownloader --source *package*** comando para baixar o código-fonte do*package*. Por exemplo, para fazer download do código-fonte para o pacote `htop`, insira o seguinte comando.

```
[ec2-user ~]$ yumdownloader --source htop

Loaded plugins: priorities, update-motd, upgrade-helper
Enabling amzn-updates-source repository
Enabling amzn-main-source repository
amzn-main-source                                                                                              | 1.9 kB  00:00:00     
amzn-updates-source                                                                                           | 1.9 kB  00:00:00     
(1/2): amzn-updates-source/latest/primary_db                                                                  |  52 kB  00:00:00     
(2/2): amzn-main-source/latest/primary_db                                                                     | 734 kB  00:00:00     
htop-1.0.1-2.3.amzn1.src.rpm
```

O local do RPM de origem está no diretório em que você executou o comando.