Création et installation de l’AWS CLI depuis la source - AWS Command Line Interface

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création et installation de l’AWS CLI depuis la source

Cette rubrique décrit comment installer la dernière version de l’AWS Command Line Interface (AWS CLI) depuis la source, ou effectuer une mise à jour depuis la source sur les systèmes d’exploitation pris en charge.

Pour en savoir plus sur les dernières versions de l’AWS CLI, consultez le journal des modifications de la version 2 de l’AWS CLI sur GitHub.

Important

Les versions 1 et 2 de l’AWS CLI utilisent le même nom de commande aws. Si vous avez déjà installé la version 1 de l’AWS CLI, consultez Guide de migration pour la AWS CLI version 2.

Pourquoi créer depuis la source ?

L’AWS CLI est disponible sous forme de programmes d’installation prédéfinis pour la plupart des plateformes et environnements, et sous forme d’image Docker.

En général, ces programmes d’installation couvrent la plupart des cas d’utilisation. Les instructions d’installation depuis la source sont destinés à vous aider pour les cas d’utilisation non couverts par nos programmes d’installation. En voici certains :

  • Les programmes d’installation prédéfinis ne sont pas compatibles avec votre environnement. Par exemple, ARM 32 bits n’est pas pris en charge par les programmes d’installation prédéfinis.

  • Les programmes d’installation prédéfinis comportent des dépendances qui manquent dans votre environnement. Par exemple, Alpine Linux utilise musl, mais les programmes d’installation actuels nécessitent glibc, ce qui fait que les programmes d’installation prédéfinis ne fonctionnent pas immédiatement.

  • Les programmes d’installation prédéfinis nécessitent des ressources auxquelles votre environnement restreint l’accès. Par exemple, les systèmes de sécurité renforcés peuvent ne pas autoriser l’accès à la mémoire partagée. Ceci est nécessaire pour le programme d’installation aws figé.

  • Les programmes d’installation prédéfinis sont souvent des bloqueurs pour les responsables dans les gestionnaires de packages, car il est préférable de contrôler totalement le processus de création du code et des packages. Créer depuis la source permet aux responsables de la distribution de rationaliser le processus pour maintenir à jour l’AWS CLI. Laisser les responsables gérer permet de fournir aux clients des versions plus récentes de l’AWS CLI lors d’une installation depuis un gestionnaire de packages tiers tel que brew, yum et apt.

  • Les clients qui appliquent des correctifs à la fonctionnalité AWS CLI doivent créer et installer l’AWS CLI depuis la source. Ceci est particulièrement important pour les membres de la communauté qui souhaitent tester les modifications qu’ils ont apportées à la source avant de les partager dans le référentiel AWS CLI GitHub.

Étapes rapides

Note

Tous les exemples de code sont supposés s’exécuter depuis la racine du répertoire source.

Pour créer et installer l’AWS CLI depuis la source, suivez les étapes de cette section. L’AWS CLI utilise GNU Autotools pour installer depuis la source. Dans le cas le plus simple, vous pouvez l’installer l’AWS CLI depuis la source en exécutant les exemples de commandes par défaut depuis la racine du référentiel GitHub de l’AWS CLI.

  1. Configurez toutes les exigences pour votre environnement. Cela inclut de pouvoir exécuter les fichiers générés par GNU Autotools et que Python 3.8 ou version ultérieure soit installé.

  2. Dans votre terminal, accédez au niveau supérieur du dossier source de l’AWS CLI, puis exécutez la commande ./configure. Cette commande vérifie le système pour toutes les dépendances requises, et génère un fichier Makefile pour créer et installer l’AWS CLI en fonction des configurations spécifiées et détectées.

    Linux and macOS

    L’exemple de commande ./configure suivant définit la configuration de la build de l’AWS CLI à l’aide des paramètres par défaut.

    $ ./configure
    Windows PowerShell

    Avant d’exécuter toute commande appelant MSYS2, vous devez conserver votre répertoire de travail actuel :

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

    Utilisez ensuite l’exemple de commande ./configure suivant afin de définir la configuration de la build de l’AWS CLI à l’aide de votre chemin local vers votre exécutable Python, pour une installation dans C:\Program Files\AWSCLI et le téléchargement de toutes les dépendances.

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

    Pour obtenir plus de détails, les options de configuration disponibles et les informations sur les paramètres par défaut, consultez la section Étape 2 : Configuration de l’installation de la source de l’AWS CLI.

  3. Exécutez la commande make. Cette commande génère l’AWS CLI en fonction de vos paramètres de configuration.

    L’exemple de commande make suivant est généré avec les options par défaut utilisant vos paramètres ./configure existants.

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

    Pour obtenir plus de détails et les options de build disponibles, consultez la section Étape 3 : Création de l’AWS CLI.

  4. Exécutez la commande make install. Cette commande installe l’AWS CLI créée à l’emplacement configuré sur votre système.

    L’exemple de commande make install suivant installe l’AWS CLI créée et crée des liens symboliques dans les emplacements configurés, à l’aide des paramètres de commande par défaut.

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

    Après l’installation, ajoutez le chemin vers l’AWS CLI comme suit :

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

    Pour obtenir plus de détails et les options d’installation disponibles, consultez la section Étape 4 : Installation de l’AWS CLI.

  5. Vérifiez que l’AWS CLI est installée correctement à l’aide de la commande suivante :

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

    Pour les étapes de résolution des erreurs d’installation, consultez la section Résolution des erreurs d’installation et de désinstallation de l’AWS CLI.

