从源代码构建和安装 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从源代码构建和安装 Amazon CLI

本主题介绍如何在受支持的操作系统上从源代码安装或更新到最新版本的 Amazon Command Line Interface(Amazon CLI)。

有关 Amazon CLI 最新版本的信息,请参阅 GitHub 上的 Amazon CLI 版本 2 更改日志

重要

Amazon CLI 版本 1 和 2 使用相同的 aws 命令名称。如果您之前安装了 Amazon CLI 版本 1,请参阅从 Amazon CLI 版本 1 迁移至版本 2

为什么要从源代码构建?

Amazon CLI 可用作大多数平台和环境以及 Docker 映像的预构建安装程序

通常,这些安装程序涵盖了大多数使用案例。从源代码安装的说明旨在帮助解决我们的安装程序未涵盖的使用案例。部分使用案例包括:

  • 预构建的安装程序不支持您的环境。例如,预构建的安装程序不支持 ARM 32 位。

  • 预构建的安装程序具有您的环境所缺少的依赖项。例如,Alpine Linux 使用 musl,但当前安装程序需要 glibc,而导致预构建的安装程序无法立即运行。

  • 预构建的安装程序需要您的环境限制访问的资源。例如,安全强化型系统可能不会授予对共享内存的权限。这是冻结的 aws 安装程序所需要的。

  • 因为最好能够完全控制代码和软件包的构建过程,而预构建的安装程序通常会成为软件包管理器中维护者的阻碍。从源代码构建使发行版维护者可以通过更简化的流程来保持 Amazon CLI 处于更新状态。当从第三方软件包管理器(如 brewyumapt)安装时,启用维护者可为客户提供更新版本的 Amazon CLI。

  • 修补 Amazon CLI 功能的客户需要从源代码构建和安装 Amazon CLI。这对于想要在向 Amazon CLI GitHub 存储库提供更改之前测试对源代码所做更改的社区成员来说尤为重要。

快速步骤

注意

假设所有代码示例都从源代码目录的根目录运行。

要从源代码构建和安装 Amazon CLI,请按本节中的步骤操作。Amazon CLI 利用 GNU Autotools 从源代码进行安装。在最简单的情况下,可以通过从 Amazon CLI GitHub 存储库的根目录运行默认示例命令,以从源代码安装 Amazon CLI。

  1. 设置您的环境的所有要求。这包括能够运行 GNU Auttols 生成的文件以及安装 Python 3.8 或更高版本。

  2. 在终端中,导航到 Amazon CLI 源代码文件夹的顶层并运行 ./configure 命令。此命令会检查系统是否具有所有必需的依赖项,并生成 Makefile 以根据检测到的和指定的配置来构建和安装 Amazon CLI。

    Linux and macOS

    以下 ./configure 命令示例使用默认设置为 Amazon CLI 设置构建配置。

    $ ./configure
    Windows PowerShell

    在运行任何调用 MSYS2 的命令之前,必须保留当前工作目录:

    PS C:\> $env:CHERE_INVOKING = 'yes'

    然后,使用以下 ./configure 命令示例设置构建配置,以便 Amazon CLI 使用 Python 可执行文件的本地路径、安装到 C:\Program Files\AWSCLI 并下载所有依赖项。

    PS C:\> C:\msys64\usr\bin\bash -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps "

    有关详细信息、可用配置选项和默认设置信息,请参阅 步骤 2:配置 Amazon CLI 源代码安装 部分。

  3. 运行 make 命令。此命令根据您的配置设置构建 Amazon CLI。

    以下 make 命令示例使用您的现有 ./configure 设置通过默认选项进行构建。

    Linux and macOS
    $ make
    Windows PowerShell
    PS C:\> C:\msys64\usr\bin\bash -lc "make"

    有关详细信息和可用的构建选项,请参阅 步骤 3:构建 Amazon CLI 部分。

  4. 运行 make install 命令。此命令将您构建的 Amazon CLI 安装到系统上所配置的位置。

    以下 make install 命令示例使用默认命令设置,在所配置的位置安装您构建的 Amazon CLI 并创建符号链接。

    Linux and macOS
    $ make install
    Windows PowerShell
    PS C:\> C:\msys64\usr\bin\bash -lc "make install"

    安装后,使用以下方法将路径添加到 Amazon CLI:

    PS C:\> $Env: PATH +=";C:\Program Files\AWSCLI\bin\"

    有关详细信息和可用的安装选项,请参阅 步骤 4:安装 Amazon CLI 部分。

  5. 使用以下命令确认成功安装了 Amazon CLI:

    $ aws --version aws-cli/2.10.0 Python/3.11.2 Windows/10 exe/AMD64 prompt/off

    有关安装错误的故障排除步骤,请参阅 Amazon CLI 安装和卸载错误故障排除 部分。

