从源代码构建和安装 AWS CLI

您所在的位置:网站首页 ps安装指南 从源代码构建和安装 AWS CLI

从源代码构建和安装 AWS CLI

2023-03-16 07:00| 来源: 网络整理| 查看: 265

从源代码构建和安装 AWS CLI

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

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

重要

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

主题

为什么要从源代码构建?快速步骤步骤 1:设置所有要求步骤 2:配置 AWS CLI 源代码安装 步骤 3:构建 AWS CLI步骤 4:安装 AWS CLI步骤 5:验证 AWS CLI 安装工作流程示例AWS CLI 安装和卸载错误故障排除后续步骤 为什么要从源代码构建?

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

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

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

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

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

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

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

快速步骤 注意

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

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

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

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

Linux and macOS

以下 ./configure 命令示例使用原定设置为 AWS CLI 设置构建配置。

$ ./configure Windows PowerShell

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

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

然后,使用以下 ./configure 命令示例设置构建配置,以便 AWS 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:配置 AWS CLI 源代码安装 部分。

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

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

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

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

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

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

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

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

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

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

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

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

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

步骤 1:设置所有要求

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

注意

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

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

从 GitHub 分流和克隆 AWS 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

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

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

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

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

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

-----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 Key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C

使用以下命令导入 AWS 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 " imported gpg: Total number processed: 1 gpg: imported: 1

通过 https://awscli.amazonaws.com/awscli.tar.gz.sig 下载您已下载的软件包的 AWS CLI 签名文件。它具有与其对应的压缩包文件相同的路径和名称,但扩展名为 .sig。将其保存在与压缩包文件相同的路径中。或者使用以下命令块:

$ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli.tar.gz.sig

验证签名,并将下载的 .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 " [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 密钥(如果您有)和 AWS CLI PGP 密钥之间没有信任链。有关更多信息,请参阅信任 Web。

显示更多显示更少

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

Linux and macOS

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

Windows PowerShell 警告

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

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

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

打开 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"

安装了 Python 3.8 或更高版本的解释器。所需的最低 Python 版本遵循与 AWS SDK 和工具的官方 Python 支持策略相同的时间表。解释器在其支持结束日期后 6 个月才获得支持。

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

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

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

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

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

最重要的选项如下所示:

安装位置Python 解释器下载依赖项安装类型 安装位置

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

libdir - 将在其中安装 AWS CLI 的父目录。AWS CLI 安装的路径是 /aws-cli。Linux 和 macOS 的原定设置 libdir 值是 /usr/local/lib,它创建原定设置安装目录 /usr/local/lib/aws-cli

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

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

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

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

--bindir - 设置要用于安装 AWS CLI aws 和 aws_completer 可执行文件的 bindir。默认值为 /bin。如果未指定 bindir 和 --prefix,则 Linux 和 macOS 的原定设置为 /usr/local/bin/。

Linux and macOS

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

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

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

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

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

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

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

Python 解释器 注意

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

./configure 脚本会自动选择已安装的 Python 3.8 或更高版本的解释器,用于通过 AM_PATH_PYTHON Autoconf 宏来构建和运行 AWS 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" 下载依赖项

原定设置情况下,要求 AWS 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 "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 125, in 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.12.4,=0.12.4', '=0.12.4,


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3