Compilazione e installazione di AWS CLI dall’origine
Questo argomento descrive come installare o aggiornare dall’origine l’ultima versione di AWS Command Line Interface (AWS CLI) sui sistemi operativi supportati.
Per informazioni sulle ultime versioni della AWS CLI, consulta AWS CLI version 2 Changelog
Importante
L'AWS CLI versioni 1 e 2 usa lo stesso nome del comando aws. Se in precedenza è stato installato AWS CLI versione 1, consulta Guida alla migrazione per la versione 2 della AWS CLI.
Argomenti
Perché compilare dall’origine?
AWS CLI è disponibile con programmi di installazione predefiniti per la maggior parte delle piattaforme e degli ambienti, nonché come immagine Docker.
In genere, questi programmi di installazione forniscono la copertura per la maggior parte dei casi d’uso. Le istruzioni per l’installazione dall’origine servono a risolvere i casi d’uso non coperti dai programmi di installazione. Alcuni di questi casi d’uso sono i seguenti:
-
I programmi di installazione predefiniti non supportano l’ambiente in uso. Ad esempio, ARM a 32 bit non è supportato dai programmi di installazione predefiniti.
-
I programmi di installazione predefiniti hanno dipendenze che non sono presenti nell’ambiente. Ad esempio, Alpine Linux utilizza
musl, ma gli attuali programmi di installazione richiedono glibc, il che impedisce il funzionamento immediato dei programmi di installazione predefiniti. -
I programmi di installazione predefiniti richiedono risorse a cui l’ambiente limita l’accesso. Ad esempio, i sistemi con hardening della sicurezza potrebbero non fornire le autorizzazioni per la memoria condivisa. Questo comportamento è necessario per il programma di installazione
awsbloccato. -
I programmi di installazione predefiniti spesso rappresentano un ostacolo per i manutentori dei gestori di pacchetti, in quanto è preferibile avere il pieno controllo sul processo di compilazione del codice e dei pacchetti. La compilazione dall’origine consente ai manutentori della distribuzione di utilizzare un processo più semplice per mantenere AWS CLI aggiornato. Il supporto per i manutentori fornisce ai clienti le versioni aggiornate di AWS CLI quando installano da un gestore di pacchetti di terze parti come
brew,yumeapt. -
I clienti che applicano la patch della funzionalità AWS CLI richiedono la compilazione e l’installazione di AWS CLI dall’origine. Questo approccio è particolarmente importante per i membri della community che desiderano testare le modifiche apportate all’origine prima di fornirle al repository AWS CLI in GitHub.
Passaggi rapidi
Nota
Si presume che tutti gli esempi di codice vengano eseguiti dalla root della directory di origine.
Per compilare e installare AWS CLI dall’origine, seguire i passaggi indicati in questa sezione. AWS CLI utilizza GNU Autotools
-
Impostare tutti i requisiti per l’ambiente. Ciò include la possibilità di eseguire file generati da GNU Autotools
e installare Python 3.8 o versioni successive. -
Nel terminale, passare al livello superiore della cartella di origine AWS CLI ed eseguire il comando
./configure. Questo comando verifica la presenza di tutte le dipendenze richieste nel sistema e genera unMakefileper la compilazione e l’installazione di AWS CLI in base alle configurazioni rilevate e specificate.Per i dettagli, le opzioni di configurazione disponibili e le informazioni sulle impostazioni predefinite, consulta la sezione Passaggio 2: configurare l’installazione dell’origine di AWS CLI.
-
Esegui il comando
make. Questo comando compila AWS CLI in base alle impostazioni di configurazione.Il seguente comando
makedi esempio compila con le opzioni predefinite utilizzando le impostazioni./configureesistenti.Per i dettagli e le opzioni di compilazione disponibili, consulta la sezione Passaggio 3: compilare AWS CLI.
-
Esegui il comando
make install. Questo comando installa la compilazione di AWS CLI nella posizione configurata del sistema.Il seguente comando
make installdi esempio installa la compilazione di AWS CLI e crea collegamenti simbolici nelle posizioni configurate utilizzando le impostazioni di comando predefinite.Per i dettagli e le opzioni di installazione disponibili, consulta la sezione Passaggio 4: installare AWS CLI.
-
Confermare di aver installato AWS CLI correttamente utilizzando il seguente comando:
$aws --versionaws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/offPer il passaggi della risoluzione dei problemi di installazione, consulta la sezione Risoluzione degli errori di installazione e disinstallazione della AWS CLI.
Passaggio 1: configurare tutti i requisiti
Per compilare AWS CLI dall’origine è necessario completare prima le seguenti operazioni:
Nota
Si presume che tutti gli esempi di codice vengano eseguiti dalla root della directory di origine.
Scaricare l’origine AWS CLI eseguendo il fork del repository AWS CLI in GitHub o scaricando il tarball di origine. Seguire una delle seguenti istruzioni:
-
Eseguire il fork e clonare il repository AWS CLI
da GitHub. Per ulteriori informazioni, consulta Fork a repo nella Documentazione di GitHub. -
Scaricare il tarball di origine più recente da https://awscli.amazonaws.com/awscli.tar.gz
ed estrarne il contenuto utilizzando i seguenti comandi: $curl "https://awscli.amazonaws.com/awscli.tar.gz" -o "awscli.tar.gz"$tar -xzf awscli.tar.gzNota
Per scaricare una versione specifica, utilizzare il seguente formato di collegamento: https://awscli.amazonaws.com/awscli-
versionnumber.tar.gzAd esempio, per la versione 2.10.0 il collegamento è: https://awscli.amazonaws.com/awscli-
2.10.0.tar.gzLe versioni di origine sono disponibili a partire dalla versione 2.10.0 di AWS CLI.
(Facoltativo) Verificare l’integrità del file zip scaricato completando i seguenti passaggi:
-
Puoi utilizzare le fasi seguenti per verificare le firme tramite lo strumento
GnuPG.I file
.zipdel pacchetto di installazione di AWS CLI sono firmati crittograficamente mediante le firme PGP. Se i file sono in qualche modo danneggiati o alterati, questa verifica non va a buon fine e l'installazione deve essere arrestata. -
Scaricare e installare il comando
gpgutilizzando il programma di gestione dei pacchetti. Per ulteriori informazioni suGnuPG, consulta il sito Web GnuPG. -
Per creare il file della chiave pubblica, creare un file di testo e incollare il testo seguente.
-----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-----Per riferimento, di seguito sono riportati i dettagli della chiave pubblica.
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 -
Importare la chiave pubblica AWS CLI con il comando seguente, sostituendo
public-key-file-namecon il nome file della chiave pubblica creata.$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 -
Scaricare il file della firma AWS CLI per il pacchetto scaricato da https://awscli.amazonaws.com/awscli.tar.gz.sig
. Il percorso e il nome sono identici a quelli del file tarball corrispondente, ma con estensione .sig. Salvare il file nello stesso percorso del file tarball. In alternativa, utilizzare il seguente blocco di comandi:$curl awscliv2.sig https://awscli.amazonaws.com/ -o awscli.tar.gz.sig -
Verifica la firma, passando entrambi i nomi file
.sige.zipscaricati come parametri del comandogpg.$gpg --verify awscliv2.sig awscli.tar.gzL'output visualizzato dovrebbe essere simile al seguente:
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 475CImportante
L'avviso nell'output è previsto e non indica un problema. Si verifica perché non esiste una catena di trust tra la chiave PGP personale (se una è disponibile) e la chiave PGP AWS CLI. Per ulteriori informazioni, consulta Web of trust
.
-
-
-
È disponibile un ambiente in grado di eseguire file generati da GNU Autotools
come configureeMakefile. Questi file sono ampiamente portabili nelle piattaforme POSIX. -
È installato un interprete Python 3.8 o versioni successive. La versione minima di Python richiesta segue le tempistiche ufficiali indicate in Python support policy for AWS SDKs and Tools
. Un interprete è supportato solo per 6 mesi dopo la data di fine supporto. -
(Facoltativo) Installare tutte le dipendenze della libreria Python di compilazione e runtime di AWS CLI. Il comando
./configureinforma l’utente se mancano delle dipendenze e come installarle.È possibile installare e utilizzare automaticamente queste dipendenze tramite la configurazione, consulta Download delle dipendenze per ulteriori informazioni.
Passaggio 2: configurare l’installazione dell’origine di AWS CLI
La configurazione per la compilazione e l’installazione di AWS CLI viene specificata utilizzando lo script configure. Per la documentazione di tutte le opzioni di configurazione, eseguire lo script configure con l’opzione --help:
Le opzioni più importanti sono:
Posizione di installazione
L’installazione dell’origine di AWS CLI utilizza due directory configurabili per installare AWS CLI.
-
libdir: directory principale in cui verrà installato AWS CLI. Il percorso di installazione di AWS CLI è. Il valore<libdir-value>/aws-clilibdirpredefinito per Linux e macOS è/usr/local/lib, pertanto la directory di installazione predefinita è./usr/local/lib/aws-cli -
bindir: directory in cui sono installati gli eseguibili AWS CLI. Il percorso predefinito è/usr/local/bin.
Le seguenti opzioni configure controllano le directory utilizzate:
-
--prefix: imposta il prefisso di directory da utilizzare per l’installazione. Il valore predefinito per Linux e macOS è/usr/local. -
--libdir: imposta lalibdirda utilizzare per l’installazione di AWS CLI. Il valore predefinito è<prefix-value>/lib. Se entrambi--libdire--prefixnon sono specificati, l’impostazione predefinita per Linux e macOS è/usr/local/lib/. -
--bindir: imposta labindirda utilizzare per l’installazione degli eseguibili AWS CLIawseaws_completer. Il valore predefinito è<prefix-value>/bin. Se entrambibindire--prefixnon sono specificati, l’impostazione predefinita per Linux e macOS è/usr/local/bin/.
Interprete Python
Nota
Si consiglia vivamente di specificare l’interprete Python durante l’installazione per Windows.
Lo script ./configure seleziona automaticamente un interprete Python 3.8 o versioni successive installato da utilizzare per la compilazione e l’esecuzione di AWS CLI utilizzando la macro Autoconf AM_PATH_PYTHON
L’interprete Python da utilizzare può essere impostato in modo esplicito utilizzando la variabile di ambiente PYTHON durante l’esecuzione dello script configure:
Download delle dipendenze
Per impostazione predefinita, è necessario che tutte le dipendenze di compilazione e runtime di AWS CLI siano già installate nel sistema. Sono incluse le dipendenze della libreria Python. Tutte le dipendenze vengono controllate durante l’esecuzione dello script configure e se nel sistema mancano delle dipendenze Python, lo script configure genera errori.
Il seguente codice di esempio genera errori quando nel sistema mancano le dipendenze:
Per installare automaticamente le dipendenze Python richieste, utilizzare l’opzione --with-download-deps. Quando si utilizza questo flag, il processo di compilazione esegue le seguenti operazioni:
-
Salta il controllo delle dipendenze della libreria Python.
-
Configura le impostazioni per scaricare tutte le dipendenze Python richieste e utilizzare solo le dipendenze scaricate per compilare AWS CLI durante la compilazione di
make.
Il seguente comando configure di esempio utilizza l’opzione --with-download-deps per scaricare e utilizzare le dipendenze Python:
Tipo di installazione
Il processo di installazione dall’origine supporta i seguenti tipi di installazione:
-
system-sandbox: (impostazione predefinita) crea un ambiente virtuale Python isolato, installa AWS CLI nell’ambiente virtuale ed effettua il collegamento simbolico agli eseguibiliawseaws_completernell’ambiente virtuale. Questa installazione di AWS CLI dipende direttamente dall’interprete Python selezionato per il runtime.Questo è un meccanismo di installazione leggero per installare AWS CLI su un sistema e segue le best practice di Python eseguendo il sandbox dell’installazione in un ambiente virtuale. Questa installazione è destinata ai clienti che desiderano installare AWS CLI dall’origine nel modo più semplice possibile, con l’installazione abbinata all’installazione di Python.
-
portable-exe: blocca AWS CLI in un eseguibile standalone che può essere distribuito in ambienti con architetture simili. Questo è lo stesso processo utilizzato per generare gli eseguibili ufficiali predefiniti di AWS CLI.portable-exeblocca in una copia dell’interprete Python scelto nel passaggioconfigureda utilizzare per il runtime di AWS CLI. Questo consente di spostarlo su altri computer che potrebbero non avere un interprete Python.Questo tipo di compilazione è utile perché è possibile assicurarsi che l’installazione di AWS CLI non sia abbinata alla versione di Python installata nell’ambiente e distribuire una compilazione su altri sistemi in cui potrebbe non essere installato Python. Questo approccio consente di controllare le dipendenze e la sicurezza degli eseguibili AWS CLI utilizzati.
Per configurare il tipo di installazione, utilizzare l’opzione --with-install-type e specificare il valore portable-exe o system-sandbox.
Il seguente comando ./configure di esempio specifica il valore portable-exe:
Passaggio 3: compilare AWS CLI
Utilizzare il comando make per compilare AWS CLI utilizzando le impostazioni di configurazione:
Nota
Quando si utilizza il comando make, i seguenti passaggi vengono completati in background:
-
Un ambiente virtuale viene creato nella directory di compilazione utilizzando il modulo Python
venv. L’ambiente virtuale viene avviato con una versione di pip fornita nella libreria standard Python . -
Le dipendenze della libreria Python vengono copiate. A seconda se il flag
--with-download-depsè stato specificato nel comandoconfigure, questo passaggio esegue una delle seguenti operazioni:-
--with-download-depsè specificato. Le dipendenze Python eseguono l’installazione pip. Sono inclusewheel,setuptoolse tutte le dipendenze di runtime AWS CLI. Se si sta compilandoportable-exe, viene installatopyinstaller. Questi requisiti sono tutti specificati nei file di blocco generati dapip-compile. -
--with-download-depsnon è specificato. Le librerie Python del pacchetto del sito dell’interprete Python più eventuali script (ad esempiopyinstaller) vengono copiati nell’ambiente virtuale utilizzato per la compilazione.
-
-
pip installviene eseguito direttamente sulla codebase AWS CLI per eseguire una compilazione offline ad albero e AWS CLI viene installato nell’ambiente virtuale di compilazione. Questa installazione utilizza i flag pip --no-build-isolation, --use-feature=in-tree-build , --no-cache-dir e --no-index. -
(Facoltativo) Se
--install-typeè impostato suportable-exenel comandoconfigure, viene compilato un eseguibile standalone utilizzandopyinstaller.
Passaggio 4: installare AWS CLI
Il comando make install installa la compilazione di AWS CLI nella posizione configurata del sistema.
La regola make install supporta la variabile DESTDIR
Nota
Durante l’esecuzione di make install, i seguenti passaggi vengono completati in background
-
Sposta uno dei seguenti elementi nella directory di installazione configurata:
-
Se il tipo di installazione è
system-sandbox, sposta l’ambiente virtuale compilato. -
Se il tipo di installazione è
portable-exe, sposta l’eseguibile standalone compilato.
-
-
Crea collegamenti simbolici per gli eseguibili
awseaws_completernella directory bin configurata.
Passaggio 5: verificare l’installazione di AWS CLI
Confermare di aver installato AWS CLI correttamente utilizzando il seguente comando:
$aws --versionaws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
Se il comando aws non viene riconosciuto, potrebbe essere necessario riavviare il terminale per aggiornare i nuovi collegamenti simbolici. Se riscontri altri problemi dopo l’installazione o la disinstallazione di AWS CLI, consulta le procedure comuni per la risoluzione dei problemi in Risoluzione degli errori per la AWS CLI
Esempi di flussi di lavoro
Questa sezione fornisce alcuni esempi di flussi di lavoro di base per l’installazione dall’origine.
Installazione di base per Linux e macOS
L’esempio seguente è un flusso di lavoro di installazione di base in cui AWS CLI viene installato nella posizione predefinita /usr/local/lib/aws-cli.
$cdpath/to/cli/respository/$./configure$make$make install
Installazione automatizzata per Windows
Nota
È necessario eseguire PowerShell come amministratore per utilizzare questo flusso di lavoro.
MSYS2 può essere utilizzato in modalità automatizzata in un’impostazione CI, consulta Using MSYS2 in CI
Container Alpine Linux
Di seguito è riportato un esempio di Dockerfile che può essere utilizzato per ottenere un’installazione funzionante di AWS CLI in un container Alpine Linux come alternativa ai file binari predefiniti per AlpineAWSCLI_VERSION con il numero di versione AWS CLI desiderato:
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"]
Questa immagine viene compilata e AWS CLI viene invocato da un container simile a quello compilato su Amazon Linux 2:
$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
La dimensione finale di questa immagine è inferiore alla dimensione dell’immagine Docker AWS CLI ufficiale. Per informazioni sull’immagine Docker ufficiale, consulta Esecuzione delle immagini ufficiali di Amazon ECR Public o Docker per la AWS CLI.
Risoluzione degli errori di installazione e disinstallazione della AWS CLI
Per i passaggi della risoluzione dei problemi di installazione, consulta Risoluzione degli errori per la AWS CLI per le procedure più comuni. Per le procedure di risoluzione dei problemi più importanti, consulta Errori di comando non trovato, Il comando aws --version restituisce una versione diversa da quella installata e Il comando aws --version restituisce una versione dopo la disinstallazione della AWS CLI.
Per eventuali problemi non trattati nelle guide alla risoluzione dei problemi, cercare i problemi con l’etichetta source-distribution nel repository AWS CLI
Passaggi successivi
Dopo aver installato AWS CLI, è necessario eseguire la configurazione come indicato in Configurazione di AWS CLI.