Compilazione e installazione di AWS CLI dall’origine - AWS Command Line Interface

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 su GitHub.

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.

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 aws bloccato.

  • 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, yum e apt.

  • 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 per l’installazione dall’origine. Nel caso più semplice, AWS CLI può essere installato dall’origine eseguendo i comandi di esempio predefiniti dalla root del repository AWS CLI in GitHub.

  1. 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.

  2. 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 un Makefile per la compilazione e l’installazione di AWS CLI in base alle configurazioni rilevate e specificate.

    Linux and macOS

    Il seguente comando ./configure di esempio imposta la configurazione della compilazione per AWS CLI utilizzando le impostazioni predefinite.

    $ ./configure
    Windows PowerShell

    Prima di eseguire qualsiasi comando che chiami MSYS2, è necessario proteggere la directory di lavoro corrente:

    PS C:\> $env:CHERE_INVOKING = 'yes'

    Quindi utilizzare il seguente comando ./configure di esempio per impostare la configurazione della compilazione per AWS CLIutilizzando il percorso locale dell’eseguibile Python, installando in C:\Program Files\AWSCLI e scaricando tutte le dipendenze.

    PS C:\> C:\msys64\usr\bin\bash -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps "

    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.

  3. Esegui il comando make. Questo comando compila AWS CLI in base alle impostazioni di configurazione.

    Il seguente comando make di esempio compila con le opzioni predefinite utilizzando le impostazioni ./configure esistenti.

    Linux and macOS
    $ make
    Windows PowerShell
    PS C:\> C:\msys64\usr\bin\bash -lc "make"

    Per i dettagli e le opzioni di compilazione disponibili, consulta la sezione Passaggio 3: compilare AWS CLI.

  4. Esegui il comando make install. Questo comando installa la compilazione di AWS CLI nella posizione configurata del sistema.

    Il seguente comando make install di esempio installa la compilazione di AWS CLI e crea collegamenti simbolici nelle posizioni configurate utilizzando le impostazioni di comando predefinite.

    Linux and macOS
    $ make install
    Windows PowerShell
    PS C:\> C:\msys64\usr\bin\bash -lc "make install"

    Dopo l’installazione, aggiungere il percorso ad AWS CLI utilizzando il seguente comando:

    PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\"

    Per i dettagli e le opzioni di installazione disponibili, consulta la sezione Passaggio 4: installare AWS CLI.

  5. Confermare di aver installato AWS CLI correttamente utilizzando il seguente comando:

    $ aws --version aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

    Per 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.

  1. 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.gz
      Nota

      Per scaricare una versione specifica, utilizzare il seguente formato di collegamento: https://awscli.amazonaws.com/awscli-versionnumber.tar.gz

      Ad esempio, per la versione 2.10.0 il collegamento è: https://awscli.amazonaws.com/awscli-2.10.0.tar.gz

      Le 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:

      1. Puoi utilizzare le fasi seguenti per verificare le firme tramite lo strumento GnuPG.

        I file .zip del 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.

      2. Scaricare e installare il comando gpg utilizzando il programma di gestione dei pacchetti. Per ulteriori informazioni su GnuPG, consulta il sito Web GnuPG.

      3. 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
      4. Importare la chiave pubblica AWS CLI con il comando seguente, sostituendo public-key-file-name con il nome file della chiave pubblica creata.

        $ 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. 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
      6. Verifica la firma, passando entrambi i nomi file .sig e .zip scaricati come parametri del comando gpg.

        $ gpg --verify awscliv2.sig awscli.tar.gz

        L'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 475C
        Importante

        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.

  2. È disponibile un ambiente in grado di eseguire file generati da GNU Autotools come configure e Makefile. Questi file sono ampiamente portabili nelle piattaforme POSIX.

    Linux and macOS

    Se Autotools non è installato nell’ambiente o è necessario aggiornarlo, seguire le istruzioni di installazione disponibili in How do I install the Autotools (as user)? o Basic Installation nella Documentazione di GNU.

    Windows PowerShell
    avvertimento

    Se si utilizza un ambiente Windows, è consigliabile utilizzare i programmi di installazione predefiniti. Per le istruzioni di installazione dei programmi di installazione predefiniti, consulta Installazione o aggiornamento dell’ultima versione di AWS CLI.

    Poiché Windows non dispone di una shell compatibile con POSIX, è necessario installare un software aggiuntivo per installare AWS CLI dall’origine. MSYS2 fornisce una raccolta di strumenti e librerie per aiutare a compilare e installare software Windows, in particolare per lo scripting basato su POSIX utilizzato da Autotools.

    1. Installare MSYS2. Per informazioni sull’installazione e sull’utilizzo di MSYS2, consulta le istruzioni di installazione e utilizzo nella Documentazione di MSYS2.

    2. Aprire il terminale MSYS2 e installare Autotools utilizzando il seguente comando.

      $ pacman -S autotools
    Nota

    Quando si utilizzano gli esempi di codice di configurazione, compilazione e installazione riportati in questa guida per Windows, si presuppone che il percorso di installazione predefinito di MSYS2 sia C:\msys64\usr\bin\bash. Quando si chiama MSYS2 all’interno di PowerShell, si utilizza il seguente formato, con il comando bash tra virgolette:

    PS C:\> C:\msys64\usr\bin\bash -lc "command example"

    Il seguente comando di esempio chiama il comando ./configure.

    PS C:\> C:\msys64\usr\bin\bash -lc "./configure"
  3. È 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.

  4. (Facoltativo) Installare tutte le dipendenze della libreria Python di compilazione e runtime di AWS CLI. Il comando ./configure informa 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:

Linux and macOS
$ ./configure --help
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --help"

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 è <libdir-value>/aws-cli. Il valore libdir predefinito 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 la libdir da utilizzare per l’installazione di AWS CLI. Il valore predefinito è <prefix-value>/lib. Se entrambi --libdir e --prefix non sono specificati, l’impostazione predefinita per Linux e macOS è /usr/local/lib/.

  • --bindir: imposta la bindir da utilizzare per l’installazione degli eseguibili AWS CLI aws e aws_completer. Il valore predefinito è <prefix-value>/bin. Se entrambi bindir e --prefix non sono specificati, l’impostazione predefinita per Linux e macOS è /usr/local/bin/.

Linux and macOS

Il seguente comando di esempio utilizza l’opzione --prefix per eseguire un’installazione utente locale di AWS CLI. Questo comando installa AWS CLI in $HOME/.local/lib/aws-cli e gli eseguibili in $HOME/.local/bin:

$ ./configure --prefix=$HOME/.local

Il seguente comando di esempio utilizza l’opzione --libdir per installare AWS CLI come applicazione aggiuntiva nella directory /opt. Questo comando installa AWS CLI in /opt/aws-cli e gli eseguibili nella posizione predefinita /usr/local/bin.

$ ./configure --libdir=/opt
Windows PowerShell

Il seguente comando di esempio utilizza l’opzione --prefix per eseguire un’installazione utente locale di AWS CLI. Questo comando installa AWS CLI in $HOME/.local/lib/aws-cli e gli eseguibili in $HOME/.local/bin:

$ C:\msys64\usr\bin\bash -lc "./configure --prefix='C:\Program Files\AWSCLI'"

Il seguente comando di esempio utilizza l’opzione --libdir per installare AWS CLI come applicazione aggiuntiva nella directory /opt. Questo comando installa AWS CLI in C:\Program Files\AWSCLI\opt\aws-cli.

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:

Linux and macOS
$ PYTHON=/path/to/python ./configure
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "PYTHON='C:\path\to\python' ./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:

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."

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:

Linux and macOS
$ ./configure --with-download-deps
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --with-download-deps"

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 eseguibili aws e aws_completer nell’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-exe blocca in una copia dell’interprete Python scelto nel passaggio configure da 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:

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"

Passaggio 3: compilare AWS CLI

Utilizzare il comando make per compilare AWS CLI utilizzando le impostazioni di configurazione:

Linux and macOS
$ make
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "make"
Nota
Quando si utilizza il comando make, i seguenti passaggi vengono completati in background:
  1. 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.

  2. Le dipendenze della libreria Python vengono copiate. A seconda se il flag --with-download-deps è stato specificato nel comando configure, questo passaggio esegue una delle seguenti operazioni:

    • --with-download-deps è specificato. Le dipendenze Python eseguono l’installazione pip. Sono incluse wheel, setuptools e tutte le dipendenze di runtime AWS CLI. Se si sta compilando portable-exe, viene installato pyinstaller. Questi requisiti sono tutti specificati nei file di blocco generati da pip-compile.

    • --with-download-deps non è specificato. Le librerie Python del pacchetto del sito dell’interprete Python più eventuali script (ad esempio pyinstaller) vengono copiati nell’ambiente virtuale utilizzato per la compilazione.

  3. pip install viene 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.

  4. (Facoltativo) Se --install-type è impostato su portable-exe nel comando configure, viene compilato un eseguibile standalone utilizzando pyinstaller.