步骤 1:设置所有要求

要从源代码构建 Amazon CLI,您需要事先完成以下步骤:

注意

假设所有代码示例都从源代码目录的根目录运行。

  1. 通过分流 Amazon CLI GitHub 存储库或下载源代码压缩包来下载 Amazon CLI 源代码。有关说明,请参阅以下内容之一:

    • GitHub 分流和克隆 Amazon CLI 存储库。有关更多信息,请参阅《GitHub 文档》中的分流存储库

    • 通过 https://awscli.amazonaws.com/awscli.tar.gz 下载最新的源代码压缩包,使用以下命令解压缩内容:

      $ curl -o awscli.tar.gz https://awscli.amazonaws.com/awscli.tar.gz $ tar -xzf awscli.tar.gz
      注意

      要下载特定版本,请使用以下链接格式:https://awscli.amazonaws.com/awscli-versionnumber.tar.gz

      例如,对于版本 2.10.0,链接如下:https://awscli.amazonaws.com/awscli-2.10.0.tar.gz

      源版本从 Amazon CLI 的 2.10.0 版本开始可用。

      (可选)通过完成以下步骤,验证下载的 zip 文件的完整性:

      1. 您可以通过以下步骤使用 GnuPG 工具验证签名。

        Amazon CLI 安装程序包 .zip 文件是使用 PGP 签名进行加密签名的。如果文件有任何损坏或更改,则此验证失败,您不应继续安装。

      2. 使用您的程序包管理器下载并安装 gpg 命令。有关 GnuPG 的更多信息,请参阅 GnuPG 网站

      3. 要创建公有密钥文件,请创建一个文本文件并粘贴到以下文本中。

        -----BEGIN PGP PUBLIC KEY BLOCK----- mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG 94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4WIQT7 Xbd/1cEYuAURraimMQrMRnJHXAUCXYKvtQIbAwUJB4TOAAULCQgHAgYVCgkICwIE FgIDAQIeAQIXgAAKCRCmMQrMRnJHXJIXEAChLUIkg80uPUkGjE3jejvQSA1aWuAM yzy6fdpdlRUz6M6nmsUhOExjVIvibEJpzK5mhuSZ4lb0vJ2ZUPgCv4zs2nBd7BGJ MxKiWgBReGvTdqZ0SzyYH4PYCJSE732x/Fw9hfnh1dMTXNcrQXzwOmmFNNegG0Ox au+VnpcR5Kz3smiTrIwZbRudo1ijhCYPQ7t5CMp9kjC6bObvy1hSIg2xNbMAN/Do ikebAl36uA6Y/Uczjj3GxZW4ZWeFirMidKbtqvUz2y0UFszobjiBSqZZHCreC34B hw9bFNpuWC/0SrXgohdsc6vK50pDGdV5kM2qo9tMQ/izsAwTh/d/GzZv8H4lV9eO tEis+EpR497PaxKKh9tJf0N6Q1YLRHof5xePZtOIlS3gfvsH5hXA3HJ9yIxb8T0H QYmVr3aIUes20i6meI3fuV36VFupwfrTKaL7VXnsrK2fq5cRvyJLNzXucg0WAjPF RrAGLzY7nP1xeg1a0aeP+pdsqjqlPJom8OCWc1+6DWbg0jsC74WoesAqgBItODMB rsal1y/q+bPzpsnWjzHV8+1/EtZmSc8ZUGSJOPkfC7hObnfkl18h+1QtKTjZme4d H17gsBJr+opwJw/Zio2LMjQBOqlm3K1A4zFTh7wBC7He6KPQea1p2XAMgtvATtNe YLZATHZKTJyiqA== =vYOk -----END PGP PUBLIC KEY BLOCK-----

        以下是公有密钥的详细信息以供参考。

        Key ID: A6310ACC4672 Type: RSA Size: 4096/4096 Created: 2019-09-18 Expires: 2023-09-17 User ID: AWS CLI Team <aws-cli@amazon.com> Key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
      4. 使用以下命令导入 Amazon CLI 公有密钥,用您创建的公有密钥的文件名替换 public-key-file-name

        $ gpg --import public-key-file-name gpg: /home/username/.gnupg/trustdb.gpg: trustdb created gpg: key A6310ACC4672475C: public key "AWS CLI Team <aws-cli@amazon.com>" imported gpg: Total number processed: 1 gpg: imported: 1
      5. 通过 https://awscli.amazonaws.com/awscli.tar.gz.sig 下载您已下载的软件包的 Amazon CLI 签名文件。它具有与其对应的压缩包文件相同的路径和名称,但扩展名为 .sig。将其保存在与压缩包文件相同的路径中。或者使用以下命令块:

        $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli.tar.gz.sig
      6. 验证签名,并将下载的 .sig.zip 文件名作为参数传递给 gpg 命令。

        $ gpg --verify awscliv2.sig awscli.tar.gz

        该输出值应该类似于以下内容。

        gpg: Signature made Mon Nov 4 19:00:01 2019 PST gpg: using RSA key FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C gpg: Good signature from "AWS CLI Team <aws-cli@amazon.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
        重要

        输出中的警告是预料中的,并不表示出现了问题。之所以出现此警告,是因为您的个人 PGP 密钥(如果您有)和 Amazon CLI PGP 密钥之间没有信任链。有关更多信息,请参阅信任 Web

  2. 您的环境可以运行 GNU Autotools 生成的文件,如 configureMakefile。这些文件可跨 POSIX 平台广泛移植。

    Linux and macOS

    如果您的环境中尚未安装 Autotools 或者您需要对其进行更新,请按照《GNU 文档》中如何安装 Autotools(以用户身份)?基本安装中的安装说明进行操作。

    Windows PowerShell
    警告

    我们建议,如果您在 Windows 环境中,请使用预构建的安装程序。有关预构建的安装程序的安装说明,请参阅 安装或更新到最新版本的 Amazon CLI

    由于 Windows 没有与 POSIX 兼容的 Shell,因此需要安装其他软件才能从源代码安装 Amazon CLI。MSYS2 提供了一系列工具和库来帮助构建和安装 Windows 软件,特别是对于 Autotools 使用的基于 POSIX 的脚本。

    1. 安装 MSYS2。有关安装和使用 MSYS2 的信息,请参阅《MSYS2 文档》中的安装和使用说明

    2. 打开 MSYS2 终端并使用以下命令安装自动工具。

      $ pacman -S autotools
    注意

    使用本指南中适用于 Windows 的配置、构建和安装代码示例时,假定默认的 MSYS2 安装路径为 C:\msys64\usr\bin\bash。在 PowerShell 中调用 MSYS2 时,您将使用以下格式,且 bash 命令加上引号:

    PS C:\> C:\msys64\usr\bin\bash -lc "command example"

    以下命令示例调用 ./configure 命令。

    PS C:\> C:\msys64\usr\bin\bash -lc "./configure"
  3. 安装了 Python 3.8 或更高版本的解释器。所需的最低 Python 版本遵循与 Amazon SDK 和工具的官方 Python 支持策略相同的时间表。解释器在其支持结束日期后 6 个月才获得支持。

  4. (可选)安装 Amazon CLI 的所有构建和运行时 Python 库依赖项。./configure 命令会通知您是否缺少任何依赖项以及如何安装它们。

    您可以通过配置自动安装和使用这些依赖项。有关更多信息,请参阅 下载依赖项

