AWS CLI 從源代碼構建並安裝 - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CLI 從源代碼構建並安裝

本主題將描述如何在支援的作業系統上從來源安裝或更新 AWS Command Line Interface (AWS CLI)。

如需最新發行版本的資訊 AWS CLI,請參閱上 GitHub的第 2 AWS CLI 版變更記錄檔

重要

AWS CLI 版本 1 和 2 使用相同的aws命令名稱。如果您之前已安裝 AWS CLI 版本 1,請參閱從 AWS CLI 第 1 版遷移至 第 2 版

為什麼要從來源建置?

可作為大多數平台和環境的預構建安裝程序以及 Docker 映像。 AWS CLI

這些安裝程式通常涵蓋大多數的使用案例。從來源安裝的說明是為了幫助我們的安裝程式未涵蓋的使用案例。部分使用案例如下:

  • 預先建置的安裝程式不支援您的環境。例如,預先建置的安裝程式不支援 ARM 32 位元。

  • 預先建置的安裝程式具有您環境缺少的相依性。例如,Alpine Linux 使用 musl,但是現有的安裝程式需要 glibc,造成預先建置的安裝程式無法立即運作。

  • 預先建置的安裝程式需要您的環境限制存取的資源。例如,強化安全性的系統可能不會授予共用記憶體的權限。這是凍結的 aws 安裝程式所需的。

  • 預先建置的安裝程式通常是套件管理工具中維護程式的封鎖程式,通常建議程式碼和套件在建置過程中取得完全控制權限。從源代碼構建使分發維護者可以更簡化的流程來保持更新。 AWS CLI 從第三方套件管理員進行安裝 AWS CLI 時,啟用維護者可為客戶提供更多 up-to-date 版本的,例如brewyum、和。apt

  • 修補程式 AWS CLI 功能的客戶需要建置和安裝 AWS CLI 來源。這對於希望在將變更貢獻給 AWS CLI GitHub 存放庫之前測試對來源所做的變更的社群成員尤其重要。

快速步驟

注意

所有程式碼範例都是假設從來源目錄的根目錄執行。

若要建置並安裝 AWS CLI 來源,請遵循本節中的步驟。 AWS CLI 利用 GNU 自動工具從來源安裝。在最簡單的情況下, AWS CLI 可以透過從 AWS CLI GitHub 存放庫根目錄執行預設範例命令,從來源安裝。

  1. 為您的環境設定所有需求。這包括能執行 GNU 自動工具產生的檔案和安裝 Python 3.8 或更新版本。

  2. 在終端中,導航到 AWS CLI 源文件夾的頂層並運行./configure命令。此指令會檢查系統中是否有所有必要的相依性,並 AWS CLI 根據偵測到的和指定的組態產生Makefile用於建置和安裝。

    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 來源安裝 一節。

  3. 執行 make 命令。此指令會 AWS CLI 根據您的組態設定建置。

    下列 make 命令範例會使用您現有的 ./configure 設定,以預設選項建置。

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

    如需詳細資訊和可用的建置選項,請參閱 步驟 3:建置 AWS CLI 一節。

  4. 執行 make install 命令。此命令會將您的建置 AWS CLI 安裝到系統上配置的位置。

    以下 make install 命令範例安裝您的建置 AWS CLI 並使用預設命令設定在配置的位置建立 symlink。

    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 一節。

  5. 使用以下命令確認 AWS CLI 已成功安裝:

    $ aws --version aws-cli/2.15.30 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

    如需安裝錯誤的故障診斷步驟,請參閱 AWS CLI 安裝和解除安裝錯誤疑難 一節。

步驟 1:設定所有要求

要構建 AWS CLI 來源,您需要事先完成以下內容:

注意

