Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

更新实例软件

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

重要

这些过程适用于 Amazon Linux。有关其他发布版本的更多信息,请参阅其具体文档。

__| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/ There are 12 security update(s) out of 25 total update(s) available Run "sudo yum update" to apply all updates. [ec2-user ~]$

更新 Amazon Linux 实例上的所有程序包

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

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

      [ec2-user ~]$ screen
    2. 如果会话中断,请再次登录实例并列出可用屏幕。

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

      [ec2-user ~]$ screen -r 17793
    4. 使用完 screen 后,使用 exit 命令关闭会话。

      [ec2-user ~]$ exit [screen is terminating]
  2. 运行 yum update 命令。您可以选择添加 --security 标记,这样仅应用安全更新。

    [ec2-user ~]$ sudo yum update Loaded plugins: priorities, security, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00 amzn-updates | 2.3 kB 00:00 Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package aws-apitools-ec2.noarch 0:1.6.8.1-1.0.amzn1 will be updated ---> Package aws-apitools-ec2.noarch 0:1.6.10.0-1.0.amzn1 will be an update ---> Package gnupg2.x86_64 0:2.0.18-1.16.amzn1 will be updated ---> Package gnupg2.x86_64 0:2.0.19-8.21.amzn1 will be an update ---> Package libgcrypt.i686 0:1.4.5-9.10.amzn1 will be updated ---> Package libgcrypt.x86_64 0:1.4.5-9.10.amzn1 will be updated ---> Package libgcrypt.i686 0:1.4.5-9.12.amzn1 will be an update ---> Package libgcrypt.x86_64 0:1.4.5-9.12.amzn1 will be an update ---> Package openssl.x86_64 1:1.0.1e-4.53.amzn1 will be updated ---> Package openssl.x86_64 1:1.0.1e-4.54.amzn1 will be an update ---> Package python-boto.noarch 0:2.9.9-1.0.amzn1 will be updated ---> Package python-boto.noarch 0:2.13.3-1.0.amzn1 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: aws-apitools-ec2 noarch 1.6.10.0-1.0.amzn1 amzn-updates 14 M gnupg2 x86_64 2.0.19-8.21.amzn1 amzn-updates 2.4 M libgcrypt i686 1.4.5-9.12.amzn1 amzn-updates 248 k libgcrypt x86_64 1.4.5-9.12.amzn1 amzn-updates 262 k openssl x86_64 1:1.0.1e-4.54.amzn1 amzn-updates 1.7 M python-boto noarch 2.13.3-1.0.amzn1 amzn-updates 1.6 M Transaction Summary ================================================================================ Upgrade 6 Package(s) Total download size: 20 M Is this ok [y/N]:
  3. 查看所列的程序包,键入 y 并按 Enter 接受更新。更新系统上的所有程序包可能需要几分钟。yum 输出显示更新运行状态。

    Downloading Packages: (1/6): aws-apitools-ec2-1.6.10.0-1.0.amzn1.noarch.rpm | 14 MB 00:00 (2/6): gnupg2-2.0.19-8.21.amzn1.x86_64.rpm | 2.4 MB 00:00 (3/6): libgcrypt-1.4.5-9.12.amzn1.i686.rpm | 248 kB 00:00 (4/6): libgcrypt-1.4.5-9.12.amzn1.x86_64.rpm | 262 kB 00:00 (5/6): openssl-1.0.1e-4.54.amzn1.x86_64.rpm | 1.7 MB 00:00 (6/6): python-boto-2.13.3-1.0.amzn1.noarch.rpm | 1.6 MB 00:00 -------------------------------------------------------------------------------- Total 28 MB/s | 20 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : libgcrypt-1.4.5-9.12.amzn1.x86_64 1/12 Updating : gnupg2-2.0.19-8.21.amzn1.x86_64 2/12 Updating : aws-apitools-ec2-1.6.10.0-1.0.amzn1.noarch 3/12 Updating : 1:openssl-1.0.1e-4.54.amzn1.x86_64 4/12 ... Complete!
  4. (可选) 重启实例以确保您使用的是来自更新的最新程序包和库;重启发生前不会加载内核更新。更新任何 glibc 库后也应进行重启。对于用来控制服务的程序包的更新,重新启动服务便足以使更新生效,但系统重启可确保所有之前的程序包和库更新都是完整的。

更新 Amazon Linux 实例上的单个程序包

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

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

    [ec2-user ~]$ sudo yum update openssl Loaded plugins: priorities, security, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00 amzn-updates | 2.3 kB 00:00 Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package openssl.x86_64 1:1.0.1e-4.53.amzn1 will be updated ---> Package openssl.x86_64 1:1.0.1e-4.54.amzn1 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: openssl x86_64 1:1.0.1e-4.54.amzn1 amzn-updates 1.7 M Transaction Summary ================================================================================ Upgrade 1 Package(s) Total download size: 1.7 M Is this ok [y/N]:
  2. 查看所列的程序包信息,键入 y 并按 Enter 接受更新。如果存在必须解析的程序包依赖关系,有时会列出多个数据包。yum 输出显示更新运行状态。

    Downloading Packages: openssl-1.0.1e-4.54.amzn1.x86_64.rpm | 1.7 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : 1:openssl-1.0.1e-4.54.amzn1.x86_64 1/2 Cleanup : 1:openssl-1.0.1e-4.53.amzn1.x86_64 2/2 Verifying : 1:openssl-1.0.1e-4.54.amzn1.x86_64 1/2 Verifying : 1:openssl-1.0.1e-4.53.amzn1.x86_64 2/2 Updated: openssl.x86_64 1:1.0.1e-4.54.amzn1 Complete!
  3. (可选) 重启实例以确保您使用的是来自更新的最新程序包和库;重启发生前不会加载内核更新。更新任何 glibc 库后也应进行重启。对于用来控制服务的程序包的更新,重新启动服务便足以使更新生效,但系统重启可确保所有之前的程序包和库更新都是完整的。