

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 更新您的实例上的 AL2 实例软件
<a name="install-updates"></a>

使软件保持最新非常重要。Linux 发行版中的程序包会经常更新，以修复错误、添加功能，以及防止安全漏洞。当您首次启动并连接到 Amazon Linux 实例时，您可能会看到出于安全目的要求您更新软件包的消息。本节介绍如何更新整个系统或仅更新单个程序包。

此信息适用于 AL2。有关信息 AL2023，请参阅 *Amazon Linux 2023 用户指南 AL2023*[中的管理软件包和操作系统更新](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)。

有关变更和更新的信息 AL2，请参阅[AL2 发行说明](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)。

有关变更和更新的信息 AL2023，请参阅[AL2023 发行说明](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html)。

**重要**  
如果您在 IPv6仅限子网中启动了使用 Amazon Linux 2 AMI 的 EC2 实例，则必须连接到该实例并运行`sudo amazon-linux-https disable`。这样，您的 AL2 实例就可以 IPv6使用 http 补丁服务通过连接到 S3 中的yum存储库。

**更新 AL2 实例上的所有软件包**

1. （可选）在 Shell 窗口中启动 **screen** 会话。有时您可能会遇到网络中断，这样会断开到实例的 SSH 连接。如果在较长的软件更新期间发生这种情况，实例处于混乱、但可恢复的状态。即使连接中断，通过 **screen** 会话也可继续运行更新，您稍后可重新连接到此会话，不会有问题。

   1. 执行 **screen** 命令以开始会话。

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

   1. 如果会话中断，请再次登录实例并列出可用屏幕。

      ```
      [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. 使用 **screen -r** 命令和前一命令的进程 ID 重新连接到屏幕。

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

   1. 使用 **screen** 完成操作后，使用 **exit** 命令关闭会话。

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

1. 运行 **yum update** 命令。您可以选择添加 `--security` 标记，这样仅应用安全更新。

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

1. 查看所列的程序包，输入 **y** 并按 Enter 接受更新。更新系统上的所有程序包可能需要几分钟。**yum** 输出显示更新运行状态。

1. （可选）[重启您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html)，以确保您使用的是更新中的最新软件包和库；只有在重启后才会加载内核更新。更新任何 `glibc` 库后也应进行重启。对于用来控制服务的程序包的更新，重新启动服务可能就足以使更新生效，但系统重启可确保所有之前的程序包和库更新都是完整的。

**更新 AL2 实例上的单个软件包**

使用此过程可更新单个程序包 (及其依赖关系)，而非整个系统。

1. 使用要更新的程序包的名称运行 **yum update** 命令。

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

1. 查看所列的程序包信息，输入 **y** 并按 Enter 接受更新。如果存在必须解析的程序包依赖关系，有时会列出多个数据包。**yum** 输出显示更新运行状态。

1. （可选）[重启您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html)，以确保您使用的是更新中的最新软件包和库；只有在重启后才会加载内核更新。更新任何 `glibc` 库后也应进行重启。对于用来控制服务的程序包的更新，重新启动服务可能就足以使更新生效，但系统重启可确保所有之前的程序包和库更新都是完整的。