所有程式碼範例都是假設從來源目錄的根目錄執行。

  1. 通過分叉 AWS CLI GitHub 存儲庫或下載 AWS CLI 源 tarball 來下載源代碼。說明如下:

    • 分叉並從中克隆AWS CLI 存儲庫GitHub。如需詳細資訊,請參閱 GitHubDocs 中的 Fork 軟體庫

    • https://awscli.amazonaws.com/awscli.tar.gz 下載最新來源 tarball,請使用以下命令擷取內容:

      $ 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

      來源版本從 AWS CLI的 2.10.0 版開始提供。

      (可選) 完成下列步驟,驗證所下載 zip 檔案的完整性:

      1. 您可以依循下列步驟使用 GnuPG 工具來驗證簽章。

        AWS 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. 使用以下命令導入 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 <aws-cli@amazon.com>" imported gpg: Total number processed: 1 gpg: imported: 1
      5. 下載您在 https://awscli.amazonaws.com/awscli.tar.gz.sig 下載的套件的 AWS CLI 簽名檔案。它會有與其對應的 tarball 檔案具有相同的路徑和名稱,但具有副檔名 .sig。將它儲存在與 tarball 檔案相同的路徑下。或使用下列命令區塊:

        $ 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 金鑰 (如果有) 和 AWS CLI PGP 金鑰之間沒有信任鏈。如需詳細資訊,請參閱「信任網路」。

  2. 您有一個環境可以執行 GNU 自動工具 產生的檔案,例如 configureMakefile。這些檔案在 POSIX 平台上廣泛可攜。

    Linux and macOS

    如果您的環境尚未安裝 Autotools,或者您需要更新它們,請遵循 GNU 文件我如何安裝 Autotools (以使用者身分)?基本安裝中的安裝說明。

    Windows PowerShell
    警告

    如果您處於 Windows 環境中,建議您使用預先建置的安裝程式。如需預先建置安裝程式的安裝說明,請參閱 安裝或更新到最新版本的 AWS CLI

    由於 Windows 不附帶符合 POSIX 的外殼,因此您需要安裝其他軟體才能 AWS CLI 從原始碼安裝。MSYS2 提供了一系列工具和程式庫來幫助建置和安裝 Windows 軟體,尤其是對於 Autotools 使用的 POSIX 架構指令碼。

    1. 安裝 MSYS2。如需有關安裝和使用 MSYS2 的資訊,請參閱 MSYS2 文件中的安裝和使用說明

    2. 使用以下命令開啟 MSYS2 終端並安裝 Autotools。

      $ 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 版本遵循與 AWS SDK 和工具的官方 Python 支持策略相同的時間表。口譯員僅在其 end-of-support 日期後 6 個月獲得支持。

  4. (選擇性) 安裝 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"

安裝位置

的來源安裝 AWS CLI 使用兩個可設定的目錄來安裝 AWS CLI:

  • libdir- AWS CLI 將要安裝的父目錄。 AWS CLI 安裝的路徑是<libdir-value>/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 - 設定 libdir 用於安裝 AWS CLI。預設值為 <prefix-value>/lib。如果 --libdir--prefix 兩者都未指定,Linux 和 macOS 的預設值為 /usr/local/lib/

  • --bindir-設置用bindir於安裝 AWS CLI awsaws_completer可執行文件。預設值為 <prefix-value>/bin。如果 bindir--prefix 兩者都未指定,Linux 和 macOS 的預設值為 /usr/local/bin/

Linux and macOS

下列命令範例使用 --prefix 選項來執行 AWS CLI的本機使用者安裝。此命令將 AWS CLI in $HOME/.local/lib/aws-cli 和可執行文件安裝在$HOME/.local/bin

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

下列命令範例會使用選--libdir項,將 AWS CLI 作為附加元件應用程式安裝在/opt目錄中。此命令將 AWS CLI at /opt/aws-cli 和可執行檔安裝在其預設位置。/usr/local/bin

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

下列命令範例使用 --prefix 選項來執行 AWS CLI的本機使用者安裝。此命令將 AWS CLI in $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 at C:\Program Files\AWSCLI\opt\aws-cli

Python 解譯器

注意

強烈建議您在 Windows 安裝時,指定 Python 解譯器。

./configure令碼會自動選取已安裝的 Python 3.8 或更新版本的解譯器,以便 AWS CLI 使用 AM_PATH_PYTHONAutoconf 巨集來建置和執行。

執行 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 "<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 依賴項,並在構建 AWS 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 虛擬環境、將其安裝 AWS CLI 到虛擬環境中,並在虛擬環境中建立awsaws_completer可執行檔的符號連結。這個安裝直接取 AWS CLI 決於其執行階段所選取的 Python 解譯器。

    這是一種輕量級安裝機制,可以在系統上安 AWS CLI 裝,並通過在虛擬環境中進行沙箱安裝來遵循最佳 Python 實踐。此安裝適用於希望透過與安裝 Python 相結合的最順暢方式,以最順暢的方式安裝 AWS CLI 自來源的客戶。

  • portable-exe-凍結 AWS CLI 至可散佈至類似架構環境的獨立執行檔。這與用於產生 AWS CLI官方預先建置可執行檔的過程相同。portable-exe 凍結在 configure 步驟中選擇的 Python 解譯器副本,以用於 AWS CLI的執行時間。這讓它可移動到可能沒有 Python 解譯器的其他機器。

    這種類型的構建很有用,因為您可以確保您的 AWS CLI 安裝不會與環境的安裝 Python 版本耦合,並且可以將構建分發到可能尚未安裝 Python 的其他系統。這可讓您控制所使用之可 AWS 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:建置 AWS CLI