步骤 2:配置 Amazon CLI 源代码安装

构建和安装 Amazon CLI 的配置是使用 configure 脚本指定的。要获取所有配置选项的文档,请使用 --help 选项运行 configure 脚本:

Linux and macOS
$ ./configure --help
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --help"

安装位置

Amazon CLI 的源代码安装使用两个可配置的目录来安装 Amazon CLI:

  • libdir - 将在其中安装 Amazon CLI 的父目录。Amazon CLI 安装的路径是 <libdir-value>/aws-cli。Linux 和 macOS 的默认 libdir 值是 /usr/local/lib,它创建默认安装目录 /usr/local/lib/aws-cli

  • bindir - 安装 Amazon CLI 可执行文件的目录。默认位置是 /usr/local/bin

以下 configure 选项控制所使用的目录:

  • --prefix - 设置要用于安装的目录前缀。Linux 和 macOS 的默认值为 /usr/local

  • --libdir - 设置要用于安装 Amazon CLI 的 libdir。默认值为 <prefix-value>/lib。如果未指定 --libdir--prefix,则 Linux 和 macOS 的默认设置为 /usr/local/lib/

  • --bindir - 设置要用于安装 Amazon CLI awsaws_completer 可执行文件的 bindir。默认值为 <prefix-value>/bin。如果未指定 bindir--prefix,则 Linux 和 macOS 的默认设置为 /usr/local/bin/