Étape 1 : Configuration de toutes les exigences

Pour créer l’AWS CLI depuis la source, vous devez remplir les conditions préalables suivantes :

Note

Tous les exemples de code sont supposés s’exécuter depuis la racine du répertoire source.

  1. Téléchargez la source de l’AWS CLI en dupliquant le référentiel AWS CLI sur GitHub ou en téléchargeant l’archive de la source. Suivez l’une des instructions suivantes :

    • Acheminez et clonez le référentiel AWS CLI depuis GitHub. Pour plus d’informations, consultez Fork a repository dans GitHub Docs.

    • Téléchargez la dernière archive de la source à l’adresse https://awscli.amazonaws.com/awscli.tar.gz, puis extrayez le contenu à l’aide des commandes suivantes :

      $ curl "https://awscli.amazonaws.com/awscli.tar.gz" -o "awscli.tar.gz" $ tar -xzf awscli.tar.gz
      Note

      Pour télécharger une version spécifique, utilisez le format de lien suivant : https://awscli.amazonaws.com/awscli-versionnumber.tar.gz

      Par exemple, pour la version 2.10.0, le lien est le suivant : https://awscli.amazonaws.com/awscli-2.10.0.tar.gz

      Les versions source sont disponibles à partir de la version 2.10.0 de l’AWS CLI.

      (Facultatif) Vérification de l’intégrité du fichier zip téléchargé en suivant les étapes ci-après :

      1. Vous pouvez utiliser les étapes suivantes pour vérifier les signatures à l'aide de l'outil GnuPG.

        Les fichiers du package d'installation .zip de l'AWS CLI sont signés de manière chiffrée à l'aide de signatures PGP. En cas de dommage ou d'altération des fichiers, cette vérification échoue et vous ne devez pas poursuivre l'installation.

      2. Téléchargez et installez la commande gpg à l'aide de votre gestionnaire de packages. Pour plus d’informations sur GnuPG, consultez le site Web GnuPG.

      3. Pour créer le fichier de clé publique, créez un fichier texte et collez le texte suivant.

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

        Pour référence, les détails de la clé publique sont les suivants.

        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. Importez la clé publique de l'AWS CLI à l'aide de la commande suivante, en remplaçant public-key-file-name par le nom du fichier de clé publique que vous avez créé.

        $ 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. Téléchargez le fichier de signature AWS CLI du package téléchargé à l’adresse https://awscli.amazonaws.com/awscli.tar.gz.sig. Celui-ci a le même chemin d’accès et le même nom que le fichier archive auquel il correspond, mais son extension est .sig. Enregistrez-le avec le même chemin que le fichier archive. Ou utilisez le bloc de commande suivant :

        $ curl awscliv2.sig https://awscli.amazonaws.com/ -o awscli.tar.gz.sig
      6. Vérifiez la signature en transmettant les noms de fichiers .sig et .zip téléchargés sous forme de paramètres à la commande gpg.

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

        La sortie doit ressembler à ce qui suit :

        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
        Important

        L'avertissement mentionné dans la sortie est attendu et n'indique pas de problème. Cet avertissement est dû au fait qu'il n'y a pas de chaîne de confiance entre votre clé PGP personnelle (si vous en avez une) et la clé PGP de l'AWS CLI. Pour plus d’informations, consultez Web of trust.

  2. Vous disposez d’un environnement capable d’exécuter des fichiers générés par GNU Autotools tels que configure et Makefile. Ces fichiers sont largement portables sur les plateformes POSIX.

    Linux and macOS

    Si Autotools n’est pas encore installé dans votre environnement ou si vous devez le mettre à jour, suivez les instructions d’installation figurant dans How do I install the Autotools (as user)? ou Basic Installation dans la documentation GNU.

    Windows PowerShell
    Avertissement

    Si vous travaillez dans un environnement Windows, nous vous conseillons d’utiliser les programmes d’installation prédéfinis. Pour obtenir les instructions d’installation sur les programmes d’installation prédéfinis, consultez Installation de la dernière version de l’AWS CLI ou mise à jour vers celle-ci.

    Windows n’étant pas fourni avec un shell compatible POSIX, vous devez installer un logiciel supplémentaire pour installer l’AWS CLI depuis la source. MSYS2 fournit un ensemble d’outils et de bibliothèques permettant de créer et d’installer des logiciels Windows, en particulier pour les scripts basés sur POSIX utilisés par Autotools.

    1. Installez MSYS2. Pour en savoir plus sur l’installation et l’utilisation de MSYS2, consultez les instructions d’installation et d’utilisation de la documentation MSYS2.

    2. Ouvrez le terminal MSYS2 et installez Autotools à l’aide de la commande suivante.

      $ pacman -S autotools
    Note

    Quand vous utilisez les exemples de code de configuration, de build et d’installation présentés dans ce guide pour Windows, le chemin d’installation MSYS2 par défaut C:\msys64\usr\bin\bash est présumé. Lorsque vous appellerez MSYS2 dans PowerShell, vous utiliserez le format suivant, avec la commande bash entre guillemets :

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

    L’exemple de commande suivant appelle la commande ./configure :

    PS C:\> C:\msys64\usr\bin\bash -lc "./configure"
  3. Un interpréteur Python 3.8 ou version ultérieure est installé. La version Python minimale requise suit les mêmes échéances que la politique officielle de support de Python pour les SDK et les outils AWS. Un interprète n’est pris en charge que six mois après la date de fin de support.

  4. (Facultatif) Installez toutes les dépendances de build et d’exécution de l’AWS CLI de la bibliothèque Python. La commande ./configure vous indique s’il vous manque des dépendances et comment les installer.

    Vous pouvez installer et utiliser automatiquement ces dépendances via la configuration. Consultez Téléchargement de dépendances pour plus d’informations.