Passaggio 4: installare AWS CLI

Il comando make install installa la compilazione di AWS CLI nella posizione configurata del sistema.

Linux and macOS

Il seguente comando di esempio installa AWS CLI utilizzando le impostazioni di configurazione e compilazione:

$ make install
Windows PowerShell

Il seguente comando di esempio installa AWS CLI utilizzando le impostazioni di configurazione e compilazione, quindi aggiunge una variabile di ambiente con il percorso per AWS CLI:

PS C:\> C:\msys64\usr\bin\bash -lc " make install " PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\"

La regola make install supporta la variabile DESTDIR. Quando è specificata, questa variabile imposta per il percorso specificato il prefisso del percorso di installazione già configurato durante l’installazione di AWS CLI. Per impostazione predefinita, non è impostato alcun valore per questa variabile.

Linux and macOS

Il seguente codice di esempio utilizza un flag --prefix=/usr/local per configurare una posizione di installazione, quindi modifica tale destinazione utilizzando DESTDIR=/tmp/stage per il comando make install. Questi comandi eseguono l’installazione di AWS CLI in /tmp/stage/usr/local/lib/aws-cli e posizionano i relativi eseguibili in /tmp/stage/usr/local/bin.

$ ./configure --prefix=/usr/local $ make $ make DESTDIR=/tmp/stage install
Windows PowerShell

Il seguente codice di esempio utilizza un flag --prefix=\awscli per configurare una posizione di installazione, quindi modifica tale destinazione utilizzando DESTDIR=C:\Program Files per il comando make install. Questi comandi eseguono l’installazione di AWS CLI in C:\Program Files\awscli.

$ ./configure --prefix=\awscli $ make $ make DESTDIR='C:\Program Files' install
Nota
Durante l’esecuzione di make install, i seguenti passaggi vengono completati in background
  1. 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.

  2. Crea collegamenti simbolici per gli eseguibili aws e aws_completer nella directory bin configurata.

Passaggio 5: verificare l’installazione di AWS CLI

Confermare di aver installato AWS CLI correttamente utilizzando il seguente comando:

$ aws --version aws-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.

$ cd path/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 nella Documentazione di MSYS2 per ulteriori informazioni.

Downloaded Tarball

Scaricare il file awscli.tar.gz, estrarre e installare AWS CLI. Quando si utilizzano i comandi seguenti, sostituire i percorsi seguenti:

  • C:\msys64\usr\bin\bash con la posizione del percorso MSYS2.

  • .\awscli-2.x.x\ con il nome della cartella awscli.tar.gz estratta.

  • PYTHON='C:\path\to\python.exe' con il percorso Python locale.

Il seguente codice di esempio automatizza la compilazione e l’installazione di AWS CLI da PowerShell utilizzando MSYS2 e specifica quale installazione locale di Python utilizzare:

PS C:\> curl "https://awscli.amazonaws.com/awscli.tar.gz" -o "awscliv2.zip" # 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.27.41 Python/3.11.6 Windows/10 source-sandbox/AMD64
GitHub Repository

Scaricare il file awscli.tar.gz, estrarre e installare AWS CLI. Quando si utilizzano i comandi seguenti, sostituire i percorsi seguenti:

  • C:\msys64\usr\bin\bash con la posizione del percorso MSYS2.

  • C:path\to\cli\repository\ con il percorso del repository AWS CLI clonato in GitHub. Per ulteriori informazioni, consulta Fork a repo nella Documentazione di GitHub

  • PYTHON='C:\path\to\python.exe' con il percorso Python locale.

Il seguente codice di esempio automatizza la compilazione e l’installazione di AWS CLI da PowerShell utilizzando MSYS2 e specifica quale installazione locale di Python utilizzare:

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

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 Alpine. Quando si utilizza questo esempio, sostituire AWSCLI_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 --version aws-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 in GitHub. Se nessun problema esistente è relativo agli errori riscontrati, creare un nuovo problema per ricevere assistenza dai manutentori AWS CLI.

Passaggi successivi

Dopo aver installato AWS CLI, è necessario eseguire la configurazione come indicato in Configurazione di AWS CLI.