本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從來源建置和安裝 AWS CLI
本主題將描述如何在支援的作業系統上從來源安裝或更新 AWS Command Line Interface (AWS CLI)。
如需 AWS CLI 最新版本的詳細資訊,請參閱 GitHub 上的 AWS CLI 第 2 版變更日誌
重要
AWS CLI 第 1 版及第 2 版會使用相同的 aws 命令名稱。如果已安裝 AWS CLI 第 1 版,請參閱 第 2 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 自動工具
-
為您的環境設定所有需求。這包括能執行 GNU 自動工具
產生的檔案和安裝 Python 3.8 或更新版本。 -
在您的終端中,導航到 AWS CLI 來源資料夾的頂層並執行
./configure命令。此命令會檢查系統中是否有所有必要的相依性,並根據偵測到和指定的組態產生Makefile用於建置和安裝 AWS CLI。如需詳細資訊、可用的組態選項和預設設定資訊,請參閱 步驟 2:設定 AWS CLI 來源安裝 一節。
-
執行
make命令。此命令會根據您的組態設定建置 AWS CLI。下列
make命令範例會使用您現有的./configure設定,以預設選項建置。如需詳細資訊和可用的建置選項,請參閱 步驟 3:建置 AWS CLI 一節。
-
執行
make install命令。此命令會將您的建置 AWS CLI 安裝到系統上配置的位置。以下
make install命令範例安裝您的建置 AWS CLI 並使用預設命令設定在配置的位置建立 symlink。如需詳細資訊和可用的安裝選項,請參閱 步驟 4:安裝 AWS CLI 一節。
-
使用以下命令,確認 AWS CLI 已成功安裝:
$aws --versionaws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off如需安裝錯誤的故障診斷步驟,請參閱 故障診斷 AWS CLI 安裝和解除安裝錯誤 一節。
步驟 1:設定所有要求
要從來源建置 AWS CLI,您需要事先完成以下內容:
注意
所有程式碼範例都是假設從來源目錄的根目錄執行。
延伸 AWS CLI GitHub 儲存庫或下載來源 tarball 來下載 AWS CLI 來源。說明如下:
-
從 GitHub 延伸和複製 AWS CLI 儲存庫
。如需詳細資訊,請參閱 GitHub 文件中的《延伸儲存庫 》。 -
在 https://awscli.amazonaws.com/awscli.tar.gz
下載最新來源 tarball,並使用下列命令擷取內容: $curl "https://awscli.amazonaws.com/awscli.tar.gz" -o "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 檔案的完整性:
-
您可以依循下列步驟使用
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 tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4CGwMF CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQT7Xbd/1cEYuAURraimMQrMRnJHXAUC aGveYQUJDMpiLAAKCRCmMQrMRnJHXKBYD/9Ab0qQdGiO5hObchG8xh8Rpb4Mjyf6 0JrVo6m8GNjNj6BHkSc8fuTQJ/FaEhaQxj3pjZ3GXPrXjIIVChmICLlFuRXYzrXc Pw0lniybypsZEVai5kO0tCNBCCFuMN9RsmmRG8mf7lC4FSTbUDmxG/QlYK+0IV/l uJkzxWa+rySkdpm0JdqumjegNRgObdXHAQDWlubWQHWyZyIQ2B4U7AxqSpcdJp6I S4Zds4wVLd1WE5pquYQ8vS2cNlDm4QNg8wTj58e3lKN47hXHMIb6CHxRnb947oJa pg189LLPR5koh+EorNkA1wu5mAJtJvy5YMsppy2y/kIjp3lyY6AmPT1posgGk70Z CmToEZ5rbd7ARExtlh76A0cabMDFlEHDIK8RNUOSRr7L64+KxOUegKBfQHb9dADY qqiKqpCbKgvtWlds909Ms74JBgr2KwZCSY1HaOxnIr4CY43QRqAq5YHOay/mU+6w hhmdF18vpyK0vfkvvGresWtSXbag7Hkt3XjaEw76BzxQH21EBDqU8WJVjHgU6ru+ DJTs+SxgJbaT3hb/vyjlw0lK+hFfhWKRwgOXH8vqducF95NRSUxtS4fpqxWVaw3Q V2OWSjbne99A5EPEySzryFTKbMGwaTlAwMCwYevt4YT6eb7NmFhTx0Fis4TalUs+ j+c7Kg92pDx2uQ== =OBAt -----END PGP PUBLIC KEY BLOCK-----以下公開金鑰詳細資訊僅供參考。
Key ID: A6310ACC4672 Type: RSA Size: 4096/4096 Created: 2019-09-18 Expires: 2026-07-07 User ID: AWS CLI Team <aws-cli@amazon.com> Key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C -
使用以下命令導入 AWS CLI 公開金鑰,將
public-key-file-name換為您建立的公開金鑰檔名。$gpg --importpublic-key-file-namegpg: /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 -
針對您在 https://awscli.amazonaws.com/awscli.tar.gz.sig
下載的套件,下載 AWS CLI 簽章檔案。它會有與其對應的 tarball 檔案具有相同的路徑和名稱,但具有副檔名 .sig。將它儲存在與 tarball 檔案相同的路徑下。或使用下列命令區塊:$curl awscliv2.sig https://awscli.amazonaws.com/ -o 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 <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 金鑰之間沒有信任鏈。如需詳細資訊,請參閱「信任網路
」。
-
-
-
您有一個環境可以執行 GNU 自動工具
產生的檔案,例如 configure和Makefile。這些檔案在 POSIX 平台上廣泛可攜。 -
已安裝 Python 3.8 或更新版本的解譯器。所需的最低 Python 版本遵循與官方 AWS SDK 和工具的 Python 支援政策
相同的時程。解譯器僅支援到終止支援日期之後的 6 個月。 -
(選擇性) 安裝 AWS CLI 所有的建置和執行時間 Python 程式庫相依性。如果缺少任何相依性以及不知道如何安裝,
./configure命令能提供您資訊。您可以透過配置自動安裝和使用這些相依性,請參閱 下載相依性 獲得更多資訊。
步驟 2:設定 AWS CLI 來源安裝
建置和安裝 AWS CLI 的組態使用 configure 指令碼指定。如需所有組態選項的文件,請使用 --help 選項執行 configure 指令碼:
最重要的選項如下:
安裝位置
AWS CLI 的來源安裝使用兩個可設定的目錄來安裝 AWS CLI:
-
libdir- 將安裝 AWS CLI 的父目錄。AWS CLI 安裝的路徑是。Linux 和 macOS 的預設<libdir-value>/aws-clilibdir值是/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、aws和aws_completer可執行檔。預設值為<prefix-value>/bin。如果bindir和--prefix兩者都未指定,Linux 和 macOS 的預設值為/usr/local/bin/。
Python 解譯器
注意
強烈建議您在 Windows 安裝時,指定 Python 解譯器。
./configure 指令碼會自動選取已安裝的 Python 3.8 或更新版本的解譯器,以便使用 AM_PATH_PYTHON
執行 configure 指令碼時,可以使用 PYTHON 環境變數明確設定要使用的 Python 解釋器:
下載相依性
根據預設要求,系統必須已安裝 AWS CLI 的所有建置和執行時間相依性。這包括任何 Python 程式庫的相依性。configure 指令碼執行時會檢查所有相依性,如果系統缺少任何 Python 相依性,configure 指令碼會發生錯誤。
您的系統缺少相依性時,會顯示以下的代碼範例錯誤:
若要自動安裝所需的 Python 相依性,請使用 --with-download-deps 選項。使用此標記時,建置程序會執行下列動作:
-
跳過 Python 程式庫的相依性檢查。
-
配置設定以下載所有必要的 Python 相依性,並在
make建置時僅使用下載的相依性來建置 AWS CLI。
下面的配置命令範例使用 --with-download-deps 選項下載和使用 Python 相依性:
安裝類型
來源安裝程序支援下列安裝類型:
-
system-sandbox- (預設值) 建立隔離的 Python 虛擬環境、將 AWS CLI 安裝到虛擬環境中,並在虛擬環境中建立aws與aws_completer可執行檔的 symlink。這個安裝的 AWS CLI 會直接相依於其執行時間所選取的 Python 解譯器。這是一種輕量型安裝機制,可以在系統上安裝 AWS CLI,並在虛擬環境中進行沙盒安裝來遵循最佳 Python 實務。此安裝適用於希望從來源安裝 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-exe 或 system-sandbox 的值。
以下 ./configure 命令範例會指定 portable-exe 的值:
步驟 3:建置 AWS CLI
使用 make 命令以使用您的配置設定來建置 AWS CLI:
注意
使用 make 指令時,會在幕後完成下列步驟:
-
虛擬環境使用 Python
venv模組在建置目錄中建立。虛擬環境使用 Python 標準庫中提供的 pip 版本 啟動。 -
複製 Python 程式庫的相依性。根據是否在
configure命令中指定--with-download-deps標記,此步驟會執行下列其中一項作業:-
指定
--with-download-deps。Python 的相依性使用 pip 安裝。這包括wheel、setuptools以及所有 AWS CLI 執行時間相依性。如果您在建置portable-exe,則pyinstaller已安裝。這些要求都在從pip-compile中產生的鎖定檔案中指定。 -
未指定
--with-download-deps。Python 解譯器站點套件中的 Python 庫以及任何指令碼 (例如pyinstaller) 都將複製到用於建置的虛擬環境中。
-
-
直接在 AWS CLI 程式碼庫上執行
pip install以離線、in-tree 建置和安裝 AWS CLI 到建置虛擬環境中。此安裝使用 pip 標記 --no-build-isolation、--use-feature=in-tree-build 、--no-cache-dir 和 --no-index。 -
(選擇性) 如果在
configure命令中將--install-type設為portable-exe,請使用pyinstaller建置獨立的可執行檔。
步驟 4:安裝 AWS CLI
make install 命令會將您的建置 AWS CLI 安裝到系統上配置的位置。
make install 規則支援 DESTDIR
注意
make install 執行時,會在幕後完成以下步驟
-
將下列其中一項移至已設定的安裝目錄:
-
如果安裝類型為
system-sandbox,移動您建置的虛擬環境。 -
如果安裝類型為
portable-exe,移動您建置的獨立可執行檔。
-
-
在配置的 bin 目錄中為
aws和aws_completer可執行檔建立 symlink。
步驟 5:驗證 AWS CLI 安裝
使用以下命令,確認 AWS CLI 已成功安裝:
$aws --versionaws-cli/2.27.41 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 的預設位置。
$cdpath/to/cli/respository/$./configure$make$make install
自動化 Windows 安裝
注意
您必須以系統管理員身分執行 PowerShell,才能使用此工作流程。
MSYS2 可以在 CI 設定中以自動方式使用,請參閱 MSYS2 文件的在 CI 使用 MSYS2
Alpine Linux 容器
以下的範例 Dockerfile,可用於在 Alpine Linux 容器取得 AWS CLI 的可運作安裝,作為 Alpine 預先建置二進位檔的替代方案AWSCLI_VERSION:
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 --versionaws-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 Public 或 Docker 映像檔。
故障診斷 AWS CLI 安裝和解除安裝錯誤
如需安裝錯誤的故障診斷步驟,請參閱 故障診斷 的錯誤 AWS CLI 了解常見的故障診斷步驟。如需最相關的故障診斷步驟,請參閱 命令未找到錯誤、「aws --version」命令傳回的版本與您安裝的版本不同 和 解除安裝 後,「aws --version」命令會傳回版本 AWS CLI。
對於故障診斷指南未涵蓋的任何問題,請在 GitHub 上的 AWS CLI 儲存庫source-distribution 標籤的問題。如果沒有任何問題涵蓋您的錯誤,請建立新問題
後續步驟
安裝 AWS CLI 後,您應該執行 設定 AWS CLI。