Étape 2 : Configuration de l’installation de la source de l’AWS CLI

La configuration pour créer et installer l’AWS CLI est spécifiée à l’aide du script configure. Pour la documentation de toutes les options de configuration, exécutez le script configure avec l’option --help :

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

Emplacement d’installation

L’installation de la source de l’AWS CLI utilise deux répertoires configurables pour installer l’AWS CLI :

  • libdir : répertoire parent dans lequel l’AWS CLI sera installée. Le chemin d’accès à l’installation de l’AWS CLI est <libdir-value>/aws-cli. La valeur par défaut libdir pour Linux et macOS est /usr/local/lib, ce qui fait que le répertoire d’installation par défaut est /usr/local/lib/aws-cli.

  • bindir : répertoire dans lequel les exécutables de l’AWS CLI sont installés. L'emplacement par défaut est /usr/local/bin.

Les options configure suivantes contrôlent les répertoires utilisés :

  • --prefix : définit le préfixe de répertoire à utiliser pour l’installation. La valeur par défaut pour Linux et macOS est /usr/local.

  • --libdir : définit le libdir à utiliser pour installer l’AWS CLI. La valeur par défaut est <prefix-value>/lib. Si ni --libdir ni --prefix ne sont spécifiés, la valeur par défaut pour Linux et macOS est /usr/local/lib/.

  • --bindir : définit le bindir à utiliser pour installer les exécutables aws et aws_completer de l’AWS CLI. La valeur par défaut est <prefix-value>/bin. Si ni bindir ni --prefix ne sont spécifiés, la valeur par défaut pour Linux et macOS est /usr/local/bin/.