Linux and macOS

以下命令示例使用 --prefix 选项执行 Amazon CLI 的本地用户安装。此命令将 Amazon CLI 安装在 $HOME/.local/lib/aws-cli 中,并将可执行文件安装在 $HOME/.local/bin 中:

$ ./configure --prefix=$HOME/.local

以下命令示例使用 --libdir 选项将 Amazon CLI 作为附加应用程序安装在 /opt 目录中。此命令将 Amazon CLI 安装在 /opt/aws-cli 中,并将可执行文件安装在其默认位置 /usr/local/bin 中。

$ ./configure --libdir=/opt
Windows PowerShell

以下命令示例使用 --prefix 选项执行 Amazon CLI 的本地用户安装。此命令将 Amazon CLI 安装在 $HOME/.local/lib/aws-cli 中,并将可执行文件安装在 $HOME/.local/bin 中:

$ C:\msys64\usr\bin\bash -lc "./configure --prefix='C:\Program Files\AWSCLI'"

以下命令示例使用 --libdir 选项将 Amazon CLI 作为附加应用程序安装在 /opt 目录中。此命令将 Amazon CLI 安装在 C:\Program Files\AWSCLI\opt\aws-cli 中。

Python 解释器

注意

强烈建议在针对 Windows 进行安装时指定 Python 解释器。

./configure 脚本会自动选择已安装的 Python 3.8 或更高版本的解释器,用于通过 AM_PATH_PYTHON Autoconf 宏来构建和运行 Amazon CLI。

运行 configure 脚本时,可以使用 PYTHON 环境变量显式设置要使用的 Python 解释器:

Linux and macOS
$ PYTHON=/path/to/python ./configure
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "PYTHON='C:\path\to\python' ./configure"

下载依赖项

默认情况下,要求 Amazon CLI 的所有构建和运行时依赖项都已安装在系统上。这包括任何 Python 库依赖项。运行 configure 脚本时会检查所有依赖项,如果系统缺少任何 Python 依赖项,则 configure 脚本会出错。

当您的系统缺少依赖项时,以下代码示例会出错:

