本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 並使用預設命令設定在設定的位置中建立符號連結。如需詳細資訊和可用的安裝選項,請參閱 步驟 4:安裝 AWS CLI 一節。
-
使用以下命令確認 AWS CLI 已成功安裝 :
$
aws --version
aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
如需安裝錯誤的故障診斷步驟,請參閱 針對 AWS CLI 安裝和解除安裝錯誤進行故障診斷 一節。
步驟 1:設定所有要求
若要 AWS CLI 從來源建置 ,您需要事先完成下列項目:
注意
所有程式碼範例都是假設從來源目錄的根目錄執行。
透過 AWS CLI 偽造 AWS CLI GitHub 儲存庫或下載來源 tarball 來下載來源。說明如下:
-
從 GitHub 延伸和複製 AWS CLI 儲存庫
。如需更多詳細資訊,請參閱 GitHub 文件中的《延伸儲存庫 》。 -
在 下載最新的來源 tarball,使用以下命令https://awscli.amazonaws.com/awscli.tar.gz
擷取內容: $
curl -o "https://awscli.amazonaws.com/awscli.tar.gz" -o "awscliv2.zip"
$
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 --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 -
下載您在 https://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
-
驗證簽章,並將下載的
.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 版本遵循與官方 Python 支援政策 AWS SDKs和工具
相同的時間表。解譯器僅支援到終止支援日期之後的 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 CLIaws
和aws_completer
可執行檔的 。預設值為<prefix-value>/bin
。如果bindir
和--prefix
兩者都未指定,Linux 和 macOS 的預設值為/usr/local/bin/
。
Python 解譯器
注意
強烈建議您在 Windows 安裝時,指定 Python 解譯器。
./configure
指令碼會自動選取已安裝的 Python 3.8 或更新版本解譯器,以便在 AWS CLI 使用 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
可執行檔。此 的安裝直接 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-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
) 都將複製到用於建置的虛擬環境中。
-
-
pip install
直接在 AWS CLI 程式碼庫上執行 ,以執行離線的樹狀內建置,並將 安裝在 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 --version
aws-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
。
$
cd
path/to/cli/respository/
$
./configure
$
make
$
make install
自動化 Windows 安裝
注意
您必須以系統管理員身分執行 PowerShell,才能使用此工作流程。
MSYS2 可以在 CI 設定中以自動方式使用,請參閱 MSYS2 文件的在 CI 使用 MSYS2
Alpine Linux 容器
以下的範例 Dockerfile,可用於在 Alpine Linux 容器取得 AWS CLI 的可運作安裝,作為 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
此影像的最終大小小於官方 Docker AWS CLI 影像的大小。如需 Docker 映像檔的相關資訊,請參閱 執行 的官方 Amazon ECR Public 或 Docker 映像 AWS CLI。
針對 AWS CLI 安裝和解除安裝錯誤進行故障診斷
如需安裝錯誤的故障診斷步驟,請參閱 故障診斷 的錯誤 AWS CLI 了解常見的故障診斷步驟。如需最相關的故障診斷步驟,請參閱 命令未找到錯誤、「aws --version」命令傳回的版本與您安裝的版本不同 和 解除安裝 後,「aws --version」命令會傳回版本 AWS CLI。
對於故障診斷指南未涵蓋的任何問題,請在 GitHub 上的 AWS CLI 儲存庫source-distribution
標籤的問題。如果沒有現有問題涵蓋您的錯誤,請建立新的問題
後續步驟
安裝 之後 AWS CLI,您應該執行 設定 AWS CLI。