Linux and macOS

L’exemple de commande suivant utilise l’option --prefix afin d’effectuer une installation de l’AWS CLI pour un utilisateur local. Cette commande installe l’AWS CLI dans $HOME/.local/lib/aws-cli et les exécutables dans $HOME/.local/bin :

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

L’exemple de commande suivant utilise l’option --libdir pour installer l’AWS CLI en tant qu’application complémentaire dans le répertoire /opt. Cette commande installe l’AWS CLI dans /opt/aws-cli et les exécutables dans leur emplacement par défaut /usr/local/bin.

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

L’exemple de commande suivant utilise l’option --prefix afin d’effectuer une installation de l’AWS CLI pour un utilisateur local. Cette commande installe l’AWS CLI dans $HOME/.local/lib/aws-cli et les exécutables dans $HOME/.local/bin :

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

L’exemple de commande suivant utilise l’option --libdir pour installer l’AWS CLI en tant qu’application complémentaire dans le répertoire /opt. Cette commande installe l’AWS CLI dans C:\Program Files\AWSCLI\opt\aws-cli.

Interpréteur Python

Note

Il est vivement recommandé de spécifier l’interpréteur Python lors d’une installation pour Windows.

Le script ./configure sélectionne automatiquement un interpréteur Python 3.8 (ou version ultérieure) installé afin de l’utiliser pour créer et exécuter l’AWS CLI à l’aide de la macro Autoconf AM_PATH_PYTHON.

L’interpréteur Python à utiliser peut être défini explicitement à l’aide de la variable d’environnement PYTHON lors de l’exécution du 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"

Téléchargement de dépendances

Par défaut, il est nécessaire que toutes les dépendances de build et d’exécution de l’AWS CLI soient déjà installées dans le système. Cela inclut toutes les dépendances des bibliothèques Python. Toutes les dépendances sont vérifiées lors de l’exécution du script configure, et si n’importe quelle dépendance Python est absente du système, le script configure génère une erreur.

L’exemple de code suivant génère des erreurs lorsque des dépendances sont absentes de votre système :

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

Pour installer automatiquement les dépendances Python requises, utilisez l’option --with-download-deps. Quand vous utilisez cet indicateur, le processus de génération effectue les opérations suivantes :

  • Ignore la vérification des dépendances de la bibliothèque Python.

  • Configure les paramètres pour télécharger toutes les dépendances Python requises et utilise uniquement les dépendances téléchargées pour créer l’AWS CLI pendant la build make.

L’exemple de commande de configuration suivant utilise l’option --with-download-deps afin de télécharger et d’utiliser les dépendances Python :

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

Type d’installation

Le processus d’installation de la source prend en charge les types d’installation suivants :

  • system-sandbox (Par défaut) : crée un environnement virtuel Python isolé, installe l’AWS CLI dans celui-ci, et crée des liens symboliques vers les exécutables aws et aws_completer dans l’environnement virtuel. Cette installation de l’AWS CLI dépend directement de l’interpréteur Python sélectionné pour son exécution.

    Ce mécanisme d’installation léger permet d’avoir l’AWS CLI installé sur un système, et suit les bonnes pratiques Python en plaçant l’installation dans un environnement virtuel de test. Cette option est destinée aux clients qui souhaitent installer l’AWS CLI depuis la source de la manière la plus fluide possible, avec une installation couplée à votre installation de Python.

  • portable-exe : fige le fichier AWS CLI dans un exécutable autonome qui peut être distribué dans des environnements d’architectures similaires. Il s’agit du même processus que celui utilisé pour générer les exécutables prédéfinis officiels de l’AWS CLI. portable-exe se fige dans une copie de l’interpréteur Python choisi à l’étape configure afin d’être utilisé pour l’exécution du AWS CLI. Cela permet de le déplacer vers d’autres machines qui ne disposent peut-être pas d’un interpréteur Python.

    Ce type de build est utile, car vous pouvez vous assurer que votre installation de l’AWS CLI n’est pas couplée à la version Python installée dans l’environnement, et vous pouvez distribuer une build sur un autre système sur lequel Python n’est peut-être pas déjà installé. Cela vous permet de contrôler les dépendances et la sécurité des exécutables de l’AWS CLI que vous utilisez.

