本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 版本的,例如
brew
yum
、和。apt
-
修補程式 AWS CLI 功能的客戶需要建置和安裝 AWS CLI 來源。這對於希望在將變更貢獻給 AWS CLI GitHub 存放庫之前測試對來源所做的變更的社群成員尤其重要。
快速步驟
注意
所有程式碼範例都是假設從來源目錄的根目錄執行。
若要建置並安裝 AWS CLI 來源,請遵循本節中的步驟。 AWS CLI 利用 GNU 自動工具
-
為您的環境設定所有需求。這包括能執行 GNU 自動工具
產生的檔案和安裝 Python 3.8 或更新版本。 -
在終端中,導航到 AWS CLI 源文件夾的頂層並運行
./configure
命令。此指令會檢查系統中是否有所有必要的相依性,並 AWS CLI 根據偵測到的和指定的組態產生Makefile
用於建置和安裝。如需詳細資訊、可用的組態選項和預設設定資訊,請參閱 步驟 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 --version
aws-cli/2.15.30 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
如需安裝錯誤的故障診斷步驟,請參閱 AWS CLI 安裝和解除安裝錯誤疑難 一節。
步驟 1:設定所有要求
要構建 AWS CLI 來源,您需要事先完成以下內容:
注意
所有程式碼範例都是假設從來源目錄的根目錄執行。
通過分叉 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 檔案的完整性:
-
您可以依循下列步驟使用
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 <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://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 版本遵循與 AWS SDK 和工具的官方 Python 支持策略相同的
時間表。口譯員僅在其 end-of-support 日期後 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 依賴項,並在構建 AWS CLI 期間僅使用下載的依賴項來構建。
make
下面的配置命令範例使用 --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 ,-使用功能 =,-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.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
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.