Linux and macOS
$ ./configure checking for a Python interpreter with version >= 3.8... python checking for python... /Users/username/.envs/env3.11/bin/python checking for python version... 3.11 checking for python platform... darwin checking for GNU default python prefix... ${prefix} checking for GNU default python exec_prefix... ${exec_prefix} checking for python script directory (pythondir)... ${PYTHON_PREFIX}/lib/python3.11/site-packages checking for python extension module directory (pyexecdir)... ${PYTHON_EXEC_PREFIX}/lib/python3.11/site-packages checking for --with-install-type... system-sandbox checking for --with-download-deps... Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 125, in <module> main() File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 121, in main parsed_args.func(parsed_args) File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 49, in validate validate_env(parsed_args.artifact) File "/Users/username/aws-code/aws-cli/./backends/build_system/validate_env.py", line 68, in validate_env raise UnmetDependenciesException(unmet_deps, in_venv) validate_env.UnmetDependenciesException: Environment requires following Python dependencies: awscrt (required: ('>=0.12.4', '<0.17.0')) (version installed: None) We recommend using --with-download-deps flag to automatically create a virtualenv and download the dependencies. If you want to manage the dependencies yourself instead, run the following pip command: /Users/username/.envs/env3.11/bin/python -m pip install --prefer-binary 'awscrt>=0.12.4,<0.17.0' configure: error: "Python dependencies not met."
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "./configure" checking for a Python interpreter with version >= 3.8... python checking for python... /Users/username/.envs/env3.11/bin/python checking for python version... 3.11 checking for python platform... darwin checking for GNU default python prefix... ${prefix} checking for GNU default python exec_prefix... ${exec_prefix} checking for python script directory (pythondir)... ${PYTHON_PREFIX}/lib/python3.11/site-packages checking for python extension module directory (pyexecdir)... ${PYTHON_EXEC_PREFIX}/lib/python3.11/site-packages checking for --with-install-type... system-sandbox checking for --with-download-deps... Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 125, in <module> main() File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 121, in main parsed_args.func(parsed_args) File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 49, in validate validate_env(parsed_args.artifact) File "/Users/username/aws-code/aws-cli/./backends/build_system/validate_env.py", line 68, in validate_env raise UnmetDependenciesException(unmet_deps, in_venv) validate_env.UnmetDependenciesException: Environment requires following Python dependencies: awscrt (required: ('>=0.12.4', '<0.17.0')) (version installed: None) We recommend using --with-download-deps flag to automatically create a virtualenv and download the dependencies. If you want to manage the dependencies yourself instead, run the following pip command: /Users/username/.envs/env3.11/bin/python -m pip install --prefer-binary 'awscrt>=0.12.4,<0.17.0' configure: error: "Python dependencies not met."

要自动安装所需的 Python 依赖项,请使用 --with-download-deps 选项。使用此标志时,构建过程会执行以下操作:

  • 跳过 Python 库依赖项检查。

  • 将设置配置为下载所有必需的 Python 依赖项,并在 make 构建期间使用下载的依赖项构建 Amazon CLI。

以下配置命令示例使用 --with-download-deps 选项下载和使用 Python 依赖项:

Linux and macOS
$ ./configure --with-download-deps
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --with-download-deps"

安装类型

源代码安装过程支持以下安装类型:

  • system-sandbox - (默认)创建隔离的 Python 虚拟环境,将 Amazon CLI 安装到虚拟环境中,并符号链接到虚拟环境中的 awsaws_completer 可执行文件。Amazon CLI 的这一安装直接依赖于为其运行时选择的 Python 解释器。

    这是一种轻量级的安装机制,用于在系统上安装 Amazon CLI,并通过在虚拟环境中对安装进行沙箱化以遵循最佳 Python 实践。此安装适用于希望以尽可能顺畅的方式从源代码安装 Amazon CLI 的客户(该安装与您的 Python 安装耦合)。

  • portable-exe - 将 Amazon CLI 冻结为可分发到类似架构环境的独立可执行文件。这与生成 Amazon CLI 的官方预构建可执行文件的过程相同。portable-exe 冻结在 configure 步骤中选择的 Python 解释器的副本中,以用于 Amazon CLI 的运行时。这允许将其移到其他可能没有 Python 解释器的计算机上。

    这种类型的构建很有用,因为您可以确保您的 Amazon CLI 安装未与环境中安装的 Python 版本耦合,并且可以将构建版本分发给可能尚未安装 Python 的其他系统。这使您能够控制所使用的 Amazon CLI 可执行文件的依赖项和安全性。

要配置安装类型,请使用 --with-install-type 选项并指定 portable-exesystem-sandbox 的值。

以下 ./configure 命令示例指定 portable-exe 的值:

Linux and macOS
$ ./configure --with-install-type=portable-exe
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --with-install-type=portable-exe"

步骤 3:构建 Amazon CLI

使用 make 命令通过您的配置设置构建 Amazon CLI:

Linux and macOS
$ make
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "make"
注意
使用 make 命令时,将在后台完成以下步骤:
  1. 使用 Python venv 模块在构建目录中创建虚拟环境。虚拟环境是使用 Python 标准库中提供的 pip 版本引导的。

  2. 复制 Python 库依赖项。根据是否在 configure 命令中指定了 --with-download-deps 标志,此步骤将执行以下操作之一:

    • 指定了 --with-download-deps。Python 依赖项是 pip 安装的。这包括 wheelsetuptools 和所有 Amazon CLI 运行时依赖项。如果您正在构建 portable-exe,则安装 pyinstaller。这些要求都是在通过 pip-compile 生成的锁定文件中指定的。

    • 指定 --with-download-deps。来自 Python 解释器的站点包中的 Python 库以及任何脚本(例如 pyinstaller)都被复制到用于构建的虚拟环境中。

  3. 直接在 Amazon CLI 代码库上运行 pip install,以进行离线的树内构建,然后将 Amazon CLI 安装到构建虚拟环境中。此安装使用 pip 标志 --no-build-isolation--use-feature=in-tree-build--no-cache-dir--no-index

  4. (可选)如果在 configure 命令中将 --install-type 设置为 portable-exe,则使用 pyinstaller 生成独立的可执行文件。

步骤 4:安装 Amazon CLI

make install 命令将您构建的 Amazon CLI 安装到系统上所配置的位置。

Linux and macOS

以下命令示例使用您的配置和构建设置安装 Amazon CLI:

$ make install
Windows PowerShell

以下命令示例使用您的配置和构建设置安装 Amazon CLI,然后添加一个包含 Amazon CLI 的路径的环境变量:

PS C:\> C:\msys64\usr\bin\bash -lc " make install " PS C:\> $Env: PATH +=";C:\Program Files\AWSCLI\bin\"

make install 规则支持 DESTDIR 变量。指定后,此变量会在安装 Amazon CLI 时将指定的路径作为已配置的安装路径的前缀。默认情况下,未为该变量设置任何值。

Linux and macOS

以下代码示例使用 --prefix=/usr/local 标志来配置安装位置,然后对 make install 命令使用 DESTDIR=/tmp/stage 来更改该目的地。这些命令会导致 Amazon CLI 安装在 /tmp/stage/usr/local/lib/aws-cli 中,而其可执行文件位于 /tmp/stage/usr/local/bin 中。

$ ./configure --prefix=/usr/local $ make $ make DESTDIR=/tmp/stage install
Windows PowerShell

以下代码示例使用 --prefix=\awscli 标志来配置安装位置,然后对 make install 命令使用 DESTDIR=C:\Program Files 来更改该目的地。这些命令会导致 Amazon CLI 安装在 C:\Program Files\awscli 中。

$ ./configure --prefix=\awscli $ make $ make DESTDIR='C:\Program Files' install
注意
运行 make install 时,将在后台完成以下步骤
  1. 将以下内容之一移至配置的安装目录:

    • 如果安装类型为 system-sandbox,则移动您构建的虚拟环境。

    • 如果安装类型为 portable-exe,则移动已构建的独立可执行文件。

  2. 在配置的 bin 目录中为 awsaws_completer 可执行文件创建符号链接。

步骤 5:验证 Amazon CLI 安装

使用以下命令确认成功安装了 Amazon CLI:

$ aws --version aws-cli/2.10.0 Python/3.11.2 Windows/10 exe/AMD64 prompt/off

如果无法识别 aws 命令,您可能需要重启终端以更新新的符号链接。如果您在安装或卸载 Amazon CLI 后遇到其他问题,请参阅 排查 Amazon CLI 错误 以了解常用故障排除步骤

工作流程示例

本节提供了一些从源代码安装的基本工作流示例。

基本 Linux 和 macOS 安装

以下示例是一个基本的安装工作流,其中 Amazon CLI 安装在默认的 /usr/local/lib/aws-cli 位置。

$ cd path/to/cli/respository/ $ ./configure $ make $ make install

自动 Windows 安装

注意

您必须以管理员身份运行 PowerShell 才能使用此工作流。

MSYS2 可以在 CI 设置中自动使用,请参阅《MSYS2 文档》中的在 CI 中使用 MSYS2

Downloaded Tarball

下载 awscli.tar.gz 文件,解压缩,然后安装 Amazon CLI。使用以下命令时,请替换以下路径:

  • C:\msys64\usr\bin\bash(包括 MSYS2 路径的位置)。

  • .\awscli-2.x.x\(包括解压缩的 awscli.tar.gz 文件夹名称)。

  • PYTHON='C:\path\to\python.exe'(包括本地 Python 路径)。