Pour configurer le type d’installation, utilisez l’option --with-install-type et spécifiez la valeur portable-exe ousystem-sandbox.

L’exemple de commande ./configure suivant spécifie une valeur 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"

Étape 3 : Création de l’AWS CLI

Utilisez la commande make pour créer l’AWS CLI à l’aide de vos paramètres de configuration :

Linux and macOS
$ make
Windows PowerShell
PS C:\> C:\msys64\usr\bin\bash -lc "make"
Note
Lorsque vous utilisez la commande make, les étapes suivantes sont effectuées en arrière-plan :
  1. Un environnement virtuel est créé dans le répertoire de la build à l’aide du module Python venv. L’environnement virtuel est initialisé avec une version de pip fournie dans la bibliothèque standard Python.

  2. Copie les dépendances de la bibliothèque Python. Selon que l’indicateur --with-download-deps est spécifié ou non dans la commande configure, cette étape effectue l’une des opérations suivantes :

    • L’indicateur --with-download-deps est spécifié. Les dépendances Python sont installées par pip. Cela inclut wheel, setuptools et toutes les dépendances d’exécution de l’AWS CLI. Si vous générez l’exécutable portable-exe, pyinstaller est installé. Ces exigences sont toutes spécifiées dans les fichiers de verrouillage générés à partir de pip-compile.

    • L’indicateur --with-download-deps n’est pas spécifié. Les bibliothèques Python du package du site de l’interpréteur Python ainsi que tous les scripts (par exemple, pyinstaller) sont copiés dans l’environnement virtuel utilisé pour la build.

  3. Exécute pip install directement sur la base de code de l’AWS CLI pour créer une build hors ligne dans l’arborescence et installer l’AWS CLI dans l’environnement virtuel de génération. Cette installation utilise les indicateurs pip --no-build-isolation, --use-feature=in-tree-build, --no-cache-dir et --no-index.

  4. (Facultatif) Si le paramètre --install-type est défini sur portable-exe dans la commande configure, génère un exécutable autonome à l’aide de pyinstaller.

Étape 4 : Installation de l’AWS CLI

La commande make install installe l’AWS CLI générée à l’emplacement configuré sur le système.

Linux and macOS

L’exemple de commande suivant installe l’AWS CLI à l’aide de vos paramètres de configuration et de build :

$ make install
Windows PowerShell

L’exemple de commande suivant installe l’AWS CLI à l’aide de vos paramètres de configuration et de build, puis ajoute une variable d’environnement avec le chemin de l’AWS CLI.

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

La règle make install prend en charge la variable DESTDIR. Lorsqu’elle est spécifiée, cette variable préfixe le chemin spécifié au chemin d’installation déjà configuré lors de l’installation de l’AWS CLI. Par défaut, aucune valeur n’est définie pour cette variable.

Linux and macOS

L’exemple de code suivant utilise un indicateur --prefix=/usr/local pour configurer un emplacement d’installation, puis modifie cette destination avec DESTDIR=/tmp/stage pour la commande make install. Ces commandes entraînent l’installation de l’AWS CLI à l’emplacement /tmp/stage/usr/local/lib/aws-cli, avec ses exécutables dans /tmp/stage/usr/local/bin.

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

L’exemple de code suivant utilise un indicateur --prefix=\awscli pour configurer un emplacement d’installation, puis modifie cette destination avec DESTDIR=C:\Program Files pour la commande make install. Ces commandes entraînent l’installation de l’AWS CLI à l’emplacement C:\Program Files\awscli.

$ ./configure --prefix=\awscli $ make $ make DESTDIR='C:\Program Files' install
Note
Lorsque vous exécutez make install, les étapes suivantes sont effectuées en arrière-plan :
  1. Déplace l’un des éléments suivants vers le répertoire d’installation configuré :

    • Si le type d’installation est system-sandbox, déplace l’environnement virtuel généré.

    • Si le type d’installation est un portable-exe, déplace l’exécutable autonome généré.

  2. Crée des liens symboliques pour les exécutables aws et aws_completer dans le répertoire bin configuré.