使用命make令來 AWS 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 以及所有 AWS CLI 執行時間相依性。如果您在建置 portable-exe,則 pyinstaller 已安裝。這些要求都在從 pip-compile 中產生的鎖定檔案中指定。

    • 未指定 --with-download-deps。Python 解譯器站點套件中的 Python 庫以及任何指令碼 (例如 pyinstaller) 都將複製到用於建置的虛擬環境中。

  3. pip install直接在 AWS CLI 代碼庫上運行以進行離線,在樹中構建和安裝 AWS CLI 到構建虛擬環境中。此安裝使用 pip 標誌 --no-build-isolation ,-使用功能 =,-in-tree-build -和。no-cache-dir --no-index

  4. (選擇性) 如果在 configure 命令中將 --install-type 設為 portable-exe,請使用 pyinstaller 建置獨立的可執行檔。

步驟 4:安裝 AWS CLI

make install命令將您的內置安裝 AWS CLI 到系統上配置的位置。

Linux and macOS

下列命令範例會 AWS CLI 使用您的組態和建置設定來安裝:

$ make install
Windows PowerShell

下列命令範例會 AWS CLI 使用您的組態和建置設定進行安裝,然後新增具有路徑的環境變數 AWS CLI:

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

make install 規則支援 DESTDIR 變數。如果有指定,此變數會在安裝 AWS CLI時,將指定路徑的加到已設定的安裝路徑前面。預設不會為此變數設定任何值。

Linux and macOS

下列程式碼範例會使用 --prefix=/usr/local 標記來設定安裝位置,然後使用 make install 指令和 DESTDIR=/tmp/stage 來變更目的地。這些命令會讓 AWS 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 來變更目的地。這些命令會讓 AWS 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 可執行檔建立 symlink。

步驟 5:驗證 AWS CLI 安裝

使用下列命令確認 AWS CLI 已成功安裝:

$ aws --version aws-cli/2.15.30 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

如果找不到 aws 命令,您可能需要重新啟動終端,才能更新為新的 symlink。如果您在安裝或解除安裝後遇到其他問題 AWS CLI,請參閱一排解 AWS CLI 錯誤般疑難排解步驟

工作流程範例

本節提供一些從來源安裝的基本工作流程範例。

基本 Linux 和 macOS 安裝

下列範例為基本安裝工作流程 AWS 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 檔案、解壓縮,並安裝 AWS CLI。使用下列命令時,請取代下列路徑:

  • C:\msys64\usr\bin\bash 取代為您的 MSYS2 路徑的位置。

  • .\awscli-2.x.x\ 取代為解壓縮後的 awscli.tar.gz 資料夾名稱。

  • PYTHON='C:\path\to\python.exe' 取代為您的本機 Python 路徑。

下列程式碼範例會使用 MSYS2 自動建置和安裝,並指定要 PowerShell 使用的 Python 本機安裝: AWS 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 檔案、解壓縮,並安裝 AWS CLI。使用下列命令時,請取代下列路徑:

  • C:\msys64\usr\bin\bash 取代為您的 MSYS2 路徑的位置。

  • C:path\to\cli\repository\GitHub克隆AWS CLI 存儲庫的路徑。如需詳細資訊,請參閱 GitHubDocs 中的 Fork 軟體庫

  • PYTHON='C:\path\to\python.exe' 取代為您的本機 Python 路徑。

下列程式碼範例會使用 MSYS2 自動建置和安裝,並指定要 PowerShell 使用的 Python 本機安裝: AWS 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 容器

下面是一個例子碼頭文件,可以用來獲取的工作安裝 AWS CLI 在阿爾派 Linux 容器作為替代阿爾派預構建的二進製文件。使用此範例時,請以所需AWSCLI_VERSION的 AWS 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 上建置的容器 AWS 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

此圖像的最終尺寸小於官方 AWS CLI Docker 圖像的大小。如需 Docker 映像檔的相關資訊,請參閱 AWS CLI 從官方 Amazon ECR 公共或碼頭圖像運行

AWS CLI 安裝和解除安裝錯誤疑難

如需安裝錯誤的故障診斷步驟,請參閱 排解 AWS CLI 錯誤 了解常見的故障診斷步驟。如需最相關的故障診斷步驟,請參閱 命令未找到錯誤「aws --version」命令傳回的版本與您安裝的版本不同在解除安裝 aws --version「」之後,"" 指令會傳回一個版本 AWS CLI

對於疑難排解指南中未涵蓋的任何問題,請在上搜尋AWS CLI 存放庫source-distribution標籤的問題GitHub。如果沒有任何問題涵蓋您的錯誤,請創建一個新問題以獲得 AWS CLI 維護者的幫助。

後續步驟

安裝之後 AWS CLI,您應該執行設定 AWS CLI.