以下代码示例使用 MSYS2 自动从 PowerShell 构建和安装 Amazon CLI,并指定要使用哪个 Python 本地安装:

PS C:\> curl -o awscli.tar.gz https://awscli.amazonaws.com/awscli.tar.gz # Download the awscli.tar.gz file in the current working directory PS C:\> tar -xvzf .\awscli.tar.gz # Extract awscli.tar.gz file PS C:\> cd .\awscli-2.x.x\ # Navigate to the root of the extracted files PS C:\> $env:CHERE_INVOKING = 'yes' # Preserve the current working directory PS C:\> C:\msys64\usr\bin\bash -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps " PS C:\> C:\msys64\usr\bin\bash -lc "make" PS C:\> C:\msys64\usr\bin\bash -lc "make install" PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\" PS C:\> aws --version aws-cli/2.10.0 Python/3.11.2 Windows/10 source-sandbox/AMD64 prompt/off
GitHub Repository

下载 awscli.tar.gz 文件,解压缩,然后安装 Amazon CLI。使用以下命令时,请替换以下路径:

  • C:\msys64\usr\bin\bash(包括 MSYS2 路径的位置)。

  • C:path\to\cli\repository\(包括指向 GitHub 中克隆的 Amazon CLI 存储库的路径)。有关更多信息,请参阅《GitHub 文档》中的分流存储库

  • PYTHON='C:\path\to\python.exe'(包括本地 Python 路径)。

以下代码示例使用 MSYS2 自动从 PowerShell 构建和安装 Amazon CLI,并指定要使用哪个 Python 本地安装:

PS C:\> cd C:path\to\cli\repository\ PS C:\> $env:CHERE_INVOKING = 'yes' # Preserve the current working directory PS C:\> C:\msys64\usr\bin\bash -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps " PS C:\> C:\msys64\usr\bin\bash -lc "make" PS C:\> C:\msys64\usr\bin\bash -lc "make install" PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\" PS C:\> aws --version

Alpine Linux 容器

下面是一个 Dockerfile 示例,可作为 Alpine 预构建二进制文件的替代,用于在 Alpine Linux 容器中正常安装 Amazon CLI:使用此示例时,将 AWSCLI_VERSION 替换为所需的 Amazon CLI 版本号:

FROM python:3.8-alpine AS builder ENV AWSCLI_VERSION=2.10.1 RUN apk add --no-cache \ curl \ make \ cmake \ gcc \ g++ \ libc-dev \ libffi-dev \ openssl-dev \ && curl https://awscli.amazonaws.com/awscli-${AWSCLI_VERSION}.tar.gz | tar -xz \ && cd awscli-${AWSCLI_VERSION} \ && ./configure --prefix=/opt/aws-cli/ --with-download-deps \ && make \ && make install FROM python:3.8-alpine RUN apk --no-cache add groff COPY --from=builder /opt/aws-cli/ /opt/aws-cli/ ENTRYPOINT ["/opt/aws-cli/bin/aws"]

构建此映像并从与 Amazon Linux 2 上构建的容器类似的容器调用 Amazon CLI:

$ docker build --tag awscli-alpine . $ docker run --rm -it awscli-alpine --version aws-cli/2.2.1 Python/3.8.11 Linux/5.10.25-linuxkit source-sandbox/x86_64.alpine.3 prompt/off

此映像的最终大小小于官方 Amazon CLI Docker 映像的大小。有关官方 Docker 映像的信息,请参阅 通过官方 Amazon ECR Public 映像或 Docker 映像运行 Amazon CLI

Amazon CLI 安装和卸载错误故障排除

有关安装错误的故障排除步骤,请参阅 排查 Amazon CLI 错误 以了解常见故障排除步骤。有关相关性最高的故障排除步骤,请参阅找不到命令错误“aws --version”命令返回的版本与您安装的版本不同卸载 Amazon CLI 后,“aws --version”命令返回一个版本

对于故障排除指南中未涵盖的任何问题,请在 GitHubAmazon CLI 存储库中搜索带有 source-distribution 标签的问题。如果现有问题没有涵盖您的错误,请创建一个新问题以获得 Amazon CLI 维护者的帮助。

后续步骤

安装 Amazon CLI 后,应执行 设置 Amazon CLI