

**本文档仅适用于 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/)。

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

您可以使用 AWS Command Line Interface 程序包管理器或捆绑安装程序安装 AWS CLI (`pip`) 版本 1 及其对大多数 Linux 发行版的依赖项。

尽管其他程序包管理器（如 `awscli` 和 `apt`）的存储库中提供了 `yum` 程序包，但它们不是由 AWS 生产、管理和支持的。我们建议您仅从本指南中记载的官方 AWS CLI 发行点安装 AWS。

**Topics**
+ [

## 先决条件
](#install-linux-prereqs)
+ [

## 在 Linux 上使用捆绑安装程序安装和卸载 AWS CLI 版本 1
](#install-linux-bundled)
+ [

## 使用 pip 安装和卸载 AWS CLI 版本 1
](#install-linux-pip)
+ [

## 使用 Snapcraft 安装和卸载 AWS CLI 版本 1
](#install-linux-snap)
+ [

## 将 AWS CLI 版本 1 可执行文件添加到命令行路径
](#install-linux-path)
+ [

## AWS CLI 安装和卸载错误故障排除
](#install-linux-tshoot)

## 先决条件
<a name="install-linux-prereqs"></a>

您必须已安装 Python 3.8 或更高版本。有关安装说明，请参阅 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 及更早版本 | 

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

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

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

**Topics**
+ [

### 使用捆绑安装程序（带有 `sudo`）安装 AWS CLI 版本 1
](#install-linux-bundled-sudo)
+ [

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

### 卸载 AWS CLI 版本 1 捆绑安装程序
](#install-linux-bundled-uninstall)

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

以下步骤使您能够从任何版本的 Linux 或 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。

**要使用捆绑安装程序安装 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` 选项创建符号链接将免除在用户的 `$PATH` 变量中指定安装目录的需要。这应该能让所有用户通过在任何目录下输入 AWS CLI 来调用 `aws`。

   ```
   $ 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-linux-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` 从程序包中提取文件。如果没有 `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-linux-bundled-uninstall"></a>

1. 如果使用捆绑安装程序安装了 AWS CLI，请按照以下说明进行操作。除了可选的符号链接之外，捆绑安装程序不会将任何内容放在安装目录之外，所以卸载十分简单，就是直接删除这两个项目。

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

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

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

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

## 使用 pip 安装和卸载 AWS CLI 版本 1
<a name="install-linux-pip"></a>

**Topics**
+ [

### 安装 pip
](#install-linux-pip-pip)
+ [

### 使用 pip 安装和更新 AWS CLI 版本 1
](#install-linux-awscli)
+ [

### 使用 pip 卸载 AWS CLI
](#post-install-uninstall)

### 安装 pip
<a name="install-linux-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
   ```

1. 确保包含 `pip` 的目录是您的 `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. 要验证 `pip` 是 `pip3` 否已正确安装，请运行以下命令。

   ```
   $ pip3 --version
   pip 24.0 from ~/.local/lib/python3.7/site-packages (python 3.7)
   ```

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

1. 使用 `pip` 或 `pip3` 命令安装或更新 AWS CLI。如果您使用的是 Python 3 或更高版本，我们建议您使用 `pip3` 命令。使用 `--user` 开关时，`pip` 将 AWS CLI 安装到 `~/.local/bin`。

   **对于最新版本的 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 Linux/5.10.205-195.807.amzn2.x86_64 botocore/1.18.6
   ```

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

### 使用 pip 卸载 AWS CLI
<a name="post-install-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 -r ~/.aws/
   ```

## 使用 Snapcraft 安装和卸载 AWS CLI 版本 1
<a name="install-linux-snap"></a>

**Topics**
+ [

### 安装 snap
](#install-linux-snap-install)
+ [

### 使用 snap 安装和更新 AWS CLI 版本 1
](#install-linux-snap-update)
+ [

### 使用 snap 卸载 AWS CLI
](#install-linux-snap-uninstall)

### 安装 snap
<a name="install-linux-snap-install"></a>

如果尚未安装 `snap`，可以使用 *Canonical Snapcraft* 提供的说明进行安装。运行 `snap version` 可查看您的 Linux 版本是否已包含 `snap`。

1. 在您的平台上安装 Snapcraft。有关安装 Snapcraft 的信息，请参阅《Snap 文档》**中的[安装进程守护程序](https://snapcraft.io/docs/installing-snapd)。

1. 重新启动系统，以便正确更新 `PATH` 变量。如果您遇到安装问题，请按照《Snap 文档》**中[修复常见问题](https://snapcraft.io/docs/fix-common-issues)中的步骤操作。

1. 要验证 `snap` 是否已正确安装，请运行以下命令：

   ```
   $ snap version
   ```

### 使用 snap 安装和更新 AWS CLI 版本 1
<a name="install-linux-snap-update"></a>

1. 为 AWS CLI 版本 1 运行以下 `snap install` 命令

   ```
   $ snap install aws-cli --channel=v1/stable --classic
   ```

   根据您的权限，您可能需要将 `sudo` 添加到命令中。

   ```
   $ sudo snap install aws-cli --channel=v1/stable --classic
   ```

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

### 使用 snap 卸载 AWS CLI
<a name="install-linux-snap-uninstall"></a>

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

   ```
   $ snap remove aws-cli
   ```

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

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

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

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

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

在使用 `pip` 或 `snap` 进行安装后，可能需要将 `aws` 可执行文件添加到操作系统的 `PATH` 环境变量中。

您可以运行以下命令验证 `pip` 已将 AWS CLI 安装到哪个文件夹中。

```
$ which aws
/home/username/.local/bin/aws
```

您可以将此路径 `~/.local/bin/` 作为参考，因为在 Linux 中 `/home/username` 对应于 `~`。

如果您忽略了 `--user` 开关且未在用户模式下安装，可执行文件可能位于 Python 安装的 `bin` 文件夹中。如果您不知道 Python 的安装位置，请运行此命令。

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

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

```
$ ls -al /usr/local/bin/python
/usr/local/bin/python -> ~/.local/Python/3.6/bin/python3.6
```

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

## AWS CLI 安装和卸载错误故障排除
<a name="install-linux-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)。