Étape 5 : Vérification de l’installation de l’AWS CLI

Vérifiez que l’AWS CLI est installée correctement en utilisant la commande suivante :

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

Si la commande aws n’est pas reconnue, vous devrez peut-être redémarrer votre terminal pour mettre à jour les nouveaux liens symboliques. Si vous rencontrez d’autres problèmes après l’installation ou la désinstallation de l’AWS CLI, consultez Résolution des erreurs liées au AWS CLI pour connaître les étapes courantes de résolution de problèmes.

Exemples de flux de travail

Cette section fournit des exemples de flux de travail de base pour une installation depuis la source.

Installation de base sous Linux et macOS

L’exemple suivant est un flux de travail d’installation de base dans lequel l’AWS CLI est installée à l’emplacement par défaut /usr/local/lib/aws-cli.

$ cd path/to/cli/respository/ $ ./configure $ make $ make install

Installation automatisée sous Windows

Note

Vous devez exécuter PowerShell en tant qu’administrateur pour utiliser ce flux de travail.

Il est possible d’utiliser MSYS2 de façon automatisée dans un paramètre CI. Consultez Using MSYS2 in CI dans la documentation MSYS2.

Downloaded Tarball

Téléchargez le fichier awscli.tar.gz, extrayez-le, puis installez l’AWS CLI. Lorsque vous utilisez les commandes suivantes, remplacez les chemins suivants :

  • C:\msys64\usr\bin\bash avec l’emplacement de votre chemin vers MSYS2.

  • .\awscli-2.x.x\ avec le nom de dossier du fichier awscli.tar.gz extrait.

  • PYTHON='C:\path\to\python.exe' avec votre chemin local vers Python.

L’exemple de code suivant automatise la génération et l’installation de l’AWS CLI depuis PowerShell à l’aide de MSYS2, et indique l’installation locale de Python à utiliser :

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

Téléchargez le fichier awscli.tar.gz, extrayez-le, puis installez l’AWS CLI. Lorsque vous utilisez les commandes suivantes, remplacez les chemins suivants :

  • C:\msys64\usr\bin\bash avec l’emplacement de votre chemin vers MSYS2.

  • C:path\to\cli\repository\ avec le chemin d’accès à votre référentiel AWS CLI cloné depuis GitHub. Pour plus d’informations, consultez Fork a repository dans GitHub Docs.

  • PYTHON='C:\path\to\python.exe' avec votre chemin local vers Python.

L’exemple de code suivant automatise la génération et l’installation de l’AWS CLI depuis PowerShell à l’aide de MSYS2, et indique l’installation locale de Python à utiliser :

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

Conteneur Alpine Linux

Vous trouverez ci-dessous un exemple de Dockerfile qui peut être utilisé pour obtenir une installation fonctionnelle de l’AWS CLI dans un conteneur Alpine Linux comme alternative aux fichiers binaires prédéfinis pour Alpine. Lorsque vous utilisez cet exemple, remplacez AWSCLI_VERSION par le numéro de version souhaité de l’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"]

Cette image est générée, puis invoquée par l’AWS CLI depuis un conteneur similaire à celui créé sur 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 taille finale de cette image est inférieure à celle de l’image Docker officielle de l’AWS CLI. Pour en savoir plus sur l’image Docker officielle, consultez Exécution des images officielles Amazon ECR Public ou Docker pour l’AWS CLI.

Résolution des erreurs d’installation et de désinstallation de l’AWS CLI

Pour connaître les étapes de résolution des problèmes d’erreurs d’installation courantes, consultez Résolution des erreurs liées au AWS CLI. Pour connaître les étapes de résolution de problèmes les plus pertinentes, consultez Erreurs de type Commande introuvable, La commande « aws --version » renvoie une version différente de celle que vous avez installée et La commande « aws --version » renvoie une version après avoir désinstallé le AWS CLI.

Pour tout problème non traité dans les guides de résolution des problèmes, recherchez les problèmes avec l’étiquette source-distribution dans le référentiel de l’AWS CLI sur GitHub. Si aucun problème existant ne couvre vos erreurs, créez un nouveau problème pour bénéficier de l’aide des responsables de l’AWS CLI.

Étapes suivantes

Après avoir installé l’AWS CLI, vous devez effectuer une Configuration du AWS CLI.