AWS CLI 從來源建置和安裝 - AWS Command Line Interface

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

AWS CLI 從來源建置和安裝

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

如需 最新版本的相關資訊 AWS CLI,請參閱 上的AWS CLI 第 2 版變更日誌 GitHub。

重要

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

為什麼要從來源建置?

AWS CLI 適用於大多數平台和環境的預先建置安裝程式,以及 Docker 映像。

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

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

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

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

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

  • 修補 AWS CLI 功能的客戶需要 AWS CLI 從來源建置和安裝 。對於想要在將變更貢獻至 AWS CLI GitHub 儲存庫之前測試對來源所做的變更的社群成員而言,這一點尤其重要。

快速步驟

注意

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

若要 AWS CLI 從來源建置和安裝 ,請遵循本節中的步驟。 AWS CLI 會利用 GNU Autotools 從來源安裝 。在最簡單的情況下, AWS CLI 可以從儲存 GitHub 庫根 AWS CLI 執行預設範例命令,從來源安裝 。

  1. 為您的環境設定所有需求。這包括能夠執行 GNU Autotools 產生的檔案,並安裝 Python 3.8 或更新版本。

  2. 在終端機中,導覽至 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 來源安裝 一節。

  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.17.20 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。如需詳細資訊,請參閱 GitHub 文件 中的 Fork a Repo

    • 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 Autotools 產生的檔案,例如 configureMakefile。這些檔案在跨POSIX平台之間具有廣泛的可攜性。

    Linux and macOS

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

    Windows PowerShell
    警告

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

    由於 Windows 未隨附 POSIX相容的 Shell,因此您需要安裝其他軟體,才能 AWS CLI 從來源安裝 。MSYS2 提供工具和程式庫的集合,以協助建置和安裝 Windows 軟體,特別是 Autotools 使用的 POSIX型指令碼。

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

    2. 開啟MSYS2終端機,並使用下列命令安裝自動工具。

      $ pacman -S autotools
    注意

    使用本指南中的 Windows 設定、建置和安裝程式碼範例時,C:\msys64\usr\bin\bash會假設 的預設MSYS2安裝路徑。當您在 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 版本遵循與 和 工具的 AWS SDKs官方 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 中的 $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 或更新版本解譯器,以便在 AWS CLI 使用 AM_PATH_PYTHON Autoconf 巨集建置和執行 時使用。

執行 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 相依性,並僅使用下載的相依性在make建置 AWS 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 虛擬環境、將 安裝 AWS CLI 到虛擬環境中,並在虛擬環境中將 與 aws aws_completer 的對稱連結。此 的安裝直接 AWS CLI 取決於其執行時間選取的 Python 解譯器。

    這是輕量安裝機制,可在 系統上 AWS CLI 安裝 ,並透過在虛擬環境中對安裝進行沙盒處理,以遵循最佳實務。此安裝適用於希望以最順暢的方式 AWS CLI 從來源安裝 的客戶,並將安裝與 Python 安裝搭配使用。

  • 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 --use-feature=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.17.20 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 路徑。

下列程式碼範例會自動 PowerShell 使用 AWS CLI 建置和安裝 MSYS2,並指定要使用的 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.17.20 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\ 從 複製的AWS CLI 儲存庫路徑GitHub。如需詳細資訊,請參閱 文件中的 Fork a Repopo GitHub

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

下列程式碼範例會自動 PowerShell 使用 AWS CLI 建置和安裝 MSYS2,並指定要使用的 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 範例,可用於在 AWS CLI Alpine Linux 容器中取得 的工作安裝,作為 Alpine 預先建置二進位檔案的替代方案。使用此範例時,請取代 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 映像檔的相關資訊,請參閱 執行 的官方 Amazon ECR Public 或 Docker 映像 AWS CLI

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

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

對於故障診斷指南中未涵蓋的任何問題,請在 上的AWS CLI 儲存庫中搜尋source-distribution標籤的問題GitHub。如果沒有現有問題涵蓋您的錯誤,請建立新的問題,以接收 AWS CLI 維護器的協助。

後續步驟

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