

**本文档仅适用于 AWS CLI 版本 1。**

我们已宣布即将终止对 AWS CLI 版本 1 的支持。建议您迁移到 AWS CLI 版本 2。有关日期、其它详细信息以及如何迁移的信息，请参阅[公告](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/)。有关 AWS CLI 版本 2 的相关文档，请参阅[版本 2 用户指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

# 在 macOS 上安装、更新和卸载 AWS CLI 版本 1
<a name="install-macos"></a>

您可以使用捆绑安装程序或 AWS Command Line Interface 安装 AWS CLI (`pip`) 版本 1 及其对 macOS 的依赖项。

**Topics**
+ [先决条件](#install-macosos-prereq)
+ [使用捆绑安装程序在 macOS 上安装、更新和卸载 AWS CLI 版本 1](#install-macosos-bundled)
+ [使用 pip 安装、更新和卸载 AWS CLI 版本 1](#awscli-install-osx-pip)
+ [AWS CLI 安装和卸载错误故障排除](#awscli-install-osx-tshoot)

## 先决条件
<a name="install-macosos-prereq"></a>

必须先确保已安装 Python 3.8 或更高版本，然后才能在 macOS 上安装 AWS CLI 版本 1。有关安装说明，请参阅 Python 的*初学者指南* 中的[下载 Python](https://wiki.python.org/moin/BeginnersGuide/Download) 页面。

**Python 版本支持矩阵**


| AWS CLI version | 支持的 Python 版本 | 
| --- | --- | 
| 1.39.0 – 当前 | Python 3.9\$1 | 
| 1.32.0 – 1.38.38 | Python 3.8\$1 | 
| 1.27.0 – 1.31.x | Python 3.7\$1 | 
| 1.20.0 – 1.26.x | Python 3.6\$1 | 
| 1.19.0 — 1.19.x | Python 2.7\$1、Python 3.6\$1 | 
| 1.17 – 1.18.x | Python 2.7\$1、Python 3.4\$1 | 
| 1.0 – 1.16.x | Python 2.6 及更早版本，Python 3.3 及更早版本 | 

## 使用捆绑安装程序在 macOS 上安装、更新和卸载 AWS CLI 版本 1
<a name="install-macosos-bundled"></a>

在 Linux 或 macOS 上，可以使用捆绑安装程序来安装 AWS Command Line Interface (AWS CLI) 的版本 1。捆绑安装程序包含所有依赖项，并可以离线使用。

捆绑安装程序不支持安装到包含空格的路径。

**Topics**
+ [使用捆绑安装程序（带有 `sudo`）安装 AWS CLI 版本 1](#install-macosos-bundled-sudo)
+ [使用捆绑安装程序（不带有 `sudo`）安装 AWS CLI 版本 1](#install-macosos-bundled-no-sudo)
+ [卸载 AWS CLI 版本 1 捆绑安装程序](#install-macosos-bundled-uninstall)

### 使用捆绑安装程序（带有 `sudo`）安装 AWS CLI 版本 1
<a name="install-macosos-bundled-sudo"></a>

以下步骤使您能够从任何版本的 macOS 上的命令行安装 AWS CLI 版本 1。

以下是可剪切和粘贴以作为一组命令运行的安装命令的摘要。

**对于最新版本的 AWS CLI**，请使用以下命令块：

```
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
```

**对于特定版本的 AWS CLI，**在文件名后附加一个连字符和版本号。在本示例中，版本 *1.16.312* 的文件名为 `awscli-bundle-1.16.312.zip`，这会生成以下命令：

```
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
```

**要使用捆绑安装程序安装 AWS CLI 版本 1**

1. 使用以下方式之一下载 AWS CLI 版本 1 捆绑安装程序：
   + 使用 `curl` 命令下载。

     **对于最新版本的 AWS CLI，**请使用以下命令块：

     ```
     $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
     ```

     **对于特定版本的 AWS CLI，**在文件名后附加一个连字符和版本号。在本示例中，版本 *1.16.312* 的文件名为 `awscli-bundle-1.16.312.zip`，这会生成以下命令：

     ```
     $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"
     ```
   + 使用直接链接下载。

     **对于最新版本的 AWS CLI：**[https://s3.amazonaws.com/aws-cli/awscli-bundle.zip](https://s3.amazonaws.com/aws-cli/awscli-bundle.zip)

     **对于特定版本的 AWS CLI**，在文件名后附加一个连字符和版本号。在本示例中，版本 *1.16.312* 的文件名为 `awscli-bundle-1.16.312.zip`，这会生成以下 URL：[https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip](https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip)

1. 从程序包中提取（解压缩）文件。如果没有 `unzip`，请使用 macOs 发行版的内置程序包管理器进行安装。

   ```
   $ unzip awscli-bundle.zip
   ```

1. 运行安装程序。安装程序在 AWS CLI 中安装 `/usr/local/aws`，并在 `aws` 文件夹中创建符号链接 `/usr/local/bin`。使用 `-b` 选项创建符号链接将免除在用户的 `$PATH` 变量中指定安装文件夹的需要。这应该能让所有用户通过在任何目录下输入 `aws` 来调用 AWS CLI。

   ```
   $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
   ```

   默认情况下，安装脚本在系统默认版本的 Python 下运行。如果已安装 Python 的可选版本并希望使用该版本安装 AWS CLI，请使用该版本按 Python 可执行文件的绝对路径运行安装脚本，如下所示。

   ```
   $ sudo /usr/local/bin/python3.7 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
   ```

1. 验证 AWS CLI 是否已正确安装。

   ```
   $ aws --version
   aws-cli/1.40.41 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64 botocore/1.18.6
   ```

   如果出现错误，请参阅[排查 AWS CLI 错误](cli-chap-troubleshooting.md)。

### 使用捆绑安装程序（不带有 `sudo`）安装 AWS CLI 版本 1
<a name="install-macosos-bundled-no-sudo"></a>

如果您没有 `sudo` 权限，或打算仅为当前用户安装 AWS CLI，则可使用先前命令的修改版本。前两个命令是相同的。

**对于最新版本的 AWS CLI，**请使用以下命令块：

```
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
./awscli-bundle/install -b ~/bin/aws
```

**对于特定版本的 AWS CLI，**在文件名后附加一个连字符和版本号。在本示例中，版本 *1.16.312* 的文件名为 `awscli-bundle-1.16.312.zip`，这会生成以下命令：

```
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
./awscli-bundle/install -b ~/bin/aws
```

**为当前用户安装 AWS CLI 版本 1**

1. 使用以下方法之一下载 AWS CLI 版本 1 捆绑安装程序：
   + 使用 `curl` 命令下载。

     **对于最新版本的 AWS CLI，**请使用以下命令块：

     ```
     $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
     ```

     **对于特定版本的 AWS CLI，**在文件名后附加一个连字符和版本号。在本示例中，版本 *1.16.312* 的文件名为 `awscli-bundle-1.16.312.zip`，这会生成以下命令：

     ```
     $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"
     ```
   + 使用直接链接下载。

     **对于最新版本的 AWS CLI：**[https://s3.amazonaws.com/aws-cli/awscli-bundle.zip](https://s3.amazonaws.com/aws-cli/awscli-bundle.zip)

     **对于特定版本的 AWS CLI**，在文件名后附加一个连字符和版本号。在本示例中，版本 *1.16.312* 的文件名为 `awscli-bundle-1.16.312.zip`，这会生成以下 URL [https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip](https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip)

1. 从程序包中提取文件。如果没有 `unzip`，请使用 Linux 发行版的内置程序包管理器进行安装。

   ```
   $ unzip awscli-bundle.zip
   ```

1. 运行安装程序。安装程序在 AWS CLI 中安装 `/usr/local/aws`，并在 `aws` 目录中创建符号链接 `/usr/local/bin`。此命令使用 `-b` 参数以指定安装程序放置 `aws` 符号链接文件的目录。您必须具有对指定目录的写入权限。

   ```
   $ ./awscli-bundle/install -b ~/bin/aws
   ```

   这会将 AWS CLI 安装到默认位置 (`~/.local/lib/aws`) 并在 `~/bin/aws` 中创建符号链接 (symlink)。确保您的 `~/bin` 环境变量中包含 `$PATH`，以使该符号链接生效。

   ```
   $ echo $PATH | grep ~/bin     // See if $PATH contains ~/bin (output will be empty if it doesn't)
   $ export PATH=~/bin:$PATH     // Add ~/bin to $PATH if necessary
   ```

1. 确保安装 AWS CLI 版本 1 的文件夹是 `$PATH` 变量的一部分。

   1. 在您的用户文件夹中查找 Shell 的配置文件脚本。如果您不能确定所使用的 Shell，请运行 `echo $SHELL`。

      ```
      $ ls -a ~
      .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
      ```
      + **Bash** – `.bash_profile`、`.profile` 或 `.bash_login`
      + **Zsh** – `.zshrc`
      + **Tcsh** – `.tcshrc`、`.cshrc` 或 `.login`

   1. 在配置文件脚本末尾添加与以下示例类似的导出命令。

      ```
      export PATH=~/.local/bin:$PATH
      ```

      此命令将路径（在本示例中为 `~/.local/bin`）插入到现有 `PATH` 变量的前面。

   1. 将配置文件重新加载到当前会话中，以使更改生效。

      ```
      $ source ~/.bash_profile
      ```

1. 验证 AWS CLI 是否已正确安装。

   ```
   $ aws --version
   aws-cli/1.40.41 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64 botocore/1.18.6
   ```

   如果出现错误，请参阅[排查 AWS CLI 错误](cli-chap-troubleshooting.md)。

### 卸载 AWS CLI 版本 1 捆绑安装程序
<a name="install-macosos-bundled-uninstall"></a>

1. 捆绑的安装程序将除可选符号链接之外的所有内容放在安装目录中，因此要卸载，您只需删除这两个项目即可。

   ```
   $ sudo rm -rf /usr/local/aws
   $ sudo rm /usr/local/bin/aws
   ```

1. **（可选）**删除 `.aws` 文件夹中的共享 AWS SDK 和 AWS CLI 设置信息。
**警告**  
这些配置和凭证设置跨所有 AWS SDK 和 AWS CLI 进行共享。如果删除此文件夹，则您系统上的任何 AWS SDK 都无法访问它们。

   `.aws` 文件夹的默认位置因平台而异，默认情况下，该文件夹位于 *\$1/.aws/*。如果您的用户对此目录具有写入权限，则无需使用 `sudo`。

   ```
   $ sudo rm ~/.aws/
   ```

## 使用 pip 安装、更新和卸载 AWS CLI 版本 1
<a name="awscli-install-osx-pip"></a>

您可以直接使用 `pip` 安装 AWS CLI。

**Topics**
+ [安装 pip](#awscli-install-osx-pip-pip)
+ [使用 pip 安装和更新 AWS CLI](#awscli-install-osx-pip-install)
+ [将 AWS CLI 版本 1 可执行文件添加到 macOS 命令行路径](#awscli-install-osx-path)
+ [使用 pip 卸载 AWS CLI](#awscli-install-osx-pip-uninstall)

### 安装 pip
<a name="awscli-install-osx-pip-pip"></a>

如果尚未安装 `pip`，可以使用 *Python 打包权威机构* 提供的脚本进行安装。运行 `pip --version` 可查看您的 Linux 版本是否已包含 Python 和 `pip`。如果您安装了 Python 3 或更高版本，我们建议您使用 `pip3` 命令。

1. 使用 `curl` 命令下载安装脚本。以下命令使用 `-O`（大写字母“O”）参数指定下载的文件将使用与远程主机上相同的名称存储在当前的文件夹中。

   ```
   $ curl -O https://bootstrap.pypa.io/get-pip.py
   ```

1. 使用 `python` 或 `python3` 命令运行脚本以下载并安装最新版本的 `pip` 和其他必需的支持包。当您包含 `--user` 开关时，脚本将 `pip` 安装到路径 `~/.local/bin`。

   ```
   $ python3 get-pip.py --user
   ```

### 使用 pip 安装和更新 AWS CLI
<a name="awscli-install-osx-pip-install"></a>

1. 使用 `pip` 或 `pip3` 命令安装 AWS CLI。如果您使用的是 Python 3 或更高版本，我们建议您使用 `pip3` 命令。

   **对于最新版本的 AWS CLI**，请使用以下命令块：

   ```
   $ pip3 install awscli --upgrade --user
   ```

   **对于特定版本的 AWS CLI**，在文件名后附加两个等号 `=` 和版本号。在本示例中，版本 *1.16.312* 的文件名为 *==1.16.312*，这会生成以下命令：

   ```
   $ pip3 install awscli==1.16.312 --upgrade --user
   ```
**注意**  
为您的终端使用适当的引用规则。要使用 `=` 字符，您可能需要使用单引号或双引号适当地进行转义。以下示例使用单引号进行转义：  

   ```
   $ pip3 install 'awscli==1.16.312' --upgrade --user
   ```

1. 验证 AWS CLI 是否已正确安装。

   ```
   $ aws --version
   aws-cli/1.40.41 Python/3.11.6 Darwin/23.3.0 botocore/1.18.6
   ```

   如果未找到该程序，请[将它添加到命令行路径](#awscli-install-osx-path)。

### 将 AWS CLI 版本 1 可执行文件添加到 macOS 命令行路径
<a name="awscli-install-osx-path"></a>

在使用 `pip` 进行安装后，可能需要将 `aws` 程序添加到操作系统的 `PATH` 环境变量中。程序的位置取决于 Python 的安装位置。

**Example AWS CLI 安装位置 - 带 Python 3.6 和 `pip`（用户模式）的 macOS**  

```
~/Library/Python/3.7/bin
```
将上面示例中的版本替换为您的 Python 版本。

如果您不知道 Python 的安装位置，请运行 `which python`。

```
$ which python
/usr/local/bin/python
```

输出可能是符号链接的路径，而不是实际的程序。运行 `ls -al` 以查看所指向的路径。

```
$ ls -al /usr/local/bin/python
~/Library/Python/3.7/bin/python3.7
```

`pip` 将程序安装到 Python 应用程序所在的文件夹中。将此文件夹添加到 `PATH` 变量。

**修改您的 `PATH` 变量**

1. 在您的用户目录中查找 Shell 的配置文件脚本。如果您不能确定所使用的 Shell，请运行 `echo $SHELL`。

   ```
   $ ls -a ~
   .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
   ```
   + **Bash**：`.bash_profile`、`.profile` 或 `.bash_login`
   + **Zsh** – `.zshrc`
   + **Tcsh**：`.tcshrc`、`.cshrc` 或 `.login`

1. 向配置文件脚本中添加导出命令。

   ```
   export PATH=~/.local/bin:$PATH
   ```

   在本示例中，此命令将路径 `~/.local/bin` 添加到当前 `PATH` 变量中。

1. 将更新的配置文件加载到当前会话中。

   ```
   $ source ~/.bash_profile
   ```

### 使用 pip 卸载 AWS CLI
<a name="awscli-install-osx-pip-uninstall"></a>

1. 如果您使用 `pip` 安装了 AWS CLI 版本 1，则还必须使用 `pip` 进行卸载。

   ```
   $ pip uninstall awscli
   ```

    如果您使用的是 Python 版本 2 或 3，则可能需要使用 `pip2` 或 `pip3` 命令。使用 `aws --version` 命令确定与您安装的 AWS CLI 版本 1 关联的 Python 版本。

   ```
   $ pip3 uninstall awscli
   ```

   您可能需要重新启动命令提示符窗口或电脑才能删除所有文件。

1. **（可选）**删除 `.aws` 文件夹中的共享 AWS SDK 和 AWS CLI 设置信息。
**警告**  
这些配置和凭证设置跨所有 AWS SDK 和 AWS CLI 进行共享。如果删除此文件夹，则您系统上的任何 AWS SDK 都无法访问它们。

   `.aws` 文件夹的默认位置因平台而异，默认情况下，该文件夹位于 *\$1/.aws/*。如果您的用户对此目录具有写入权限，则无需使用 `sudo`。

   ```
   $ sudo rm -rf ~/.aws/
   ```

## AWS CLI 安装和卸载错误故障排除
<a name="awscli-install-osx-tshoot"></a>

如果您在安装或卸载 AWS CLI 后遇到问题，请参阅[排查 AWS CLI 错误](cli-chap-troubleshooting.md)以了解故障排除步骤。有关相关性最高的故障排除步骤，请参阅[找不到命令错误](cli-chap-troubleshooting.md#tshoot-install-not-found)、[“`aws --version`”命令返回的版本与您安装的版本不同](cli-chap-troubleshooting.md#tshoot-install-wrong-version)和[卸载 AWS CLI 后，“`aws --version`”命令返回一个版本](cli-chap-troubleshooting.md#tshoot-uninstall-1)。