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,请参阅Amazon CLI 版本 2 变更日 GitHub志

重要

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

为什么要从源代码构建?

Amazon CLI 可作为大多数平台和环境的预先构建的安装程序以及 Docker 镜像提供。

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

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

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

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

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

  • 修补 Amazon CLI 功能的客户需要 Amazon CLI 从源代码构建和安装。对于想要在将更改贡献到 Amazon CLI GitHub 存储库之前测试自己对源代码所做的更改的社区成员来说,这一点尤其重要。

快速步骤

注意

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

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

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

  2. 在终端中,导航到 Amazon CLI 源文件夹的顶层并运行该./configure命令。此命令检查系统是否存在所有必需的依赖关系,并 Amazon CLI 根据检测到的和指定的配置生成一个Makefile用于构建和安装的依赖关系。

    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.15.30 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

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

步骤 1:设置所有要求

要 Amazon CLI 从源代码构建,你需要事先完成以下内容:

注意

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

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

    • 从中分叉并克隆Amazon CLI 存储库GitHub。有关更多信息,请参阅GitHub文档中的 Fork 存储库

    • 通过 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. 下载你下载的软件包的 Amazon CLI 签名文件,网址为 https://awscli.amazonaws.com/awscli.tar.gz.sig。它具有与其对应的压缩包文件相同的路径和名称,但扩展名为 .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 的外壳,因此您需要安装其他软件才能 Amazon CLI 从源代码安装。MSYS2 提供了一系列工具和库来帮助构建和安装 Windows 软件,特别是对于 Autotools 使用的基于 POSIX 的脚本。

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

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

      $ pacman -S autotools
    注意

    使用本指南中适用于 Windows 的配置、构建和安装代码示例时,假定默认的 MSYS2 安装路径为 C:\msys64\usr\bin\bash。在内部调用 MSYS2 时, PowerShell 你将使用以下格式,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 支持政策相同的时间表。口译员只能在口译结束 end-of-support 后的 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-设置bindir用于安装 Amazon CLI awsaws_completer可执行文件。默认值为 <prefix-value>/bin。如果未指定 bindir--prefix,则 Linux 和 macOS 的默认设置为 /usr/local/bin/

Linux and macOS

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

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

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

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

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

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

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

Python 解释器

注意

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

./configure脚本会自动选择已安装的 Python 3.8 或更高版本的解释器,用于使用 AM_PATH_PYTHONAutoconf 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 依赖项,并在构建 Amazon CLI 期间使用下载的依赖项来make构建。

以下配置命令示例使用 --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. pip install直接在 Amazon CLI 代码库上运行,进行离线、树内构建,然后将其安装 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.15.30 Python/3.11.6 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 路径)。

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

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.15.30 Python/3.11.6 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\其中包含克隆Amazon CLI 存储库GitHub路径。如需了解更多信息,请参阅文档中的 Fork 存储库 GitHub

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

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

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 Linux 容器 Amazon CLI 中进行有效安装,以替代预先构建的 Alpine 二进制文件。使用此示例时,请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 映像的信息,请参阅 使用亚马逊 ECR 官方公共镜像或 Docker 镜像运行 Amazon CLI

Amazon CLI 安装和卸载错误疑难解答

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

对于疑难解答指南中未涉及的任何问题,请使用Amazon CLI 存储库中的source-distribution标签搜索问题GitHub。如果没有现有问题可以掩盖您的错误,请创建一个新问题以获得 Amazon CLI 维护者的帮助。

后续步骤

安装完成后 Amazon CLI,您应该执行一个设置 Amazon CLI